UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

916 lines (915 loc) 469 kB
{ "contractName": "WitPythChainlinkAggregator", "abi": [ { "inputs": [ { "internalType": "address", "name": "_witOracle", "type": "address" }, { "internalType": "bytes4", "name": "_id4", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "id4", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "priceId", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pyth", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "witOracle", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getAnswer", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestAnswer", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRound", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "description", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint80", "name": "_roundId", "type": "uint80" } ], "name": "getRoundData", "outputs": [ { "internalType": "uint80", "name": "", "type": "uint80" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint80", "name": "", "type": "uint80" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRoundData", "outputs": [ { "internalType": "uint80", "name": "", "type": "uint80" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint80", "name": "", "type": "uint80" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_witOracle\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint80\",\"name\":\"_roundId\",\"type\":\"uint80\"}],\"name\":\"getRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"id4\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"\",\"type\":\"uint80\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pyth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"decimals()\":{\"notice\":\"=============================================================================================================== --- IWitPythChainlinkAggregator -------------------------------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mockups/WitPythChainlinkAggregator.sol\":\"WitPythChainlinkAggregator\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitPriceFeeds.sol\":{\"keccak256\":\"0xb29abe8819699e37e91b41c4cb63273fbb0ab8c482a09c31da6c91d7338cc405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9325f3cbd3b396216268ec83d583abd86f44a5d656c375485296e256b3c2f2a\",\"dweb:/ipfs/Qme8pjdacDLa8HLKF7Sm3XZa9uUQn1EL7gANLnAbak8y4f\"]},\"project:/contracts/interfaces/IWitPriceFeedsAdmin.sol\":{\"keccak256\":\"0xd05b103840eeb8a4770e140dbe91bd40dd33d92959d226c57a2ae45a5e615355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29e6104b0b62c676bb797ce8d01512550058f5b6de210b2467ba9bb0dfe8c00f\",\"dweb:/ipfs/QmUAgsVJYHqiRFrrnWCYo5vGJRaN4VsZvcBXJWYJUF5QyV\"]},\"project:/contracts/interfaces/IWitPriceFeedsConsumer.sol\":{\"keccak256\":\"0x2c12c7f4502a2953f352b67688cd8841a1198c9b8e8f9f87ab3fc0163b7533e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d82ec627ac4c38a7336b03541c118d606e107128ba109097857a26d376e92f33\",\"dweb:/ipfs/QmQBmvL5ziD7fY2vDBNpbDbbhnwi8Cwh4XVthUjTd9ZyCF\"]},\"project:/contracts/interfaces/IWitPriceFeedsEvents.sol\":{\"keccak256\":\"0xf8b1a2ca8dd8dc8a5b8debf18f4c32df404709a4b03353c939e57a92a4e41b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f755b639781013ae0bae92f063b1f5b440c187bbc9a7f938b6982e579114acfe\",\"dweb:/ipfs/QmZafsjeELGnVdbXvsiXeQ82vR7DBFCrwDLGqeopgxBgyC\"]},\"project:/contracts/interfaces/IWitPriceFeedsTypes.sol\":{\"keccak256\":\"0x68e2189e863f50e8d0aad8394a526df00c1e626886c23aa24c915427e5285e46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5ff40355d4144e7c08f033b55e9ef1b5994bbd83bbfbd7a41129b141f164194\",\"dweb:/ipfs/QmXMhM7GXaVXnCQ1VFB4kPhbhbfktuNFKqMGXMtWLgUk3d\"]},\"project:/contracts/interfaces/legacy/IChainlinkAggregatorV3.sol\":{\"keccak256\":\"0x09750da5b74e684e13093320b00c8e95d648ddf58bfdb29b8bc3b90e6853c263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b08da33fc3e7cbf1f60965f82efdea926f2f62312298be29188eca9d109189ac\",\"dweb:/ipfs/QmR2sJ4dddcDW5q14usqiEeB7pamqHDfqkMDd9hghVMhiJ\"]},\"project:/contracts/interfaces/legacy/IPythChainlinkAggregatorV3.sol\":{\"keccak256\":\"0x768f729a0575850eab9bde8f57bea1f5761e6749b7c2de9a6c580594fad4a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3f6ca5693bec81a880f4d34e78f8de30bd783e25ae7b628a1a4ced4c73b8894\",\"dweb:/ipfs/QmXjajPrDiW9y1uwEaJhcsonJPWPYCdDegMoCQ6CkGPCL2\"]},\"project:/contracts/interfaces/legacy/IWitPyth.sol\":{\"keccak256\":\"0xa06a34a5e553beae7dbe09a5d1049557190511e696a1b855ab5e1196a06048a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2c814b7be5539147c0ba1b55f6cddcad382d5e5e9f9de545d2d428c1989c7de\",\"dweb:/ipfs/QmY8KSV3PW2FBQVzXidLQ21KvDJ1v6y8WHaV8uxsqThJCC\"]},\"project:/contracts/interfaces/legacy/IWitPythChainlinkAggregator.sol\":{\"keccak256\":\"0xd34682fccc3ac1af39ef5f3bea61cd4ae8ee80862649678de5714a51177f4384\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://017eddcbf631cdc3e1a7f2c34478fe98697371b83d1985fa742e46a99c7b7a63\",\"dweb:/ipfs/QmbJ4XH8e2J79kuAtP1CcYftDfDUYf9NqxFDaKvSpzTGV2\"]},\"project:/contracts/interfaces/legacy/IWitPythErrors.sol\":{\"keccak256\":\"0x7d10dfd625a4914e4017cde140397f9f236f726ea82b4feed1d889f852866c1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bbf8dc2bbac36cf0a141f7062b6ed8143cffaee7969a1afc3cf0d1971e8cf18\",\"dweb:/ipfs/QmbLiZwggZwhiTLJurBkAu492xAZZ9MXWiknsuGnLYNXhP\"]},\"project:/contracts/interfaces/legacy/IWitPythEvents.sol\":{\"keccak256\":\"0xacca21f4bb4d740de63f4f2e469e8313b1d8f9a7d2340efcc17981c3510c2800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da8b0493082593838fbc4df2431c1983a82165ae1f17215e988951c0c1ef3882\",\"dweb:/ipfs/QmNUX9K3UqxiR9igT87iLja8h3u7htp83ZhAGZ6UgD3BZP\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/mockups/WitPythChainlinkAggregator.sol\":{\"keccak256\":\"0xac58a4bb3652a2af7cae48d7463e265945a3b73976fd23b4041638f57ca946e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa9fb289349935abaa405efbc17d454f926803741fead72f7e2fbdc697ba86d\",\"dweb:/ipfs/QmTUJq2EGBXbovnKNTWE3bGoU1jzAQc7aVdFAu1esANrBJ\"]}},\"version\":1}", "bytecode": "0x610100604052348015610010575f5ffd5b50604051610b77380380610b7783398101604081905261002f916100c1565b6001600160e01b0319811660808190526040516371b50ecf60e11b815260048101919091526001600160a01b0383169063e36a1d9e90602401602060405180830381865afa158015610083573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a79190610110565b60a052506001600160a01b031660c081905260e052610127565b5f5f604083850312156100d2575f5ffd5b82516001600160a01b03811681146100e8575f5ffd5b60208401519092506001600160e01b031981168114610105575f5ffd5b809150509250929050565b5f60208284031215610120575f5ffd5b5051919050565b60805160a05160c05160e0516109d16101a65f395f818160ee01528181610322015281816103f4015281816104cb01528181610569015261065701525f61024e01525f61013201525f818161021a015281816102970152818161035101528181610423015281816104f801528181610598015261068601526109d15ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638205bf6a11610088578063b5ab58dc11610063578063b5ab58dc14610202578063e9159d6414610215578063f98d06f014610249578063feaf968c14610270575f5ffd5b80638205bf6a146101a857806395d89b41146101b05780639a6fc8f5146101b8575f5ffd5b806350d25bcd116100c357806350d25bcd1461017c57806354fd4d5014610184578063668a0f021461018b5780637284e41614610193575f5ffd5b80631014d375146100e9578063311893341461012d578063313ce56714610162575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101547f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610124565b61016a610278565b60405160ff9091168152602001610124565b61015461031e565b6003610154565b6101546103d8565b61019b6103e6565b604051610124919061072e565b6101546103f0565b61019b6104b1565b6101cb6101c6366004610763565b610561565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610124565b610154610210366004610793565b610640565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012491906107aa565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61064f565b60405163274d45db60e01b81525f908190339063274d45db906102bf907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b602060405180830381865afa1580156102da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906107d4565b90505f815f0b1261030f5780610318565b610318816107ed565b91505090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161038c91906107aa565b60a060405180830381865afa1580156103a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610872565b6020015160070b92915050565b5f6103e16103f0565b905090565b60606103e16104b1565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161045e91906107aa565b60a060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190610872565b6060015167ffffffffffffffff1692915050565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890610520907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b5f60405180830381865afa15801561053a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103e19190810190610907565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105d391906107aa565b60a060405180830381865afa1580156105ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106129190610872565b6060810151602090910151979860079890980b9767ffffffffffffffff909116965086955088945092505050565b5f61064961031e565b92915050565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106c191906107aa565b60a060405180830381865afa1580156106dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190610872565b606081015160209091015167ffffffffffffffff9091169760079190910b9650879550859450849350915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610773575f5ffd5b813569ffffffffffffffffffff8116811461078c575f5ffd5b9392505050565b5f602082840312156107a3575f5ffd5b5035919050565b6001600160e01b031991909116815260200190565b80515f81900b81146107cf575f5ffd5b919050565b5f602082840312156107e4575f5ffd5b61078c826107bf565b5f81810b6080810161080d57634e487b7160e01b5f52601160045260245ffd5b5f0392915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561085257610852610815565b604052919050565b67ffffffffffffffff8116811461086f575f5ffd5b50565b5f60a0828403128015610883575f5ffd5b5060405160a0810167ffffffffffffffff811182821017156108a7576108a7610815565b6040526108b3836107bf565b815260208301516108c38161085a565b60208201526040830151600681900b81146108dc575f5ffd5b604082015260608301516108ef8161085a565b60608201526080928301519281019290925250919050565b5f60208284031215610917575f5ffd5b815167ffffffffffffffff81111561092d575f5ffd5b8201601f8101841361093d575f5ffd5b805167ffffffffffffffff81111561095757610957610815565b61096a601f8201601f1916602001610829565b81815285602083850101111561097e575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea2646970667358221220ed110a5686ebb699e7a8419c7abfa8c2ab9b37934765c17bd5997c5da024fdf864736f6c634300081e0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638205bf6a11610088578063b5ab58dc11610063578063b5ab58dc14610202578063e9159d6414610215578063f98d06f014610249578063feaf968c14610270575f5ffd5b80638205bf6a146101a857806395d89b41146101b05780639a6fc8f5146101b8575f5ffd5b806350d25bcd116100c357806350d25bcd1461017c57806354fd4d5014610184578063668a0f021461018b5780637284e41614610193575f5ffd5b80631014d375146100e9578063311893341461012d578063313ce56714610162575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101547f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610124565b61016a610278565b60405160ff9091168152602001610124565b61015461031e565b6003610154565b6101546103d8565b61019b6103e6565b604051610124919061072e565b6101546103f0565b61019b6104b1565b6101cb6101c6366004610763565b610561565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610124565b610154610210366004610793565b610640565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012491906107aa565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61064f565b60405163274d45db60e01b81525f908190339063274d45db906102bf907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b602060405180830381865afa1580156102da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906107d4565b90505f815f0b1261030f5780610318565b610318816107ed565b91505090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161038c91906107aa565b60a060405180830381865afa1580156103a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610872565b6020015160070b92915050565b5f6103e16103f0565b905090565b60606103e16104b1565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161045e91906107aa565b60a060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190610872565b6060015167ffffffffffffffff1692915050565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890610520907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b5f60405180830381865afa15801561053a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103e19190810190610907565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105d391906107aa565b60a060405180830381865afa1580156105ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106129190610872565b6060810151602090910151979860079890980b9767ffffffffffffffff909116965086955088945092505050565b5f61064961031e565b92915050565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106c191906107aa565b60a060405180830381865afa1580156106dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190610872565b606081015160209091015167ffffffffffffffff9091169760079190910b9650879550859450849350915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610773575f5ffd5b813569ffffffffffffffffffff8116811461078c575f5ffd5b9392505050565b5f602082840312156107a3575f5ffd5b5035919050565b6001600160e01b031991909116815260200190565b80515f81900b81146107cf575f5ffd5b919050565b5f602082840312156107e4575f5ffd5b61078c826107bf565b5f81810b6080810161080d57634e487b7160e01b5f52601160045260245ffd5b5f0392915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561085257610852610815565b604052919050565b67ffffffffffffffff8116811461086f575f5ffd5b50565b5f60a0828403128015610883575f5ffd5b5060405160a0810167ffffffffffffffff811182821017156108a7576108a7610815565b6040526108b3836107bf565b815260208301516108c38161085a565b60208201526040830151600681900b81146108dc575f5ffd5b604082015260608301516108ef8161085a565b60608201526080928301519281019290925250919050565b5f60208284031215610917575f5ffd5b815167ffffffffffffffff81111561092d575f5ffd5b8201601f8101841361093d575f5ffd5b805167ffffffffffffffff81111561095757610957610815565b61096a601f8201601f1916602001610829565b81815285602083850101111561097e575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea2646970667358221220ed110a5686ebb699e7a8419c7abfa8c2ab9b37934765c17bd5997c5da024fdf864736f6c634300081e0033", "immutableReferences": { "44478": [ { "length": 32, "start": 538 }, { "length": 32, "start": 663 }, { "length": 32, "start": 849 }, { "length": 32, "start": 1059 }, { "length": 32, "start": 1272 }, { "length": 32, "start": 1432 }, { "length": 32, "start": 1670 } ], "44481": [ { "length": 32, "start": 306 } ], "44484": [ { "length": 32, "start": 590 } ], "44487": [ { "length": 32, "start": 238 }, { "length": 32, "start": 802 }, { "length": 32, "start": 1012 }, { "length": 32, "start": 1227 }, { "length": 32, "start": 1385 }, { "length": 32, "start": 1623 } ] }, "generatedSources": [ { "ast": { "nativeSrc": "0:903:136", "nodeType": "YulBlock", "src": "0:903:136", "statements": [ { "nativeSrc": "6:3:136", "nodeType": "YulBlock", "src": "6:3:136", "statements": [] }, { "body": { "nativeSrc": "111:368:136", "nodeType": "YulBlock", "src": "111:368:136", "statements": [ { "body": { "nativeSrc": "157:16:136", "nodeType": "YulBlock", "src": "157:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "166:1:136", "nodeType": "YulLiteral", "src": "166:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "169:1:136", "nodeType": "YulLiteral", "src": "169:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "159:6:136", "nodeType": "YulIdentifier", "src": "159:6:136" }, "nativeSrc": "159:12:136", "nodeType": "YulFunctionCall", "src": "159:12:136" }, "nativeSrc": "159:12:136", "nodeType": "YulExpressionStatement", "src": "159:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "132:7:136", "nodeType": "YulIdentifier", "src": "132:7:136" }, { "name": "headStart", "nativeSrc": "141:9:136", "nodeType": "YulIdentifier", "src": "141:9:136" } ], "functionName": { "name": "sub", "nativeSrc": "128:3:136", "nodeType": "YulIdentifier", "src": "128:3:136" }, "nativeSrc": "128:23:136", "nodeType": "YulFunctionCall", "src": "128:23:136" }, { "kind": "number", "nativeSrc": "153:2:136", "nodeType": "YulLiteral", "src": "153:2:136", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nativeSrc": "124:3:136", "nodeType": "YulIdentifier", "src": "124:3:136" }, "nativeSrc": "124:32:136", "nodeType": "YulFunctionCall", "src": "124:32:136" }, "nativeSrc": "121:52:136", "nodeType": "YulIf", "src": "121:52:136" }, { "nativeSrc": "182:29:136", "nodeType": "YulVariableDeclaration", "src": "182:29:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "201:9:136", "nodeType": "YulIdentifier", "src": "201:9:136" } ], "functionName": { "name": "mload", "nativeSrc": "195:5:136", "nodeType": "YulIdentifier", "src": "195:5:136" }, "nativeSrc": "195:16:136", "nodeType": "YulFunctionCall", "src": "195:16:136" }, "variables": [ { "name": "value", "nativeSrc": "186:5:136", "nodeType": "YulTypedName", "src": "186:5:136", "type": "" } ] }, { "body": { "nativeSrc": "274:16:136", "nodeType": "YulBlock", "src": "274:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "283:1:136", "nodeType": "YulLiteral", "src": "283:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "286:1:136", "nodeType": "YulLiteral", "src": "286:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "276:6:136", "nodeType": "YulIdentifier", "src": "276:6:136" }, "nativeSrc": "276:12:136", "nodeType": "YulFunctionCall", "src": "276:12:136" }, "nativeSrc": "276:12:136", "nodeType": "YulExpressionStatement", "src": "276:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nativeSrc": "233:5:136", "nodeType": "YulIdentifier", "src": "233:5:136" }, { "arguments": [ { "name": "value", "nativeSrc": "244:5:136", "nodeType": "YulIdentifier", "src": "244:5:136" }, { "arguments": [ { "arguments": [ { "kind": "number", "nativeSrc": "259:3:136", "nodeType": "YulLiteral", "src": "259:3:136", "type": "", "value": "160" }, { "kind": "number", "nativeSrc": "264:1:136", "nodeType": "YulLiteral", "src": "264:1:136", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nativeSrc": "255:3:136", "nodeType": "YulIdentifier", "src": "255:3:136" }, "nativeSrc": "255:11:136", "nodeType": "YulFunctionCall", "src": "255:11:136" }, { "kind": "number", "nativeSrc": "268:1:136", "nodeType": "YulLiteral", "src": "268:1:136", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nativeSrc": "251:3:136", "nodeType": "YulIdentifier", "src": "251:3:136" }, "nativeSrc": "251:19:136", "nodeType": "YulFunctionCall", "src": "251:19:136" } ], "functionName": { "name": "and", "nativeSrc": "240:3:136", "nodeType": "YulIdentifier", "src": "240:3:136" }, "nativeSrc": "240:31:136", "nodeType": "YulFunctionCall", "src": "240:31:136" } ], "functionName": { "name": "eq", "nativeSrc": "230:2:136", "nodeType": "YulIdentifier", "src": "230:2:136" }, "nativeSrc": "230:42:136", "nodeType": "YulFunctionCall", "src": "230:42:136" } ], "functionName": { "name": "iszero", "nativeSrc": "223:6:136", "nodeType": "YulIdentifier", "src": "223:6:136" }, "nativeSrc": "223:50:136", "nodeType": "YulFunctionCall", "src": "223:50:136" }, "nativeSrc": "220:70:136", "nodeType": "YulIf", "src": "220:70:136" }, { "nativeSrc": "299:15:136", "nodeType": "YulAssignment", "src": "299:15:136", "value": { "name": "value", "nativeSrc": "309:5:136", "nodeType": "YulIdentifier", "src": "309:5:136" }, "variableNames": [ { "name": "value0", "nativeSrc": "299:6:136", "nodeType": "YulIdentifier", "src": "299:6:136" } ] }, { "nativeSrc": "323:40:136", "nodeType": "YulVariableDeclaration", "src": "323:40:136", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "348:9:136", "nodeType": "YulIdentifier", "src": "348:9:136" }, { "kind": "number", "nativeSrc": "359:2:136", "nodeType": "YulLiteral", "src": "359:2:136", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "344:3:136", "nodeType": "YulIdentifier", "src": "344:3:136" }, "nativeSrc": "344:18:136", "nodeType": "YulFunctionCall", "src": "344:18:136" } ], "functionName": { "name": "mload", "nativeSrc": "338:5:136", "nodeType": "YulIdentifier", "src": "338:5:136" }, "nativeSrc": "338:25:136", "nodeType": "YulFunctionCall", "src": "338:25:136" }, "variables": [ { "name": "value_1", "nativeSrc": "327:7:136", "nodeType": "YulTypedName", "src": "327:7:136", "type": "" } ] }, { "body": { "nativeSrc": "431:16:136", "nodeType": "YulBlock", "src": "431:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "440:1:136", "nodeType": "YulLiteral", "src": "440:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "443:1:136", "nodeType": "YulLiteral", "src": "443:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "433:6:136", "nodeType": "YulIdentifier", "src": "433:6:136" }, "nativeSrc": "433:12:136", "nodeType": "YulFunctionCall", "src": "433:12:136" }, "nativeSrc": "433:12:136", "nodeType": "YulExpressionStatement", "src": "433:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value_1", "nativeSrc": "385:7:136", "nodeType": "YulIdentifier", "src": "385:7:136" }, { "arguments": [ { "name": "value_1", "nativeSrc": "398:7:136", "nodeType": "YulIdentifier", "src": "398:7:136" }, { "arguments": [ { "kind": "number", "nativeSrc": "411:3:136", "nodeType": "YulLiteral", "src": "411:3:136", "type": "", "value": "224" }, { "kind": "number", "nativeSrc": "416:10:136", "nodeType": "YulLiteral", "src": "416:10:136", "type": "", "value": "0xffffffff" } ], "functionName": { "name": "shl", "nativeSrc": "407:3:136", "nodeType": "YulIdentifier", "src": "407:3:136" }, "nativeSrc": "407:20:136", "nodeType": "YulFunctionCall", "src": "407:20:136" } ], "functionName": { "name": "and", "nativeSrc": "394:3:136", "nodeType": "YulIdentifier", "src": "394:3:136" }, "nativeSrc": "394:34:136", "nodeType": "YulFunctionCall", "src": "394:34:136" } ], "functionName": { "name": "eq", "nativeSrc": "382:2:136", "nodeType": "YulIdentifier", "src": "382:2:136" }, "nativeSrc": "382:47:136", "nodeType": "YulFunctionCall", "src": "382:47:136" } ], "functionName": { "name": "iszero", "nativeSrc": "375:6:136", "nodeType": "YulIdentifier", "src": "375:6:136" }, "nativeSrc": "375:55:136", "nodeType": "YulFunctionCall", "src": "375:55:136" }, "nativeSrc": "372:75:136", "nodeType": "YulIf", "src": "372:75:136" }, { "nativeSrc": "456:17:136", "nodeType": "YulAssignment", "src": "456:17:136", "value": { "name": "value_1", "nativeSrc": "466:7:136", "nodeType": "YulIdentifier", "src": "466:7:136" }, "variableNames": [ { "name": "value1", "nativeSrc": "456:6:136", "nodeType": "YulIdentifier", "src": "456:6:136" } ] } ] }, "name": "abi_decode_tuple_t_addresst_bytes4_fromMemory", "nativeSrc": "14:465:136", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "69:9:136", "nodeType": "YulTypedName", "src": "69:9:136", "type": "" }, { "name": "dataEnd", "nativeSrc": "80:7:136", "nodeType": "YulTypedName", "src": "80:7:136", "type": "" } ], "returnVariables": [ { "name": "value0", "nativeSrc": "92:6:136", "nodeType": "YulTypedName", "src": "92:6:136", "type": "" }, { "name": "value1", "nativeSrc": "100:6:136", "nodeType": "YulTypedName", "src": "100:6:136", "type": "" } ], "src": "14:465:136" }, { "body": { "nativeSrc": "609:103:136", "nodeType": "YulBlock", "src": "609:103:136", "statements": [ { "nativeSrc": "619:26:136", "nodeType": "YulAssignment", "src": "619:26:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "631:9:136", "nodeType": "YulIdentifier", "src": "631:9:136" }, { "kind": "number", "nativeSrc": "642:2:136", "nodeType": "YulLiteral", "src": "642:2:136", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "627:3:136", "nodeType": "YulIdentifier", "src": "627:3:136" }, "nativeSrc": "627:18:136", "nodeType": "YulFunctionCall", "src": "627:18:136" }, "variableNames": [ { "name": "tail",