UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

886 lines 336 kB
{ "contractName": "TestSecp256k1", "abi": [ { "inputs": [ { "internalType": "bytes", "name": "witSignature", "type": "bytes" }, { "internalType": "address", "name": "evmAddr", "type": "address" } ], "name": "recoverWitPublicKeyX", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "witSignature", "type": "bytes" }, { "internalType": "address", "name": "evmAddr", "type": "address" } ], "name": "recoverWitAddr", "outputs": [ { "internalType": "bytes20", "name": "", "type": "bytes20" }, { "internalType": "bytes20", "name": "", "type": "bytes20" }, { "internalType": "bytes20", "name": "", "type": "bytes20" }, { "internalType": "bytes20", "name": "", "type": "bytes20" } ], "stateMutability": "pure", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"witSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"evmAddr\",\"type\":\"address\"}],\"name\":\"recoverWitAddr\",\"outputs\":[{\"internalType\":\"bytes20\",\"name\":\"\",\"type\":\"bytes20\"},{\"internalType\":\"bytes20\",\"name\":\"\",\"type\":\"bytes20\"},{\"internalType\":\"bytes20\",\"name\":\"\",\"type\":\"bytes20\"},{\"internalType\":\"bytes20\",\"name\":\"\",\"type\":\"bytes20\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"witSignature\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"evmAddr\",\"type\":\"address\"}],\"name\":\"recoverWitPublicKeyX\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mockups/tests/TestSecp256k1.sol\":\"TestSecp256k1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/mockups/tests/TestSecp256k1.sol\":{\"keccak256\":\"0xfc6917bcf1d515b06ac4a2e9973986233860ed398f1095bf270c5dd56fc6ea3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b73c16302536613b5919b196b56c173ac1afca301cee06d1f403303795e0e492\",\"dweb:/ipfs/QmehvQYqYiBkDbSBsEdBYkUi7N9CNni5PxnVM436xTLa7d\"]}},\"version\":1}", "bytecode": "0x6080604052348015600e575f5ffd5b50610e008061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80634c9a882014610038578063f7d2a56c14610089575b5f5ffd5b61004b610046366004610c22565b6100aa565b604080516bffffffffffffffffffffffff19958616815293851660208501529184169183019190915290911660608201526080015b60405180910390f35b61009c610097366004610c22565b610292565b604051908152602001610080565b5f5f5f5f5f6100b98787610292565b905060025f60f81b826040516020016100d3929190610ce6565b60408051601f19818403018152908290526100ed91610d00565b602060405180830381855afa158015610108573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061012b9190610d16565b60405160029061014590600160f81b908590602001610ce6565b60408051601f198184030181529082905261015f91610d00565b602060405180830381855afa15801561017a573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061019d9190610d16565b6040516002906101b790600160f91b908690602001610ce6565b60408051601f19818403018152908290526101d191610d00565b602060405180830381855afa1580156101ec573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061020f9190610d16565b60405160029061022990600360f81b908790602001610ce6565b60408051601f198184030181529082905261024391610d00565b602060405180830381855afa15801561025e573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906102819190610d16565b929a91995097509095509350505050565b6040516bffffffffffffffffffffffff19606083901b1660208201525f9081906034016040516020818303038152906040528051906020012090508351604103610355576020840151604085015160608601515f1a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821180159061032757508060ff16601b148061032757508060ff16601c145b15610351575f6103438561033c601b85610d41565b8686610360565b50955061035a945050505050565b5050505b505f90505b92915050565b5f80806401000003d019610381607f600189901c166401000003d019610d6e565b860890506401000003d0198111806103aa575070014551231950b75fc4402da1732fc9bebe1984115b806103c6575070014551231950b75fc4402da1732fc9bebe1985115b806103cf575083155b806103d8575084155b806103e6575060018660ff16115b156103f7575f5f925092505061057e565b5f6104148670014551231950b75fc4402da1732fc9bebe19610587565b90505f6401000003d0198060076401000003d0195f8709086401000003d0198086870986090890506104628160046104536401000003d0196001610d85565b61045d9190610d98565b610656565b90505f61047260ff8a1683610d85565b61047d906002610d85565b6001161561049a57610495826401000003d019610db7565b61049c565b815b90505f808061051e70014551231950b75fc4402da1732fc9bebe196104d38f70014551231950b75fc4402da1732fc9bebe19610db7565b88097f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001610708565b9250925092505f5f5f61055670014551231950b75fc4402da1732fc9bebe198061054a5761054a610d5a565b8e8b098b896001610708565b9250925092505f5f61056c888888888888610781565b909e509c505050505050505050505050505b94509492505050565b5f82158015906105975750818314155b80156105a257508115155b6105e45760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b60448201526064015b60405180910390fd5b5f600183825b861561064b576105fa8783610d98565b905082868061060b5761060b610d5a565b878061061957610619610d5a565b8584096106269089610db7565b86089094509250866106388183610d6e565b6106429084610db7565b975091506105ea565b509195945050505050565b5f825f0361066557505f61035a565b815f036106745750600161035a565b6001600160ff1b5b8015610700576401000003d0198185161515860a6401000003d0198485090991506401000003d0196002820485161515860a6401000003d0198485090991506401000003d0196004820485161515860a6401000003d0198485090991506401000003d0196008820485161515860a6401000003d0198485090991506010900461067c565b509392505050565b5f5f5f865f0361071f575084915083905082610777565b865f8060015b831561076e57600184161561074a576107428383838d8d8d6107f6565b919450925090505b610755600285610d98565b93506107628a8a8a610a86565b919b5099509750610725565b91955093509150505b9450945094915050565b5f80808080878b036107c2576401000003d019878b085f036107ab575f5f945094505050506107eb565b6107b68b8b8b610a86565b919450925090506107d8565b6107d08b8b8b8b8b8b6107f6565b919450925090505b6107e3838383610b88565b945094505050505b965096945050505050565b5f808088158015610805575087155b15610817575084915083905082610a7a565b85158015610823575084155b15610835575087915086905085610a7a565b61083d610bd5565b6401000003d0198889098082526401000003d01990890960208201526401000003d019858009604082018190526401000003d0199086096060820152604080516080810182529082015181906401000003d019908d0981526020016401000003d01983600360200201518c0981526020016401000003d019835f60200201518a0981526020016401000003d019836001602002015189099052604081015181519192501415806108f557506060810151602082015114155b6109415760405162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e7374656164000060448201526064016105db565b610949610bd5565b81516401000003d0199061095d9082610db7565b604084015108815260208201516401000003d0199061097c9082610db7565b606084015108602082015280516401000003d0199080096040820181905281516401000003d0199109606082018190525f906401000003d019906109c09082610db7565b60208401516401000003d01990800908604083015184519192506401000003d0199182918291096002096109fa906401000003d019610db7565b820890505f6401000003d01980610a17846401000003d019610db7565b604086015187516401000003d0199190090860208501510990506401000003d019808460036020020151866001602002015109610a5a906401000003d019610db7565b820890505f6401000003d019808a8e098551099297509095509093505050505b96509650969350505050565b5f5f5f835f03610a9d575084915083905082610b7f565b5f6401000003d01987880990505f6401000003d01987880990505f6401000003d01987880990505f6401000003d01980848c0960040990505f6401000003d019806401000003d0198586095f096401000003d019876003090890506401000003d01980838408610b13906401000003d019610db7565b6401000003d0198384090894506401000003d019806401000003d019868709600809610b45906401000003d019610db7565b6401000003d01980610b5d896401000003d019610db7565b860884090893506401000003d019808a8c096002099497509295509293505050505b93509350939050565b5f5f5f610b9b846401000003d019610587565b90505f6401000003d01982830990505f6401000003d01982890990505f6401000003d0198084860989099199919850909650505050505050565b60405180608001604052806004906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610c1d575f5ffd5b919050565b5f5f60408385031215610c33575f5ffd5b823567ffffffffffffffff811115610c49575f5ffd5b8301601f81018513610c59575f5ffd5b803567ffffffffffffffff811115610c7357610c73610bf3565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610ca257610ca2610bf3565b604052818152828201602001871015610cb9575f5ffd5b816020840160208301375f60208383010152809450505050610cdd60208401610c07565b90509250929050565b6001600160f81b0319929092168252600182015260210190565b5f82518060208501845e5f920191825250919050565b5f60208284031215610d26575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b60ff828116828216039081111561035a5761035a610d2d565b634e487b7160e01b5f52601260045260245ffd5b808202811582820484141761035a5761035a610d2d565b8082018082111561035a5761035a610d2d565b5f82610db257634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561035a5761035a610d2d56fea264697066735822122046017d2d913305174440a5d9c1f140a3adf92756f31f206d438eca9affcae1bb64736f6c634300081e0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80634c9a882014610038578063f7d2a56c14610089575b5f5ffd5b61004b610046366004610c22565b6100aa565b604080516bffffffffffffffffffffffff19958616815293851660208501529184169183019190915290911660608201526080015b60405180910390f35b61009c610097366004610c22565b610292565b604051908152602001610080565b5f5f5f5f5f6100b98787610292565b905060025f60f81b826040516020016100d3929190610ce6565b60408051601f19818403018152908290526100ed91610d00565b602060405180830381855afa158015610108573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061012b9190610d16565b60405160029061014590600160f81b908590602001610ce6565b60408051601f198184030181529082905261015f91610d00565b602060405180830381855afa15801561017a573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061019d9190610d16565b6040516002906101b790600160f91b908690602001610ce6565b60408051601f19818403018152908290526101d191610d00565b602060405180830381855afa1580156101ec573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061020f9190610d16565b60405160029061022990600360f81b908790602001610ce6565b60408051601f198184030181529082905261024391610d00565b602060405180830381855afa15801561025e573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906102819190610d16565b929a91995097509095509350505050565b6040516bffffffffffffffffffffffff19606083901b1660208201525f9081906034016040516020818303038152906040528051906020012090508351604103610355576020840151604085015160608601515f1a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821180159061032757508060ff16601b148061032757508060ff16601c145b15610351575f6103438561033c601b85610d41565b8686610360565b50955061035a945050505050565b5050505b505f90505b92915050565b5f80806401000003d019610381607f600189901c166401000003d019610d6e565b860890506401000003d0198111806103aa575070014551231950b75fc4402da1732fc9bebe1984115b806103c6575070014551231950b75fc4402da1732fc9bebe1985115b806103cf575083155b806103d8575084155b806103e6575060018660ff16115b156103f7575f5f925092505061057e565b5f6104148670014551231950b75fc4402da1732fc9bebe19610587565b90505f6401000003d0198060076401000003d0195f8709086401000003d0198086870986090890506104628160046104536401000003d0196001610d85565b61045d9190610d98565b610656565b90505f61047260ff8a1683610d85565b61047d906002610d85565b6001161561049a57610495826401000003d019610db7565b61049c565b815b90505f808061051e70014551231950b75fc4402da1732fc9bebe196104d38f70014551231950b75fc4402da1732fc9bebe19610db7565b88097f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001610708565b9250925092505f5f5f61055670014551231950b75fc4402da1732fc9bebe198061054a5761054a610d5a565b8e8b098b896001610708565b9250925092505f5f61056c888888888888610781565b909e509c505050505050505050505050505b94509492505050565b5f82158015906105975750818314155b80156105a257508115155b6105e45760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b60448201526064015b60405180910390fd5b5f600183825b861561064b576105fa8783610d98565b905082868061060b5761060b610d5a565b878061061957610619610d5a565b8584096106269089610db7565b86089094509250866106388183610d6e565b6106429084610db7565b975091506105ea565b509195945050505050565b5f825f0361066557505f61035a565b815f036106745750600161035a565b6001600160ff1b5b8015610700576401000003d0198185161515860a6401000003d0198485090991506401000003d0196002820485161515860a6401000003d0198485090991506401000003d0196004820485161515860a6401000003d0198485090991506401000003d0196008820485161515860a6401000003d0198485090991506010900461067c565b509392505050565b5f5f5f865f0361071f575084915083905082610777565b865f8060015b831561076e57600184161561074a576107428383838d8d8d6107f6565b919450925090505b610755600285610d98565b93506107628a8a8a610a86565b919b5099509750610725565b91955093509150505b9450945094915050565b5f80808080878b036107c2576401000003d019878b085f036107ab575f5f945094505050506107eb565b6107b68b8b8b610a86565b919450925090506107d8565b6107d08b8b8b8b8b8b6107f6565b919450925090505b6107e3838383610b88565b945094505050505b965096945050505050565b5f808088158015610805575087155b15610817575084915083905082610a7a565b85158015610823575084155b15610835575087915086905085610a7a565b61083d610bd5565b6401000003d0198889098082526401000003d01990890960208201526401000003d019858009604082018190526401000003d0199086096060820152604080516080810182529082015181906401000003d019908d0981526020016401000003d01983600360200201518c0981526020016401000003d019835f60200201518a0981526020016401000003d019836001602002015189099052604081015181519192501415806108f557506060810151602082015114155b6109415760405162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e7374656164000060448201526064016105db565b610949610bd5565b81516401000003d0199061095d9082610db7565b604084015108815260208201516401000003d0199061097c9082610db7565b606084015108602082015280516401000003d0199080096040820181905281516401000003d0199109606082018190525f906401000003d019906109c09082610db7565b60208401516401000003d01990800908604083015184519192506401000003d0199182918291096002096109fa906401000003d019610db7565b820890505f6401000003d01980610a17846401000003d019610db7565b604086015187516401000003d0199190090860208501510990506401000003d019808460036020020151866001602002015109610a5a906401000003d019610db7565b820890505f6401000003d019808a8e098551099297509095509093505050505b96509650969350505050565b5f5f5f835f03610a9d575084915083905082610b7f565b5f6401000003d01987880990505f6401000003d01987880990505f6401000003d01987880990505f6401000003d01980848c0960040990505f6401000003d019806401000003d0198586095f096401000003d019876003090890506401000003d01980838408610b13906401000003d019610db7565b6401000003d0198384090894506401000003d019806401000003d019868709600809610b45906401000003d019610db7565b6401000003d01980610b5d896401000003d019610db7565b860884090893506401000003d019808a8c096002099497509295509293505050505b93509350939050565b5f5f5f610b9b846401000003d019610587565b90505f6401000003d01982830990505f6401000003d01982890990505f6401000003d0198084860989099199919850909650505050505050565b60405180608001604052806004906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610c1d575f5ffd5b919050565b5f5f60408385031215610c33575f5ffd5b823567ffffffffffffffff811115610c49575f5ffd5b8301601f81018513610c59575f5ffd5b803567ffffffffffffffff811115610c7357610c73610bf3565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610ca257610ca2610bf3565b604052818152828201602001871015610cb9575f5ffd5b816020840160208301375f60208383010152809450505050610cdd60208401610c07565b90509250929050565b6001600160f81b0319929092168252600182015260210190565b5f82518060208501845e5f920191825250919050565b5f60208284031215610d26575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b60ff828116828216039081111561035a5761035a610d2d565b634e487b7160e01b5f52601260045260245ffd5b808202811582820484141761035a5761035a610d2d565b8082018082111561035a5761035a610d2d565b5f82610db257634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561035a5761035a610d2d56fea264697066735822122046017d2d913305174440a5d9c1f140a3adf92756f31f206d438eca9affcae1bb64736f6c634300081e0033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nativeSrc": "0:4994:136", "nodeType": "YulBlock", "src": "0:4994:136", "statements": [ { "nativeSrc": "6:3:136", "nodeType": "YulBlock", "src": "6:3:136", "statements": [] }, { "body": { "nativeSrc": "46:95:136", "nodeType": "YulBlock", "src": "46:95:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "63:1:136", "nodeType": "YulLiteral", "src": "63:1:136", "type": "", "value": "0" }, { "arguments": [ { "kind": "number", "nativeSrc": "70:3:136", "nodeType": "YulLiteral", "src": "70:3:136", "type": "", "value": "224" }, { "kind": "number", "nativeSrc": "75:10:136", "nodeType": "YulLiteral", "src": "75:10:136", "type": "", "value": "0x4e487b71" } ], "functionName": { "name": "shl", "nativeSrc": "66:3:136", "nodeType": "YulIdentifier", "src": "66:3:136" }, "nativeSrc": "66:20:136", "nodeType": "YulFunctionCall", "src": "66:20:136" } ], "functionName": { "name": "mstore", "nativeSrc": "56:6:136", "nodeType": "YulIdentifier", "src": "56:6:136" }, "nativeSrc": "56:31:136", "nodeType": "YulFunctionCall", "src": "56:31:136" }, "nativeSrc": "56:31:136", "nodeType": "YulExpressionStatement", "src": "56:31:136" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "103:1:136", "nodeType": "YulLiteral", "src": "103:1:136", "type": "", "value": "4" }, { "kind": "number", "nativeSrc": "106:4:136", "nodeType": "YulLiteral", "src": "106:4:136", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nativeSrc": "96:6:136", "nodeType": "YulIdentifier", "src": "96:6:136" }, "nativeSrc": "96:15:136", "nodeType": "YulFunctionCall", "src": "96:15:136" }, "nativeSrc": "96:15:136", "nodeType": "YulExpressionStatement", "src": "96:15:136" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "127:1:136", "nodeType": "YulLiteral", "src": "127:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "130:4:136", "nodeType": "YulLiteral", "src": "130:4:136", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nativeSrc": "120:6:136", "nodeType": "YulIdentifier", "src": "120:6:136" }, "nativeSrc": "120:15:136", "nodeType": "YulFunctionCall", "src": "120:15:136" }, "nativeSrc": "120:15:136", "nodeType": "YulExpressionStatement", "src": "120:15:136" } ] }, "name": "panic_error_0x41", "nativeSrc": "14:127:136", "nodeType": "YulFunctionDefinition", "src": "14:127:136" }, { "body": { "nativeSrc": "195:124:136", "nodeType": "YulBlock", "src": "195:124:136", "statements": [ { "nativeSrc": "205:29:136", "nodeType": "YulAssignment", "src": "205:29:136", "value": { "arguments": [ { "name": "offset", "nativeSrc": "227:6:136", "nodeType": "YulIdentifier", "src": "227:6:136" } ], "functionName": { "name": "calldataload", "nativeSrc": "214:12:136", "nodeType": "YulIdentifier", "src": "214:12:136" }, "nativeSrc": "214:20:136", "nodeType": "YulFunctionCall", "src": "214:20:136" }, "variableNames": [ { "name": "value", "nativeSrc": "205:5:136", "nodeType": "YulIdentifier", "src": "205:5:136" } ] }, { "body": { "nativeSrc": "297:16:136", "nodeType": "YulBlock", "src": "297:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "306:1:136", "nodeType": "YulLiteral", "src": "306:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "309:1:136", "nodeType": "YulLiteral", "src": "309:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "299:6:136", "nodeType": "YulIdentifier", "src": "299:6:136" }, "nativeSrc": "299:12:136", "nodeType": "YulFunctionCall", "src": "299:12:136" }, "nativeSrc": "299:12:136", "nodeType": "YulExpressionStatement", "src": "299:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nativeSrc": "256:5:136", "nodeType": "YulIdentifier", "src": "256:5:136" }, { "arguments": [ { "name": "value", "nativeSrc": "267:5:136", "nodeType": "YulIdentifier", "src": "267:5:136" }, { "arguments": [ { "arguments": [ { "kind": "number", "nativeSrc": "282:3:136", "nodeType": "YulLiteral", "src": "282:3:136", "type": "", "value": "160" }, { "kind": "number", "nativeSrc": "287:1:136", "nodeType": "YulLiteral", "src": "287:1:136", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nativeSrc": "278:3:136", "nodeType": "YulIdentifier", "src": "278:3:136" }, "nativeSrc": "278:11:136", "nodeType": "YulFunctionCall", "src": "278:11:136" }, { "kind": "number", "nativeSrc": "291:1:136", "nodeType": "YulLiteral", "src": "291:1:136", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nativeSrc": "274:3:136", "nodeType": "YulIdentifier", "src": "274:3:136" }, "nativeSrc": "274:19:136", "nodeType": "YulFunctionCall", "src": "274:19:136" } ], "functionName": { "name": "and", "nativeSrc": "263:3:136", "nodeType": "YulIdentifier", "src": "263:3:136" }, "nativeSrc": "263:31:136", "nodeType": "YulFunctionCall", "src": "263:31:136" } ], "functionName": { "name": "eq", "nativeSrc": "253:2:136", "nodeType": "YulIdentifier", "src": "253:2:136" }, "nativeSrc": "253:42:136", "nodeType": "YulFunctionCall", "src": "253:42:136" } ], "functionName": { "name": "iszero", "nativeSrc": "246:6:136", "nodeType": "YulIdentifier", "src": "246:6:136" }, "nativeSrc": "246:50:136", "nodeType": "YulFunctionCall", "src": "246:50:136" }, "nativeSrc": "243:70:136", "nodeType": "YulIf", "src": "243:70:136" } ] }, "name": "abi_decode_address", "nativeSrc": "146:173:136", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nativeSrc": "174:6:136", "nodeType": "YulTypedName", "src": "174:6:136", "type": "" } ], "returnVariables": [ { "name": "value", "nativeSrc": "185:5:136", "nodeType": "YulTypedName", "src": "185:5:136", "type": "" } ], "src": "146:173:136" }, { "body": { "nativeSrc": "420:932:136", "nodeType": "YulBlock", "src": "420:932:136", "statements": [ { "body": { "nativeSrc": "466:16:136", "nodeType": "YulBlock", "src": "466:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "475:1:136", "nodeType": "YulLiteral", "src": "475:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "478:1:136", "nodeType": "YulLiteral", "src": "478:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "468:6:136", "nodeType": "YulIdentifier", "src": "468:6:136" }, "nativeSrc": "468:12:136", "nodeType": "YulFunctionCall", "src": "468:12:136" }, "nativeSrc": "468:12:136", "nodeType": "YulExpressionStatement", "src": "468:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "441:7:136", "nodeType": "YulIdentifier", "src": "441:7:136" }, { "name": "headStart", "nativeSrc": "450:9:136", "nodeType": "YulIdentifier", "src": "450:9:136" } ], "functionName": { "name": "sub", "nativeSrc": "437:3:136", "nodeType": "YulIdentifier", "src": "437:3:136" }, "nativeSrc": "437:23:136", "nodeType": "YulFunctionCall", "src": "437:23:136" }, { "kind": "number", "nativeSrc": "462:2:136", "nodeType": "YulLiteral", "src": "462:2:136", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nativeSrc": "433:3:136", "nodeType": "YulIdentifier", "src": "433:3:136" }, "nativeSrc": "433:32:136", "nodeType": "YulFunctionCall", "src": "433:32:136" }, "nativeSrc": "430:52:136", "nodeType": "YulIf", "src": "430:52:136" }, { "nativeSrc": "491:37:136", "nodeType": "YulVariableDeclaration", "src": "491:37:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "518:9:136", "nodeType": "YulIdentifier", "src": "518:9:136" } ], "functionName": { "name": "calldataload", "nativeSrc": "505:12:136", "nodeType": "YulIdentifier", "src": "505:12:136" }, "nativeSrc": "505:23:136", "nodeType": "YulFunctionCall", "src": "505:23:136" }, "variables": [ { "name": "offset", "nativeSrc": "495:6:136", "nodeType": "YulTypedName", "src": "495:6:136", "type": "" } ] }, { "body": { "nativeSrc": "571:16:136", "nodeType": "YulBlock", "src": "571:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "580:1:136", "nodeType": "YulLiteral", "src": "580:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "583:1:136", "nodeType": "YulLiteral", "src": "583:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "573:6:136", "nodeType": "YulIdentifier", "src": "573:6:136" }, "nativeSrc": "573:12:136", "nodeType": "YulFunctionCall", "src": "573:12:136" }, "nativeSrc": "573:12:136", "nodeType": "YulExpressionStatement", "src": "573:12:136" } ] }, "condition": { "arguments": [ { "name": "offset", "nativeSrc": "543:6:136", "nodeType": "YulIdentifier", "src": "543:6:136" }, { "kind": "number", "nativeSrc": "551:18:136", "nodeType": "YulLiteral", "src": "551:18:136", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "540:2:136", "nodeType": "YulIdentifier", "src": "540:2:136" }, "nativeSrc": "540:30:136", "nodeType": "YulFunctionCall", "src": "540:30:136" }, "nativeSrc": "537:50:136", "nodeType": "YulIf", "src": "537:50:136" }, { "nativeSrc": "596:32:136", "nodeType": "YulVariableDeclaration", "src": "596:32:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "610:9:136", "nodeType": "YulIdentifier", "src": "610:9:136" }, { "name": "offset", "nativeSrc": "621:6:136", "nodeType": "YulIdentifier", "src": "621:6:136" } ], "functionName": { "name": "add", "nativeSrc": "606:3:136", "nodeType": "YulIdentifier", "src": "606:3:136" }, "nativeSrc": "606:22:136", "nodeType": "YulFunctionCall", "src": "606:22:136" }, "variables": [ { "name": "_1", "nativeSrc": "600:2:136", "nodeType": "YulTypedName", "src": "600:2:136", "type": "" } ] }, { "body": { "nativeSrc": "676:16:136", "nodeType": "YulBlock", "src": "676:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "685:1:136", "nodeType": "YulLiteral", "src": "685:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "688:1:136", "nodeType": "YulLiteral", "src": "688:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "678:6:136", "nodeType": "YulIdentifier", "src": "678:6:136" }, "nativeSrc": "678:12:136", "nodeType": "YulFunctionCall", "src": "678:12:136" }, "nativeSrc": "678:12:136", "nodeType": "YulExpressionStatement", "src": "678:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "_1", "nativeSrc": "655:2:136", "nodeType": "YulIdentifier", "src": "655:2:136" }, { "kind": "number", "nativeSrc": "659:4:136", "nodeType": "YulLiteral", "src": "659:4:136", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nativeSrc": "651:3:136", "nodeType": "YulIdentifier", "src": "651:3:136" }, "nativeSrc": "651:13:136", "nodeType": "YulFunctionCall", "src": "651:13:136" }, { "name": "dataEnd", "nativeSrc": "666:7:136", "nodeType": "YulIdentifier", "src": "666:7:136" } ], "functionName": { "name": "slt", "nativeSrc": "647:3:136", "nodeType": "YulIdentifier", "src": "647:3:136" }, "nativeSrc": "647:27:136", "nodeType": "YulFunctionCall", "src": "647:27:136" } ], "functionName": { "name": "iszero", "nativeSrc": "640:6:136", "nodeType": "YulIdentifier", "src": "640:6:136" }, "nativeSrc": "640:35:136", "nodeType": "YulFunctionCall", "src": "640:35:136" }, "nativeSrc": "637:55:136", "nodeType": "YulIf", "src": "637:55:136" }, { "nativeSrc": "701:30:136", "nodeType": "YulVariableDeclaration", "src": "701:30:136", "value": { "arguments": [ { "name": "_1", "nativeSrc": "728:2:136", "nodeType": "YulIdentifier", "src": "728:2:136" } ], "functionName": { "name": "calldataload", "nativeSrc": "715:12:136", "nodeType": "YulIdentifier", "src": "715:12:136" }, "nativeSrc": "715:16:136", "nodeType": "YulFunctionCall", "src": "715:16:136" }, "variables": [ { "name": "length", "nativeSrc": "705:6:136", "nodeType": "YulTypedName", "src": "705:6:136", "type": "" } ] }, { "body": { "nativeSrc": "774:22:136", "nodeType": "YulBlock", "src": "774:22:136", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nativeSrc": "776:16:136", "nodeType": "YulIdentifier", "src": "776:16:136" }, "nativeSrc": "776:18:136", "nodeType": "YulFunctionCall", "src": "776:18:136" }, "nativeSrc": "776:18:136", "nodeType": "YulExpressionStatement", "src": "776:18:136" } ] }, "condition": { "arguments": [ { "name": "length", "nativeSrc": "746:6:136", "nodeType": "YulIdentifier", "src": "746:6:136" }, { "kind": "number", "nativeSrc": "754:18:136", "nodeType": "YulLiteral", "src": "754:18:136", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "743:2:136", "nodeType": "YulIdentifier", "src": "743:2:136" }, "nativeSrc": "743:30:136", "nodeType": "YulFunctionCall", "src": "743:30:136" }, "nativeSrc": "740:56:136", "nodeType": "YulIf", "src": "740:56:136" }, { "nativeSrc": "805:23:136", "nodeType": "YulVariableDeclaration", "src": "805:23:136", "value": { "arguments": [ { "kind": "number", "nativeSrc": "825:2:136", "nodeType": "YulLiteral", "src": "825:2:136", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nativeSrc":