{ "abi": [ { "type": "function", "name": "verifySignature", "inputs": [ { "name": "g1Key", "type": "tuple", "internalType": "struct BN254.G1Point", "components": [ { "name": "X", "type": "uint256", "internalType": "uint256" }, { "name": "Y", "type": "uint256", "internalType": "uint256" } ] }, { "name": "g2Key", "type": "tuple", "internalType": "struct BN254.G2Point", "components": [ { "name": "X", "type": "uint256[2]", "internalType": "uint256[2]" }, { "name": "Y", "type": "uint256[2]", "internalType": "uint256[2]" } ] }, { "name": "sign", "type": "tuple", "internalType": "struct BN254.G1Point", "components": [ { "name": "X", "type": "uint256", "internalType": "uint256" }, { "name": "Y", "type": "uint256", "internalType": "uint256" } ] }, { "name": "msgHash", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [], "stateMutability": "view" }, { "type": "error", "name": "OperatorAlreadyRegistered", "inputs": [] }, { "type": "error", "name": "OperatorAndIndexDontMatch", "inputs": [] }, { "type": "error", "name": "OperatorIsNotRegistered", "inputs": [] }, { "type": "error", "name": "PairingNotSuccessful", "inputs": [] }, { "type": "error", "name": "SignatureVerificationFailed", "inputs": [] } ], "bytecode": { "object": "0x60808060405234601b576110b190816100218239308160070152f35b600080fdfe6080604052307f000000000000000000000000000000000000000000000000000000000000000014600436101561003557600080fd5b6000803560e01c91826355a540cb146100955782635dfed53a146100905782637c8f2db414610088578263af63f2ed1461007f57505063d3fbb5b41461007a57600080fd5b6105f5565b15610356575b80fd5b156102cd5780fd5b61028b565b50610120366003190112610085576100ac3661019c565b60803660431901126100f8576100f5906040516100c881610112565b6100d1366101f1565b81526100dc36610233565b60208201526100ea366101c9565b9061010435926106cf565b80f35b5080fd5b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761012e57604052565b6100fc565b6020810190811067ffffffffffffffff82111761012e57604052565b60c0810190811067ffffffffffffffff82111761012e57604052565b90601f8019910116810190811067ffffffffffffffff82111761012e57604052565b6040519061019a82610112565b565b60409060031901126101c457604051906101b582610112565b60043582526024356020830152565b600080fd5b60409060c31901126101c457604051906101e282610112565b60c435825260e4356020830152565b80606312156101c4576040519061020782610112565b816084916084116101c4576044905b8282106102235750505090565b8135815260209182019101610216565b8060a312156101c4576040519061024982610112565b8160c49160c4116101c4576084905b8282106102655750505090565b8135815260209182019101610258565b602435906001600160a01b03821682036101c457565b60403660031901126101c457602060ff6102c16102a6610275565b6001600160a01b031660009081526004356020526040902090565b54166040519015158152f35b60803660031901126101c4576102e1610275565b6044359067ffffffffffffffff8083116101c457366023840112156101c457826004013590811161012e5760405190610324601f8201601f19166020018361016b565b80825236602482860101116101c457602081600092602461035497018386013783010152606435916004356108e6565b005b60403660031901126101c45760043561036d610275565b600282019160018101906103c46103b86103a361039c86869060018060a01b0316600052602052604060002090565b5487610822565b905460039190911b1c6001600160a01b031690565b6001600160a01b031690565b6001600160a01b03841603610599576001600160a01b03831660009081526020829052604090206103ff906103fb905b5460ff1690565b1590565b610587576000610534846105779461050a8861035499546104626006890161045d61043361042d8354610a24565b8361085d565b506001600160a01b038916600090815260208990526040902061045790548461085d565b90610a38565b610a6e565b6104bb61047a6103a361047484610a24565b85610822565b6001600160a01b038716600090815260208790526040902061049d905485610822565b90919060018060a01b038084549260031b9316831b921b1916179055565b6105046104ea6103a36104746104e389899060018060a01b0316600052602052604060002090565b5494610a24565b6001600160a01b0316600090815260208690526040902090565b55610a9b565b6001600160a01b0391909116600090815260208581526040808320805460ff191690559290522090565b5561057161056c6105676003840195600561054e886108c8565b95019060018060a01b0316600052602052604060002090565b6108c8565b610faf565b90610b9e565b6020600191805184550151910155565b604051634d83abb360e11b8152600490fd5b604051630a0fb14560e21b8152600490fd5b60208082019080835283518092528060408094019401926000905b8382106105d557505050505090565b8451805187528301518684015294850194938201936001909101906105c6565b6020806003193601126101c45760066004350180549061061482610ac8565b92610622604051948561016b565b828452601f1961063184610ac8565b0160005b81811061068d5750505060005b82811061065b576040518061065786826105ab565b0390f35b8061067161066b6001938561085d565b506108c8565b61067b8287610af9565b526106868186610af9565b5001610642565b8290610697610ae0565b82828901015201610635565b634e487b7160e01b600052603260045260246000fd5b9060028110156106ca5760051b0190565b6106a3565b805160208083015184518051908301518684015180519085015189518a87015160408051988901998a528801969096526060870194909452608086019290925260a085015260c084015260e0830152610100820152610120808201879052815261078495939492939261077e9261075b9261057191906107516101408261016b565b5190208096610b46565b9261057161077061076a610bfd565b94610d04565b91610779610dfa565b610b46565b91610e8a565b90156107a3571561079157565b60405163729d0f6b60e01b8152600490fd5b604051633704cb5160e11b8152600490fd5b91908260409103126101c4576040516107cd81610112565b6020808294805184520151910152565b9080601f830112156101c457604051916107f683610112565b8290604081019283116101c457905b8282106108125750505090565b8151815260209182019101610805565b80548210156106ca5760005260206000200190600090565b90815491600160401b83101561012e578261049d91600161019a95018155610822565b80548210156106ca5760005260206000209060011b0190600090565b634e487b7160e01b600052600060045260246000fd5b8054600160401b81101561012e576108ac9160018201815561085d565b9190916108c3578051825560200151600190910155565b610879565b906040516108d581610112565b602060018294805484520154910152565b8251830183810393919060200161010085126101c457608061090b82602086016107b5565b95603f1901126101c45761094f9060e06040519461092886610112565b61093583606083016107dd565b86526109448360a083016107dd565b6020870152016107b5565b9261096f6103f482849060018060a01b0316600052602052604060002090565b6109fc5761019a95610577946003946109e688856109936109ec9760028a0161083a565b6001600160a01b03811660009081526020899052604090206109bc90805460ff19166001179055565b6006880180546001600160a01b03909216600090815260018a01602052604090209091905561088f565b876106cf565b01916109f7836108c8565b610b9e565b6040516342ee68b560e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b600019810191908211610a3357565b610a0e565b91906108c357808203610a49575050565b60018181925484550154910155565b634e487b7160e01b600052603160045260246000fd5b80548015610a96576000190190610a85828261085d565b6108c3576001816000809355015555565b610a58565b80548015610a96576000190190610ab28282610822565b81549060018060a01b039060031b1b1916905555565b67ffffffffffffffff811161012e5760051b60200190565b60405190610aed82610112565b60006020838281520152565b80518210156106ca5760209160051b010190565b6040519061018080830183811067ffffffffffffffff82111761012e57604052368337565b60405190610b3f82610133565b6020368337565b9190610b50610ae0565b9260405190606082019180831067ffffffffffffffff84111761012e576040936020606093889587528436853780518452015160208301528482015260076107cf195a01fa15610b9c57565bfe5b919091610ba9610ae0565b92604051608081019080821067ffffffffffffffff83111761012e576020869381604096608095885285368637805185520151828401528051868401520151606082015260066107cf195a01fa15610b9c57565b60408051610c0a81610112565b8151610c1581610112565b8236823781526020825191610c2983610112565b833684370152805190610c3b82610112565b7f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c282527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6020830152805190610c9082610112565b7f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208301525191610ce483610112565b8252602082015290565b634e487b7160e01b600052601260045260246000fd5b90610d0d610ae0565b507f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478092069060005b836003818581818009090860409081518092610d5182610133565b6020938491823683378051610d658161014f565b8360c0928336843781835281808401528201528560608201527f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260808201528a60a082015260056107cf195a01fa8015610b9c57610dc29061102f565b5192610df5578583800914610de05750508260016000930891610d36565b90919350610dec61018d565b92835282015290565b610cee565b610e02610ae0565b50604051610e0f81610112565b600181526002602082015290565b90600682029180830460061490151715610a3357565b9060018201809211610a3357565b9060028201809211610a3357565b9060038201809211610a3357565b9060048201809211610a3357565b9060058201809211610a3357565b90600c8110156106ca5760051b0190565b9392610e9461018d565b94855260209283860152610ea661018d565b91825282820152610eb5610b0d565b9360005b60028110610ee15750505061018092610ed0610b32565b93849160086201d4c0fa9151151590565b80610eed600192610e1d565b610ef782856106b9565b5151610f03828a610e79565b5285610f0f83866106b9565b510151610f24610f1e83610e33565b8a610e79565b52610f2f82866106b9565b515151610f3e610f1e83610e41565b52610f54610f4c83876106b9565b515160200190565b51610f61610f1e83610e4f565b5285610f6d83876106b9565b51015151610f7d610f1e83610e5d565b52610fa8610fa2610f9b88610f92868a6106b9565b51015160200190565b5192610e6b565b89610e79565b5201610eb9565b610fb7610ae0565b50805190811580611023575b15610fe4575050604051610fd681610112565b600081526000602082015290565b602001517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47908190068103908111610a335760405191610ce483610112565b50602081015115610fc3565b1561103657565b60405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606490fdfea2646970667358221220855b16ba233a6c4f38549008d95d4805df94f87384ded7f70b9d8955ed091d5664736f6c63430008190033", "sourceMap": "95:5339:47:-:0;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} } }