[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "bytes32", "name": "submittedElf", "type": "bytes32" } ], "name": "InvalidElf", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "A", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "alignedServiceManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "elfCommitment", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "leaderboard", "outputs": [ { "internalType": "uint256", "name": "score", "type": "uint256" }, { "internalType": "bool", "name": "win", "type": "bool" }, { "internalType": "uint256", "name": "endFrame", "type": "uint256" }, { "internalType": "bytes", "name": "inputs", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "mintedProofs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paymentServiceAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "proofCommitment", "type": "bytes32" }, { "internalType": "bytes32", "name": "pubInputCommitment", "type": "bytes32" }, { "internalType": "bytes32", "name": "provingSystemAuxDataCommitment", "type": "bytes32" }, { "internalType": "bytes20", "name": "proofGeneratorAddr", "type": "bytes20" }, { "internalType": "bytes32", "name": "batchMerkleRoot", "type": "bytes32" }, { "internalType": "bytes", "name": "merkleProof", "type": "bytes" }, { "internalType": "uint256", "name": "verificationDataBatchIndex", "type": "uint256" }, { "internalType": "uint256", "name": "score", "type": "uint256" }, { "internalType": "bool", "name": "win", "type": "bool" }, { "internalType": "uint256", "name": "endFrame", "type": "uint256" }, { "internalType": "bytes", "name": "inputs", "type": "bytes" } ], "name": "verifyBatchInclusion", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]
6080604052600680546001600160a01b03199081167358f280bebe9b34c9939c3c39e0890c81f163b623179091556007805490911673815aeca64a974297942d2bbf034abee22a38a0031790557fd9cd413ee8f1e0e50f40e4a213a5d548700f8d568d61d404e6e63db3e6f5f3e56008553480156200007c575f80fd5b506040518060400160405280600e81526020016d537061636520416c69676e65727360901b81525060405180604001604052806002815260200161534160f01b815250815f9081620000cf919062000185565b506001620000de828262000185565b50505062000251565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200011057607f821691505b6020821081036200012f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200018057805f5260205f20601f840160051c810160208510156200015c5750805b601f840160051c820191505b818110156200017d575f815560010162000168565b50505b505050565b81516001600160401b03811115620001a157620001a1620000e7565b620001b981620001b28454620000fb565b8462000135565b602080601f831160018114620001ef575f8415620001d75750858301515b5f19600386901b1c1916600185901b17855562000249565b5f85815260208120601f198616915b828110156200021f57888601518255948401946001909101908401620001fe565b50858210156200023d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b61103d806200025f5f395ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c806370a08231116100a9578063bf3683991161006e578063bf36839914610269578063c87b56dd1461028c578063dd3df4bd146102bc578063e985e9c5146102de578063f19cd8821461030b575f80fd5b806370a082311461021557806390a05f2e1461022857806395d89b411461023b578063a22cb46514610243578063b88d4fde14610256575f80fd5b80632212d607116100ef5780632212d607146101b257806323b872dd146101c957806342842e0e146101dc57806342f70c6a146101ef5780636352211e14610202575f80fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b31461019d575b5f80fd5b61013361012e366004610ae2565b61031e565b60405190151581526020015b60405180910390f35b61015061036f565b60405161013f9190610b51565b61018561016b366004610b63565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b6101b06101ab366004610b90565b6103fa565b005b6101bb60085481565b60405190815260200161013f565b6101b06101d7366004610bb8565b6104de565b6101b06101ea366004610bb8565b6106a0565b6101bb6101fd366004610cc2565b610794565b610185610210366004610b63565b610802565b6101bb610223366004610d89565b610858565b600754610185906001600160a01b031681565b6101506108b9565b6101b0610251366004610da2565b6108c6565b6101b0610264366004610dd7565b610931565b61027c610277366004610b63565b610a16565b60405161013f9493929190610e6a565b61015061029a366004610b63565b50604080518082019091526007815266697066733a2f2f60c81b602082015290565b6101336102ca366004610b63565b60096020525f908152604090205460ff1681565b6101336102ec366004610e9a565b600560209081525f928352604080842090915290825290205460ff1681565b600654610185906001600160a01b031681565b5f6301ffc9a760e01b6001600160e01b03198316148061034e57506380ac58cd60e01b6001600160e01b03198316145b806103695750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f805461037b90610ecb565b80601f01602080910402602001604051908101604052809291908181526020018280546103a790610ecb565b80156103f25780601f106103c9576101008083540402835291602001916103f2565b820191905f5260205f20905b8154815290600101906020018083116103d557829003601f168201915b505050505081565b5f818152600260205260409020546001600160a01b03163381148061044157506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6104835760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146105335760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b604482015260640161047a565b6001600160a01b03821661057d5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b604482015260640161047a565b336001600160a01b03841614806105b657506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b806105d657505f818152600460205260409020546001600160a01b031633145b6106135760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161047a565b6001600160a01b038084165f81815260036020908152604080832080545f19019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6106ab8383836104de565b6001600160a01b0382163b15806107505750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af1158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190610f03565b6001600160e01b031916145b61078f5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b604482015260640161047a565b505050565b5f7fbcc3f07bb637cae8f4fa064ee01a1aa2ed85401540a710aa0c83a43d8d02467d858585856040516020016107cd9493929190610f1e565b60408051601f1981840301815290829052805160209182012082520160405180910390a1505f9b9a5050505050505050505050565b5f818152600260205260409020546001600160a01b0316806108535760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b604482015260640161047a565b919050565b5f6001600160a01b03821661089e5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640161047a565b506001600160a01b03165f9081526003602052604090205490565b6001805461037b90610ecb565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61093c8585856104de565b6001600160a01b0384163b15806109d05750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a02906109849033908a90899089908990600401610fb5565b6020604051808303815f875af11580156109a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c49190610f03565b6001600160e01b031916145b610a0f5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b604482015260640161047a565b5050505050565b600a6020525f90815260409020805460018201546002830154600384018054939460ff90931693919291610a4990610ecb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590610ecb565b8015610ac05780601f10610a9757610100808354040283529160200191610ac0565b820191905f5260205f20905b815481529060010190602001808311610aa357829003601f168201915b5050505050905084565b6001600160e01b031981168114610adf575f80fd5b50565b5f60208284031215610af2575f80fd5b8135610afd81610aca565b9392505050565b5f5b83811015610b1e578181015183820152602001610b06565b50505f910152565b5f8151808452610b3d816020860160208601610b04565b601f01601f19169290920160200192915050565b602081525f610afd6020830184610b26565b5f60208284031215610b73575f80fd5b5035919050565b80356001600160a01b0381168114610853575f80fd5b5f8060408385031215610ba1575f80fd5b610baa83610b7a565b946020939093013593505050565b5f805f60608486031215610bca575f80fd5b610bd384610b7a565b9250610be160208501610b7a565b9150604084013590509250925092565b80356bffffffffffffffffffffffff1981168114610853575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610c30575f80fd5b813567ffffffffffffffff80821115610c4b57610c4b610c0d565b604051601f8301601f19908116603f01168101908282118183101715610c7357610c73610c0d565b81604052838152866020858801011115610c8b575f80fd5b836020870160208301375f602085830101528094505050505092915050565b8015158114610adf575f80fd5b803561085381610caa565b5f805f805f805f805f805f6101608c8e031215610cdd575f80fd5b8b359a5060208c0135995060408c01359850610cfb60608d01610bf1565b975060808c0135965067ffffffffffffffff8060a08e01351115610d1d575f80fd5b610d2d8e60a08f01358f01610c21565b965060c08d0135955060e08d01359450610d4a6101008e01610cb7565b93506101208d01359250806101408e01351115610d65575f80fd5b50610d778d6101408e01358e01610c21565b90509295989b509295989b9093969950565b5f60208284031215610d99575f80fd5b610afd82610b7a565b5f8060408385031215610db3575f80fd5b610dbc83610b7a565b91506020830135610dcc81610caa565b809150509250929050565b5f805f805f60808688031215610deb575f80fd5b610df486610b7a565b9450610e0260208701610b7a565b935060408601359250606086013567ffffffffffffffff80821115610e25575f80fd5b818801915088601f830112610e38575f80fd5b813581811115610e46575f80fd5b896020828501011115610e57575f80fd5b9699959850939650602001949392505050565b8481528315156020820152826040820152608060608201525f610e906080830184610b26565b9695505050505050565b5f8060408385031215610eab575f80fd5b610eb483610b7a565b9150610ec260208401610b7a565b90509250929050565b600181811c90821680610edf57607f821691505b602082108103610efd57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215610f13575f80fd5b8151610afd81610aca565b84815283151560f81b60208201528260218201525f8251610f46816041850160208701610b04565b9190910160410195945050505050565b81811015610a0f575f8155600101610f56565b82811015610f8857888601518255948401946001909101908401610f69565b5085821015610fa557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f8501168301019050969550505050505056fea2646970667358221220a3432bad7d296a26ebf424899796261641dd933c919b2b68a357cf273b611a0a64736f6c63430008160033