0 txs
1 call
constructor
constructor(address _trustedForwarder)
functions
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
executionHashFrom
purefunction executionHashFrom(bytes32 checkpointHash, address caller, bytes32 executionHash) pure returns (bytes32)
getCurrentAttester
viewfunction getCurrentAttester() view returns (address)
hashAttestation
viewfunction hashAttestation(tuple attestation) view returns (bytes32)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
trustedForwarder
viewfunction trustedForwarder() view returns (address)
validateFinalState
viewfunction validateFinalState() view
executeCheckpoint
nonpayablefunction executeCheckpoint(bytes32 checkpointHash) returns (bytes32)
saveAttestation
nonpayablefunction saveAttestation(tuple attestation, bytes attestationSignature)
storeAttestation
nonpayablefunction storeAttestation(tuple attestation, bytes attestationSignature)
events
EIP712DomainChanged
event EIP712DomainChanged()
errors
AttestationDeadlineExceeded
error AttestationDeadlineExceeded()
AttestationNotFound
error AttestationNotFound()
AttestationOverwrite
error AttestationOverwrite()
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
EmptyAttestation
error EmptyAttestation()
HashCountExceeded
error HashCountExceeded(uint256 atIndex)
InvalidAttestation
error InvalidAttestation()
InvalidExecutionHash
error InvalidExecutionHash(address validator, bytes32 expectedHash, bytes32 computedHash)
InvalidShortString
error InvalidShortString()
StringTooLong
error StringTooLong(string str)
creation bytecode
0x610180346101a557601f61177438819003918201601f19168301926001600160401b03929091838511838610176101915781602092849260409788528339810103126101a557516001600160a01b03811681036101a5578251610061816101a9565b60118152602081017029b2b1bab934ba3cab30b634b230ba37b960791b8152845161008b816101a9565b6001815260208101603160f81b81526100a3846101c4565b926101209384526100b38361035b565b94610140958652519020918260e052519020610100968188524660a05280519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c082019682881090881117610191578690525190206080523060c0526101609283526112e29485610492863960805185611156015260a05185611222015260c05185611127015260e051856111a5015251846111cb0152518361023b0152518261026501525181818161064d015281816106ac0152610c230152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761019157604052565b80516020908181101561023a5750601f8251116101fc57808251920151908083106101ee57501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b038211610191575f54926001938481811c91168015610351575b8382101461033d57601f811161030a575b5081601f84116001146102a857509282939183925f9461029d575b50501b915f199060031b1c1916175f5560ff90565b015192505f80610288565b919083601f1981165f8052845f20945f905b888383106102f057505050106102d8575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806102cb565b8587015188559096019594850194879350908101906102ba565b5f805284601f845f20920160051c820191601f860160051c015b82811061033257505061026d565b5f8155018590610324565b634e487b7160e01b5f52602260045260245ffd5b90607f169061025c565b8051602090818110156103855750601f8251116101fc57808251920151908083106101ee57501790565b9192916001600160401b0381116101915760019182548381811c91168015610487575b8282101461033d57601f8111610454575b5080601f83116001146103f45750819293945f926103e9575b50505f19600383901b1c191690821b17905560ff90565b015190505f806103d2565b90601f19831695845f52825f20925f905b88821061043d5750508385969710610425575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f8080610418565b808785968294968601518155019501930190610405565b835f5283601f835f20920160051c820191601f850160051c015b82811061047c5750506103b9565b5f815501849061046e565b90607f16906103a856fe60406080815260049081361015610014575f80fd5b5f3560e01c80633527eb721461089d578063517a9e50146106d1578063572b6c05146106715780637da0a8771461062157806382d393ae1461034b57806384b0196e14610224578063b372424e146101f3578063bb40eb0c146100ec578063cf9e02ab146100d25763e07920301461008a575f80fd5b346100ce57600319916020833601126100ce5780359267ffffffffffffffff84116100ce57829084360301126100ce576020926100c79101610b27565b9051908152f35b5f80fd5b346100ce575f6003193601126100ce576100ea610cbd565b005b5090346100ce576101299061011a610120610106366108e0565b91939061011285610b27565b923691610ac3565b90610dac565b90949194610de6565b610131610cbd565b83813603126100ce578351916101468361098a565b813583526020948583013567ffffffffffffffff938482116100ce57019136601f840112156100ce5782359384116101c757508260051b90519261018c878301856109ef565b83528580840191830101913683116100ce578601905b8282106101b8575050506100ea93820152610cf4565b813581529086019086016101a2565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b50346100ce575f6003193601126100ce57515f5c73ffffffffffffffffffffffffffffffffffffffff168152602090f35b5090346100ce575f6003193601126100ce5761025f7f0000000000000000000000000000000000000000000000000000000000000000610ecb565b916102897f000000000000000000000000000000000000000000000000000000000000000061103f565b815191602091602084019484861067ffffffffffffffff8711176101c7575061030082602092876102f399989795525f855281519889987f0f000000000000000000000000000000000000000000000000000000000000008a5260e0868b015260e08a0190610947565b9188830390890152610947565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061033457505050500390f35b835185528695509381019392810192600101610325565b5090346100ce57602091826003193601126100ce5760018235610370825c3383610a30565b935f73ffffffffffffffffffffffffffffffffffffffff805f5c1615610613575b60029360035c855c11158061060b575b6104e0575b505060035c925c9015809181926104d5575b506104a65781830180841161047a575c9080610470575b61043557507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214610409575083825d0160035d51908152f35b6011907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b90856064928651927e9f848e000000000000000000000000000000000000000000000000000000008452309084015260248301526044820152fd5b50808614156103cf565b6011837f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b506024918451917f1b736cc5000000000000000000000000000000000000000000000000000000008352820152fd5b90508310155f6103b8565b909650855188810191825233878201525f606082015260608152610503816109d3565b51902095325f52838852855f20875f528852855f209081549081156105e35786908684015416928851926105368461098a565b835201875190818b82549182815201915f528b5f20908c8a5f915b8383106105cf5750505050509061056f8161057895949303826109ef565b8a820152610cf4565b325f52828752845f20865f528752845f205f8155838582018054905f8155816105a9575b50505f9101555f806103a6565b5f52868a5f20918201915b8281106105c1575061059c565b5f81558793508891016105b4565b845486529094019392830192018a8e610551565b8488517f120a2e77000000000000000000000000000000000000000000000000000000008152fd5b5082156103a1565b62f012743b15159150610391565b50346100ce575f6003193601126100ce576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5090346100ce5760206003193601126100ce573573ffffffffffffffffffffffffffffffffffffffff908181168091036100ce5760209251917f000000000000000000000000000000000000000000000000000000000000000016148152f35b5090346100ce576106e1366108e0565b916020808201946106f28684610a6f565b905015610876576107038684610a6f565b9690961561084a5773ffffffffffffffffffffffffffffffffffffffff968761072a610c0c565b165f5260028452885f2090355f528352875f20978854421061082257508335885560019261075c60018a019286610a6f565b9367ffffffffffffffff85116101c7576801000000000000000085116101c7575082548484558085106107fb575b50915f52805f20905f5b8481106107ea576107bc8a60028d6107b38d61011a8e6101128f610b27565b90959195610de6565b0191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790555f80f35b833583820155928101928501610794565b835f528585845f2092830192015b82811061081757505061078a565b5f8155018690610809565b9050517f1123923c000000000000000000000000000000000000000000000000000000008152fd5b6032827f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b86517f46b80506000000000000000000000000000000000000000000000000000000008152fd5b50346100ce5760606003193601126100ce5760243573ffffffffffffffffffffffffffffffffffffffff811681036100ce576020926100c7916044359135610a30565b90600319906040828401126100ce5760043567ffffffffffffffff928382116100ce5760409082860301126100ce5760040192602435908382116100ce57806023830112156100ce5781600401359384116100ce57602484830101116100ce576024019190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6040810190811067ffffffffffffffff8211176109a657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff8211176109a657604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176109a657604052565b9173ffffffffffffffffffffffffffffffffffffffff6040519260208401948552166040830152606082015260608152610a69816109d3565b51902090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156100ce570180359067ffffffffffffffff82116100ce57602001918160051b360383136100ce57565b92919267ffffffffffffffff82116109a65760405191610b0b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601846109ef565b8294818452818301116100ce578281602093845f960137010152565b610b346020820182610a6f565b60409291925160208101917f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116100ce57602082604296610b849360051b8091873781010380845201826109ef565b5190206040519060208201927f94d88948f602bafa9b8e746ccbe1dedc2516cb3ccdd74290ea968946494abc4f8452356040830152606082015260608152610bcb816109d3565b519020610bd6611110565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016331480610cb2575b15610cae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601368111610c81573560601c90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b3390565b506014361015610c4b565b60035c60025c11610cca57565b60046040517fbd8ba84d000000000000000000000000000000000000000000000000000000008152fd5b9081514211610d8257602080920191825151915f5d6001925f60015d8260025d5f60035d5f5b838110610d28575050505050565b81518051821015610d555783908260051b0101516004828101908181116104095750908692915d01610d1a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b60046040517f315db96a000000000000000000000000000000000000000000000000000000008152fd5b8151919060418303610ddc57610dd59250602082015190606060408401519301515f1a90611248565b9192909190565b50505f9160029190565b6004811015610e9e5780610df8575050565b60018103610e2a5760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b60028103610e6357602482604051907ffce698f70000000000000000000000000000000000000000000000000000000082526004820152fd5b600314610e6d5750565b602490604051907fd78bce0c0000000000000000000000000000000000000000000000000000000082526004820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60ff8114610f215760ff811690601f8211610ef75760405191610eed8361098a565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b506040515f8054906001908260011c60018416928315611035575b6020948583108514611008578287528694908115610fc95750600114610f6e575b5050610f6b925003826109ef565b90565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56395935091905b818310610fb1575050610f6b93508201015f80610f5d565b85548784018501529485019486945091830191610f99565b9050610f6b9593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f80610f5d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b90607f1690610f3c565b60ff81146110615760ff811690601f8211610ef75760405191610eed8361098a565b506040515f60018054918260011c60018416928315611106575b6020948583108514611008578287528694908115610fc957506001146110a9575050610f6b925003826109ef565b9093915060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6935f915b8183106110ee575050610f6b93508201015f80610f5d565b855487840185015294850194869450918301916110d6565b90607f169061107b565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630148061121f575b15611178577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176109a65760405251902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461114f565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116112d7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156112cc575f5173ffffffffffffffffffffffffffffffffffffffff8116156112c257905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190560000000000000000000000005b73c5498c1e3b4dba84de0f1833c4a029d90519