witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
916 lines (915 loc) • 469 kB
JSON
{
"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",