UNPKG

@settlemint/solidity-zeto

Version:

Smart contract set to build Zero Knowledge tokens in SettleMint

553 lines (552 loc) 43.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "Zeto_NfAnonNullifier", "sourceName": "contracts/zeto_nf_anon_nullifier.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "name": "ERC1967InvalidImplementation", "type": "error" }, { "inputs": [], "name": "ERC1967NonPayable", "type": "error" }, { "inputs": [], "name": "FailedCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "IdentityNotRegistered", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "utxo", "type": "uint256" } ], "name": "UTXOAlreadyOwned", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "utxo", "type": "uint256" } ], "name": "UTXOAlreadySpent", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "maxAllowed", "type": "uint256" } ], "name": "UTXOArrayTooLarge", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "utxo", "type": "uint256" } ], "name": "UTXODuplicate", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "utxo", "type": "uint256" } ], "name": "UTXONotMinted", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "root", "type": "uint256" } ], "name": "UTXORootNotFound", "type": "error" }, { "inputs": [], "name": "UUPSUnauthorizedCallContext", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "slot", "type": "bytes32" } ], "name": "UUPSUnsupportedProxiableUUID", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "outputs", "type": "uint256[]" }, { "indexed": true, "internalType": "address", "name": "submitter", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "UTXOMint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "inputs", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "outputs", "type": "uint256[]" }, { "indexed": true, "internalType": "address", "name": "submitter", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "UTXOTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "UPGRADE_INTERFACE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRoot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" }, { "internalType": "contract Groth16Verifier_NfAnonNullifier", "name": "_verifier", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256[2]", "name": "pA", "type": "uint256[2]" }, { "internalType": "uint256[2][2]", "name": "pB", "type": "uint256[2][2]" }, { "internalType": "uint256[2]", "name": "pC", "type": "uint256[2]" } ], "internalType": "struct Commonlib.Proof", "name": "proof", "type": "tuple" }, { "internalType": "address", "name": "delegate", "type": "address" } ], "name": "lockProof", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "utxos", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nullifier", "type": "uint256" }, { "internalType": "uint256", "name": "output", "type": "uint256" }, { "internalType": "uint256", "name": "root", "type": "uint256" }, { "components": [ { "internalType": "uint256[2]", "name": "pA", "type": "uint256[2]" }, { "internalType": "uint256[2][2]", "name": "pB", "type": "uint256[2][2]" }, { "internalType": "uint256[2]", "name": "pC", "type": "uint256[2]" } ], "internalType": "struct Commonlib.Proof", "name": "proof", "type": "tuple" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": "0x60a0806040523460295730608052611f53908161002f823960805181818161086001526110460152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630dd1dc8b146100c757806312c0fed2146100c2578063485cc955146100bd5780634f1ef286146100b857806352d1902d146100b35780635ca1e165146100ae578063715018a6146100a95780638bb2513b146100a45780638da5cb5b1461009f578063ad3cb1cc1461009a5763f2fde38b1461009557600080fd5b610bed565b610b59565b610b06565b610a5d565b610987565b6108da565b610838565b6107b1565b6104c1565b61031b565b610141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6101009101126100fc57606490565b600080fd5b6003196101009101126100fc57600490565b9181601f840112156100fc5782359167ffffffffffffffff83116100fc57602083818601950101116100fc57565b346100fc576101806003193601126100fc57602435600435604435610165366100cc565b90610164359267ffffffffffffffff84116100fc57602061018d61025b953690600401610113565b929094610198610c1a565b97826101a38a610c9c565b526101ac610c1a565b95816101b788610c9c565b526101cb6101c682898d6113dc565b610cc2565b6101d3610d27565b9384526020840152604083015261021b61020260345473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b906040518098819482937f11479fea00000000000000000000000000000000000000000000000000000000845260c0810190604081019060048601610d54565b03915afa9081156102f85761029d6102b5927fcb56a7130431b68e0e636f24584d40580490c1bf882bef3701f317d47ba98c38966000916102c9575b50610dcc565b6102a78387611709565b604051938493339785610e86565b0390a26040516001815280602081015b0390f35b6102eb915060203d6020116102f1575b6102e3818361075d565b810190610d3c565b38610297565b503d6102d9565b610dc0565b73ffffffffffffffffffffffffffffffffffffffff8116036100fc57565b346100fc576101206003193601126100fc5761048561033936610101565b610445610104359161034a836102fd565b6103b160c061035a610100610785565b83358152926020810135602085015261039d61039060408301803560408801526103848160200190565b35606088015260400190565b8035608087015260200190565b3560a085015201803560c084015260200190565b3560e08201526040516103da816103cc602082019485611848565b03601f19810183528261075d565b51902073ffffffffffffffffffffffffffffffffffffffff610423610409836000526000602052604060002090565b5473ffffffffffffffffffffffffffffffffffffffff1690565b16158015610487575b61043590610ec1565b6000526000602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b005b506104356104a2610409836000526000602052604060002090565b73ffffffffffffffffffffffffffffffffffffffff163314905061042c565b346100fc5760406003193601126100fc576004356104de816102fd565b602435906104eb826102fd565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549167ffffffffffffffff61053160ff604086901c16159467ffffffffffffffff1690565b1680159081610726575b600114908161071c575b159081610713575b506106e9576105ce91836105c560017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b61066e57610f4c565b6105d457005b61063f7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6106e4680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b610f4c565b7ff92ee8a90000000000000000000000000000000000000000000000000000000060005260046000fd5b9050153861054d565b303b159150610545565b84915061053b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff82111761078057604052565b61072e565b90610793604051928361075d565b565b67ffffffffffffffff811161078057601f01601f191660200190565b60406003193601126100fc576004356107c9816102fd565b6024359067ffffffffffffffff82116100fc57366023830112156100fc578160040135906107f682610795565b91610804604051938461075d565b80835236602482860101116100fc5760208160009260246104859701838701378401015261102d565b60009103126100fc57565b346100fc5760006003193601126100fc5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108b05760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba0000000000000000000000000000000000000000000000000000000060005260046000fd5b346100fc5760006003193601126100fc576040517f79f971250000000000000000000000000000000000000000000000000000000081526001600482015260208160248173__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__5af480156102f8576102c591600091610958575b506040519081529081906020820190565b61097a915060203d602011610980575b610972818361075d565b8101906111dd565b38610947565b503d610968565b346100fc5760006003193601126100fc576109a0611875565b600073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b67ffffffffffffffff81116107805760051b60200190565b346100fc5760406003193601126100fc5760043567ffffffffffffffff81116100fc57366023820112156100fc57806004013590610a9a82610a45565b91610aa8604051938461075d565b8083526024602084019160051b830101913683116100fc57602401905b828210610af6576024358467ffffffffffffffff82116100fc57610af0610485923690600401610113565b91611908565b8135815260209182019101610ac5565b346100fc5760006003193601126100fc57602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b346100fc5760006003193601126100fc576040805190610b79818361075d565b600582527f352e302e300000000000000000000000000000000000000000000000000000006020830152805180926020825280519081602084015260005b828110610bd65750506000828201840152601f01601f19168101030190f35b602082820181015187830187015286945001610bb7565b346100fc5760206003193601126100fc57610485600435610c0d816102fd565b610c15611875565b6111ec565b60408051909190610c2b838261075d565b6001815291601f1901366020840137565b90610c4682610a45565b610c53604051918261075d565b828152601f19610c638294610a45565b0190602036910137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805115610ca95760200190565b610c6d565b8051821015610ca95760209160051b010190565b15610cc957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e76616c6964207472616e73616374696f6e2070726f706f73616c000000006044820152fd5b604051906060610d37818461075d565b368337565b908160209103126100fc575180151581036100fc5790565b919493929094604061016084019684376000604084015b60028210610daa575050509060406101009260c0830137016000905b60038210610d9457505050565b6020806001928551815201930191019091610d87565b6040808281866001953701930191019091610d6b565b6040513d6000823e3d90fd5b15610dd357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c69642070726f6f66000000000000000000000000000000000000006044820152fd5b906020808351928381520192019060005b818110610e4f5750505090565b8251845260209384019390920191600101610e42565b601f8260209493601f19938186528686013760008582860101520116010190565b9290610ebe9492610ea2610eb092606087526060870190610e31565b908582036020870152610e31565b926040818503910152610e65565b90565b15610ec857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f6f6620616c7265616479206c6f636b656420627920616e6f746865722060448201527f70617274790000000000000000000000000000000000000000000000000000006064820152fd5b610f7090610f58611bed565b610f60611bed565b610f68611bed565b610c15611bed565b73__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__90813b156100fc576000604492604051938480927f9e43b81300000000000000000000000000000000000000000000000000000000825260016004830152604060248301525af49182156102f85773ffffffffffffffffffffffffffffffffffffffff9261101b575b50167fffffffffffffffffffffffff00000000000000000000000000000000000000006034541617603455565b60006110269161075d565b6000610fee565b909173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680301490811561119b575b506108b05761107e611875565b604051927f52d1902d00000000000000000000000000000000000000000000000000000000845260208460048173ffffffffffffffffffffffffffffffffffffffff87165afa6000948161117a575b50611117577f4c9c8ce30000000000000000000000000000000000000000000000000000000060005273ffffffffffffffffffffffffffffffffffffffff831660045260245b6000fd5b90917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc840361114b57610793929350611c46565b7faa1d49a400000000000000000000000000000000000000000000000000000000600052600484905260246000fd5b61119491955060203d60201161098057610972818361075d565b93386110cd565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538611071565b908160209103126100fc575190565b73ffffffffffffffffffffffffffffffffffffffff1680156112ae5773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191821161130a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b908160a09103126100fc5760405190600060a0830167ffffffffffffffff811184821017610780576040528151600381101561139f5790608092918452602082015160208501526040820151604085015260608201516060850152500151608082015290565b5080fd5b600311156113ad57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b906113e991939293611a85565b60009291925b83518110156114f7576114028185610cae565b51156114ef57801515806114ca575b61149057600161144761144261143b61142a8589610cae565b516000526033602052604060002090565b5460ff1690565b151590565b14611456576001905b016113ef565b6114636111139185610cae565b517f41a06d2800000000000000000000000000000000000000000000000000000000600052600452602490565b61149d6111139185610cae565b517fdd57483100000000000000000000000000000000000000000000000000000000600052600452602490565b506114d58185610cae565b516114e86114e2836112dd565b86610cae565b5114611411565b600190611450565b50915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9060005b8351811015611655576115268185610cae565b511561164d578015158061162e575b6114905761159060a061155161154b8488610cae565b51611b43565b604051809381927fe170cf6e00000000000000000000000000000000000000000000000000000000835260048301919060206040840193600181520152565b0381875af49081156102f857600091611600575b50516115af816113a3565b6115b8816113a3565b6115c6576001905b01611513565b6115d36111139185610cae565b517f79e1da4700000000000000000000000000000000000000000000000000000000600052600452602490565b611621915060a03d8111611627575b611619818361075d565b810190611339565b386115a4565b503d61160f565b506116398185610cae565b516116466114e2836112dd565b5114611535565b6001906115c0565b50929150602060405180927f92f5b06c000000000000000000000000000000000000000000000000000000008252818061169e8760048301919060206040840193600181520152565b03915af49081156102f8576000916116ea575b50156116bd5750600190565b7f4acd7ab80000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611703915060203d6020116102f1576102e3818361075d565b386116b1565b91909160005b8151811015611771578061172560019284610cae565b51611731575b0161170f565b61176c61174161142a8386610cae565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b61172b565b505060005b8251811015611843576117898184610cae565b51611797575b600101611776565b73__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906117b78185610cae565b516117c28286610cae565b51833b156100fc576040517fc1d29f01000000000000000000000000000000000000000000000000000000008152600160048201526024810192909252604482015291600090839060649082905af49182156102f857600192611828575b50905061178f565b80611837600061183d9361075d565b8061082d565b38611820565b509050565b906000825b6008821061185f575050506101000190565b602080600192855181520193019101909161184d565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036118b557565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b916118fa610ebe9492604085526040850190610e31565b926020818503910152610e65565b90919260009373__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__945b8351811015611a48576119388185610cae565b51908115611a3f5761194e60a061155184611b43565b03818b5af49081156102f857600091611a21575b505161196d816113a3565b611976816113a3565b6119f257863b156100fc576040517fc1d29f01000000000000000000000000000000000000000000000000000000008152600160048201526024810183905260448101929092526000826064818a5af49182156102f8576001926119dd575b505b01611925565b8061183760006119ec9361075d565b386119d5565b7f79e1da4700000000000000000000000000000000000000000000000000000000600052600482905260246000fd5b611a39915060a03d811161162757611619818361075d565b38611962565b600191506119d7565b509093507f7ff08e0ca1fce6b202b83128811e4f6ceda54930aa074cd365bf68f95c20ce199192611a806040519283923396846118e3565b0390a2565b9190611a918351610c3c565b90611a9c8151610c3c565b9060005b8551811015611ac85780611ab660019288610cae565b51611ac18287610cae565b5201611aa0565b50919290935060005b8251811015611af95780611ae760019285610cae565b51611af28288610cae565b5201611ad1565b50919050611b0681611dc2565b50611b1083611dc2565b509190565b919060608301926000905b60038210611b2d57505050565b6020806001928551815201930191019091611b20565b604051606081019080821067ffffffffffffffff83111761078057611ba9926020926040528082528282015260016040820152604051809381927f25cc70e800000000000000000000000000000000000000000000000000000000835260048301611b15565b038173__$03320550cd1b629da90608251571b2532e$__5af49081156102f857600091611bd4575090565b610ebe915060203d60201161098057610972818361075d565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c1c57565b7fd7e6bcf80000000000000000000000000000000000000000000000000000000060005260046000fd5b90813b15611d385773ffffffffffffffffffffffffffffffffffffffff8216807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115611d0557611d0291611d7c565b50565b505034611d0e57565b7fb398979f0000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff827f4c9c8ce3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b600080610ebe93602081519101845af43d15611dba573d91611d9d83610795565b92611dab604051948561075d565b83523d6000602085013e611dda565b606091611dda565b610ebe60016020835160051b84010160208401611e77565b90611e195750805115611def57805190602001fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611e6e575b611e2a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611e22565b9190604083820310611f185782519282818095602084015b858110611eb55750508251815184528152611ea992611e77565b60206107939301611e77565b91509150805185600114611ef2577f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fd5b8211611f05575b60200184918691611e8f565b6020909501805186518252865294611ef9565b50505056fea2646970667358221220e169ec0b44c78e4a0cc26e34545b2585f3170029a987565afad24fa7ebe4182a64736f6c634300081b0033", "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c80630dd1dc8b146100c757806312c0fed2146100c2578063485cc955146100bd5780634f1ef286146100b857806352d1902d146100b35780635ca1e165146100ae578063715018a6146100a95780638bb2513b146100a45780638da5cb5b1461009f578063ad3cb1cc1461009a5763f2fde38b1461009557600080fd5b610bed565b610b59565b610b06565b610a5d565b610987565b6108da565b610838565b6107b1565b6104c1565b61031b565b610141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c6101009101126100fc57606490565b600080fd5b6003196101009101126100fc57600490565b9181601f840112156100fc5782359167ffffffffffffffff83116100fc57602083818601950101116100fc57565b346100fc576101806003193601126100fc57602435600435604435610165366100cc565b90610164359267ffffffffffffffff84116100fc57602061018d61025b953690600401610113565b929094610198610c1a565b97826101a38a610c9c565b526101ac610c1a565b95816101b788610c9c565b526101cb6101c682898d6113dc565b610cc2565b6101d3610d27565b9384526020840152604083015261021b61020260345473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b906040518098819482937f11479fea00000000000000000000000000000000000000000000000000000000845260c0810190604081019060048601610d54565b03915afa9081156102f85761029d6102b5927fcb56a7130431b68e0e636f24584d40580490c1bf882bef3701f317d47ba98c38966000916102c9575b50610dcc565b6102a78387611709565b604051938493339785610e86565b0390a26040516001815280602081015b0390f35b6102eb915060203d6020116102f1575b6102e3818361075d565b810190610d3c565b38610297565b503d6102d9565b610dc0565b73ffffffffffffffffffffffffffffffffffffffff8116036100fc57565b346100fc576101206003193601126100fc5761048561033936610101565b610445610104359161034a836102fd565b6103b160c061035a610100610785565b83358152926020810135602085015261039d61039060408301803560408801526103848160200190565b35606088015260400190565b8035608087015260200190565b3560a085015201803560c084015260200190565b3560e08201526040516103da816103cc602082019485611848565b03601f19810183528261075d565b51902073ffffffffffffffffffffffffffffffffffffffff610423610409836000526000602052604060002090565b5473ffffffffffffffffffffffffffffffffffffffff1690565b16158015610487575b61043590610ec1565b6000526000602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b005b506104356104a2610409836000526000602052604060002090565b73ffffffffffffffffffffffffffffffffffffffff163314905061042c565b346100fc5760406003193601126100fc576004356104de816102fd565b602435906104eb826102fd565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549167ffffffffffffffff61053160ff604086901c16159467ffffffffffffffff1690565b1680159081610726575b600114908161071c575b159081610713575b506106e9576105ce91836105c560017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b61066e57610f4c565b6105d457005b61063f7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6106e4680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b610f4c565b7ff92ee8a90000000000000000000000000000000000000000000000000000000060005260046000fd5b9050153861054d565b303b159150610545565b84915061053b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff82111761078057604052565b61072e565b90610793604051928361075d565b565b67ffffffffffffffff811161078057601f01601f191660200190565b60406003193601126100fc576004356107c9816102fd565b6024359067ffffffffffffffff82116100fc57366023830112156100fc578160040135906107f682610795565b91610804604051938461075d565b80835236602482860101116100fc5760208160009260246104859701838701378401015261102d565b60009103126100fc57565b346100fc5760006003193601126100fc5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108b05760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba0000000000000000000000000000000000000000000000000000000060005260046000fd5b346100fc5760006003193601126100fc576040517f79f971250000000000000000000000000000000000000000000000000000000081526001600482015260208160248173__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__5af480156102f8576102c591600091610958575b506040519081529081906020820190565b61097a915060203d602011610980575b610972818361075d565b8101906111dd565b38610947565b503d610968565b346100fc5760006003193601126100fc576109a0611875565b600073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300547fffffffffffffffffffffffff000000000000000000000000000000000000000081167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b67ffffffffffffffff81116107805760051b60200190565b346100fc5760406003193601126100fc5760043567ffffffffffffffff81116100fc57366023820112156100fc57806004013590610a9a82610a45565b91610aa8604051938461075d565b8083526024602084019160051b830101913683116100fc57602401905b828210610af6576024358467ffffffffffffffff82116100fc57610af0610485923690600401610113565b91611908565b8135815260209182019101610ac5565b346100fc5760006003193601126100fc57602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b346100fc5760006003193601126100fc576040805190610b79818361075d565b600582527f352e302e300000000000000000000000000000000000000000000000000000006020830152805180926020825280519081602084015260005b828110610bd65750506000828201840152601f01601f19168101030190f35b602082820181015187830187015286945001610bb7565b346100fc5760206003193601126100fc57610485600435610c0d816102fd565b610c15611875565b6111ec565b60408051909190610c2b838261075d565b6001815291601f1901366020840137565b90610c4682610a45565b610c53604051918261075d565b828152601f19610c638294610a45565b0190602036910137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805115610ca95760200190565b610c6d565b8051821015610ca95760209160051b010190565b15610cc957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e76616c6964207472616e73616374696f6e2070726f706f73616c000000006044820152fd5b604051906060610d37818461075d565b368337565b908160209103126100fc575180151581036100fc5790565b919493929094604061016084019684376000604084015b60028210610daa575050509060406101009260c0830137016000905b60038210610d9457505050565b6020806001928551815201930191019091610d87565b6040808281866001953701930191019091610d6b565b6040513d6000823e3d90fd5b15610dd357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c69642070726f6f66000000000000000000000000000000000000006044820152fd5b906020808351928381520192019060005b818110610e4f5750505090565b8251845260209384019390920191600101610e42565b601f8260209493601f19938186528686013760008582860101520116010190565b9290610ebe9492610ea2610eb092606087526060870190610e31565b908582036020870152610e31565b926040818503910152610e65565b90565b15610ec857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f6f6620616c7265616479206c6f636b656420627920616e6f746865722060448201527f70617274790000000000000000000000000000000000000000000000000000006064820152fd5b610f7090610f58611bed565b610f60611bed565b610f68611bed565b610c15611bed565b73__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__90813b156100fc576000604492604051938480927f9e43b81300000000000000000000000000000000000000000000000000000000825260016004830152604060248301525af49182156102f85773ffffffffffffffffffffffffffffffffffffffff9261101b575b50167fffffffffffffffffffffffff00000000000000000000000000000000000000006034541617603455565b60006110269161075d565b6000610fee565b909173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680301490811561119b575b506108b05761107e611875565b604051927f52d1902d00000000000000000000000000000000000000000000000000000000845260208460048173ffffffffffffffffffffffffffffffffffffffff87165afa6000948161117a575b50611117577f4c9c8ce30000000000000000000000000000000000000000000000000000000060005273ffffffffffffffffffffffffffffffffffffffff831660045260245b6000fd5b90917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc840361114b57610793929350611c46565b7faa1d49a400000000000000000000000000000000000000000000000000000000600052600484905260246000fd5b61119491955060203d60201161098057610972818361075d565b93386110cd565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538611071565b908160209103126100fc575190565b73ffffffffffffffffffffffffffffffffffffffff1680156112ae5773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054827fffffffffffffffffffffffff00000000000000000000000000000000000000008216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191821161130a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b908160a09103126100fc5760405190600060a0830167ffffffffffffffff811184821017610780576040528151600381101561139f5790608092918452602082015160208501526040820151604085015260608201516060850152500151608082015290565b5080fd5b600311156113ad57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b906113e991939293611a85565b60009291925b83518110156114f7576114028185610cae565b51156114ef57801515806114ca575b61149057600161144761144261143b61142a8589610cae565b516000526033602052604060002090565b5460ff1690565b151590565b14611456576001905b016113ef565b6114636111139185610cae565b517f41a06d2800000000000000000000000000000000000000000000000000000000600052600452602490565b61149d6111139185610cae565b517fdd57483100000000000000000000000000000000000000000000000000000000600052600452602490565b506114d58185610cae565b516114e86114e2836112dd565b86610cae565b5114611411565b600190611450565b50915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9060005b8351811015611655576115268185610cae565b511561164d578015158061162e575b6114905761159060a061155161154b8488610cae565b51611b43565b604051809381927fe170cf6e00000000000000000000000000000000000000000000000000000000835260048301919060206040840193600181520152565b0381875af49081156102f857600091611600575b50516115af816113a3565b6115b8816113a3565b6115c6576001905b01611513565b6115d36111139185610cae565b517f79e1da4700000000000000000000000000000000000000000000000000000000600052600452602490565b611621915060a03d8111611627575b611619818361075d565b810190611339565b386115a4565b503d61160f565b506116398185610cae565b516116466114e2836112dd565b5114611535565b6001906115c0565b50929150602060405180927f92f5b06c000000000000000000000000000000000000000000000000000000008252818061169e8760048301919060206040840193600181520152565b03915af49081156102f8576000916116ea575b50156116bd5750600190565b7f4acd7ab80000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611703915060203d6020116102f1576102e3818361075d565b386116b1565b91909160005b8151811015611771578061172560019284610cae565b51611731575b0161170f565b61176c61174161142a8386610cae565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055565b61172b565b505060005b8251811015611843576117898184610cae565b51611797575b600101611776565b73__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906117b78185610cae565b516117c28286610cae565b51833b156100fc576040517fc1d29f01000000000000000000000000000000000000000000000000000000008152600160048201526024810192909252604482015291600090839060649082905af49182156102f857600192611828575b50905061178f565b80611837600061183d9361075d565b8061082d565b38611820565b509050565b906000825b6008821061185f575050506101000190565b602080600192855181520193019101909161184d565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036118b557565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b916118fa610ebe9492604085526040850190610e31565b926020818503910152610e65565b90919260009373__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__945b8351811015611a48576119388185610cae565b51908115611a3f5761194e60a061155184611b43565b03818b5af49081156102f857600091611a21575b505161196d816113a3565b611976816113a3565b6119f257863b156100fc576040517fc1d29f01000000000000000000000000000000000000000000000000000000008152600160048201526024810183905260448101929092526000826064818a5af49182156102f8576001926119dd575b505b01611925565b8061183760006119ec9361075d565b386119d5565b7f79e1da4700000000000000000000000000000000000000000000000000000000600052600482905260246000fd5b611a39915060a03d811161162757611619818361075d565b38611962565b600191506119d7565b509093507f7ff08e0ca1fce6b202b83128811e4f6ceda54930aa074cd365bf68f95c20ce199192611a806040519283923396846118e3565b0390a2565b9190611a918351610c3c565b90611a9c8151610c3c565b9060005b8551811015611ac85780611ab660019288610cae565b51611ac18287610cae565b5201611aa0565b50919290935060005b8251811015611af95780611ae760019285610cae565b51611af28288610cae565b5201611ad1565b50919050611b0681611dc2565b50611b1083611dc2565b509190565b919060608301926000905b60038210611b2d57505050565b6020806001928551815201930191019091611b20565b604051606081019080821067ffffffffffffffff83111761078057611ba9926020926040528082528282015260016040820152604051809381927f25cc70e800000000000000000000000000000000000000000000000000000000835260048301611b15565b038173__$03320550cd1b629da90608251571b2532e$__5af49081156102f857600091611bd4575090565b610ebe915060203d60201161098057610972818361075d565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c1c57565b7fd7e6bcf80000000000000000000000000000000000000000000000000000000060005260046000fd5b90813b15611d385773ffffffffffffffffffffffffffffffffffffffff8216807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115611d0557611d0291611d7c565b50565b505034611d0e57565b7fb398979f0000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff827f4c9c8ce3000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b600080610ebe93602081519101845af43d15611dba573d91611d9d83610795565b92611dab604051948561075d565b83523d6000602085013e611dda565b606091611dda565b610ebe60016020835160051b84010160208401611e77565b90611e195750805115611def57805190602001fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611e6e575b611e2a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611e22565b9190604083820310611f185782519282818095602084015b858110611eb55750508251815184528152611ea992611e77565b60206107939301611e77565b91509150805185600114611ef2577f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fd5b8211611f05575b60200184918691611e8f565b6020909501805186518252865294611ef9565b50505056fea2646970667358221220e169ec0b44c78e4a0cc26e34545b2585f3170029a987565afad24fa7ebe4182a64736f6c634300081b0033", "linkReferences": { "@iden3/contracts/lib/Poseidon.sol": { "PoseidonUnit3L": [ { "length": 20, "start": 7132 } ] }, "@iden3/contracts/lib/SmtLib.sol": { "SmtLib": [ { "length": 20, "start": 2383 }, { "length": 20, "start": 4001 }, { "length": 20, "start": 5419 }, { "length": 20, "start": 6088 }, { "length": 20, "start": 6463 } ] } }, "deployedLinkReferences": { "@iden3/contracts/lib/Poseidon.sol": { "PoseidonUnit3L": [ { "length": 20, "start": 7085 } ] }, "@iden3/contracts/lib/SmtLib.sol": { "SmtLib": [ { "length": 20, "start": 2336 }, { "length": 20, "start": 3954 }, { "length": 20, "start": 5372 }, { "length": 20, "start": 6041 }, { "length": 20, "start": 6416 } ] } } }