witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
886 lines • 336 kB
JSON
{
"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":