UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

801 lines 328 kB
{ "contractName": "WitnetDeployerCfxCore", "abi": [ { "inputs": [ { "internalType": "bytes", "name": "_initCode", "type": "bytes" }, { "internalType": "bytes32", "name": "_salt", "type": "bytes32" } ], "name": "deploy", "outputs": [ { "internalType": "address", "name": "_deployed", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_initCode", "type": "bytes" }, { "internalType": "bytes32", "name": "_salt", "type": "bytes32" } ], "name": "determineAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_salt", "type": "bytes32" } ], "name": "determineProxyAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_proxySalt", "type": "bytes32" }, { "internalType": "address", "name": "_firstImplementation", "type": "address" }, { "internalType": "bytes", "name": "_initData", "type": "bytes" } ], "name": "proxify", "outputs": [ { "internalType": "contract WitnetProxy", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_deployed\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"determineAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"determineProxyAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proxySalt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_firstImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initData\",\"type\":\"bytes\"}],\"name\":\"proxify\",\"outputs\":[{\"internalType\":\"contract WitnetProxy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Guillermo D\\u00edaz <guillermo@otherplane.com>\",\"kind\":\"dev\",\"methods\":{\"deploy(bytes,bytes32)\":{\"details\":\"The address of deployed address will be determined by both the `_initCode` and the `_salt`, but not the addressnor the nonce of the caller (i.e. see EIP-1014). \",\"params\":{\"_initCode\":\"Creation code, including construction logic and input parameters.\",\"_salt\":\"Arbitrary value to modify resulting address.\"},\"returns\":{\"_deployed\":\"Just deployed contract address.\"}},\"determineAddr(bytes,bytes32)\":{\"params\":{\"_initCode\":\"Creation code, including construction logic and input parameters.\",\"_salt\":\"Arbitrary value to modify resulting address.\"},\"returns\":{\"_0\":\"Deterministic contract address.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deploy(bytes,bytes32)\":{\"notice\":\"Use given `_initCode` and `_salt` to deploy a contract into a deterministic address. \"},\"determineAddr(bytes,bytes32)\":{\"notice\":\"Determine counter-factual address of the contract that would be deployed by the given `_initCode` and a `_salt`.\"}},\"notice\":\"WitnetDeployer contract used both as CREATE2 factory (EIP-1014) for Witnet artifacts, and CREATE3 factory (EIP-3171) for Witnet proxies, on the Conflux Core Ecosystem.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/customs/WitnetDeployerCfxCore.sol\":\"WitnetDeployerCfxCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"project:/contracts/core/WitnetProxy.sol\":{\"keccak256\":\"0x2b2f56fc69bf0e01f6f1062202d1682cd394fa3b3d9ff2f8f833ab51c9e866cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8017f76a71e4a52a5a5e249081c92510bac5b91f03f727e66ff4406238521337\",\"dweb:/ipfs/QmdWcPAL3MGtxGdpX5CMfgzz4YzxYEeCiFRoGHVCr8rLEL\"]},\"project:/contracts/core/customs/WitnetDeployerCfxCore.sol\":{\"keccak256\":\"0x09b841b59d1f5f1b04dd593766a7edc44cee5d1d7553e8bc243249bcc7049b1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0969356f8eb07272715fdd8eb01b0638722475209ef76c753dfc638e4fb656db\",\"dweb:/ipfs/QmaYq4JXjkErxAdakcAcwjbACdAwFL2DkmckWP7GsaLHFR\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]},\"project:/contracts/patterns/Proxiable.sol\":{\"keccak256\":\"0x86032205378fed9ed2bf155eed8ce4bdbb13b7f5960850c6d50954a38b61a3d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f89978eda4244a13f42a6092a94ac829bb3e38c92d77d4978b9f32894b187a63\",\"dweb:/ipfs/Qmbc1XaFCvLm3Sxvh7tP29Ug32jBGy3avsCqBGAptxs765\"]},\"project:/contracts/patterns/Upgradeable.sol\":{\"keccak256\":\"0xbeb025c71f037acb1a668174eb6930631bf397129beb825f2660e5d8cf19614f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6ce4dcd500093ae069d35b91829ccb471e1ca33ed0851fb053fbfe76c78aba\",\"dweb:/ipfs/QmT7huvCFS6bHDxt7HhEogJmyvYNbeb6dFTJudsVSX6nEs\"]}},\"version\":1}", "bytecode": "0x6080604052348015600f57600080fd5b50610f578061001f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634998f038146100515780634af63f02146100805780635ba489e714610093578063d3933c29146100a6575b600080fd5b61006461005f366004610336565b6100b9565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e3660046103f2565b6100ed565b6100646100a1366004610437565b61017e565b6100646100b43660046103f2565b6102be565b60006100e7604051806020016100ce90610329565b601f1982820381018352601f90910116604052836102be565b92915050565b60006100f983836102be565b9050806001600160a01b03163b6000036100e757818351602085016000f590506001600160a01b0381166100e75760405162461bcd60e51b815260206004820152602160248201527f5769746e65744465706c6f7965723a206465706c6f796d656e74206661696c656044820152601960fa1b60648201526084015b60405180910390fd5b60008061018a856100b9565b9050806001600160a01b03163b600003610265576101ca604051806020016101b190610329565b601f1982820381018352601f90910116604052866100ed565b50806001600160a01b0316636fbc15e98533866040516020016101ee92919061049c565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161021a92919061049c565b6020604051808303816000875af1158015610239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025d91906104fb565b5090506102b7565b60405162461bcd60e51b815260206004820152602160248201527f5769746e65744465706c6f7965723a20616c72656164792070726f78696669656044820152601960fa1b6064820152608401610175565b9392505050565b8151602092830120604080516001600160f81b0319818601523060601b6bffffffffffffffffffffffff191660218201526035810193909352605580840192909252805180840390920182526075909201909152805191012060016001609c1b03166001609f1b1790565b610a048061051e83390190565b60006020828403121561034857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261037657600080fd5b813567ffffffffffffffff808211156103915761039161034f565b604051601f8301601f19908116603f011681019082821181831017156103b9576103b961034f565b816040528381528660208588010111156103d257600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561040557600080fd5b823567ffffffffffffffff81111561041c57600080fd5b61042885828601610365565b95602094909401359450505050565b60008060006060848603121561044c57600080fd5b8335925060208401356001600160a01b038116811461046a57600080fd5b9150604084013567ffffffffffffffff81111561048657600080fd5b61049286828701610365565b9150509250925092565b60018060a01b03831681526000602060406020840152835180604085015260005b818110156104d9578581018301518582016060015282016104bd565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561050d57600080fd5b815180151581146102b757600080fdfe6080604052348015600f57600080fd5b506109e58061001f6000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100655780636fbc15e91461009757610034565b3661003457005b600061003e6100c7565b905060405136600082376000803683855af43d806000843e818015610061578184f35b8184fd5b34801561007157600080fd5b5061007a6100c7565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610791565b6100f5565b604051901515815260200161008e565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60006001600160a01b0383166101525760405162461bcd60e51b815260206004820181905260248201527f5769746e657450726f78793a206e756c6c20696d706c656d656e746174696f6e60448201526064015b60405180910390fd5b600061015c6100c7565b90506001600160a01b0381161561050857806001600160a01b0316846001600160a01b0316036101ce5760405162461bcd60e51b815260206004820152601f60248201527f5769746e657450726f78793a206e6f7468696e6720746f2075706772616465006044820152606401610149565b806001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610228575060408051601f3d908101601f1916820190925261022591810190610830565b60015b6102875760405162461bcd60e51b815260206004820152602a60248201527f5769746e657450726f78793a20756e61626c6520746f20636865636b207570676044820152697261646162696c69747960b01b6064820152608401610149565b806102d45760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f742075706772616461626c6500000000006044820152606401610149565b5060405133602482015260009081906001600160a01b0384169060440160408051601f198184030181529181526020820180516001600160e01b03166335ac4b0560e11b17905251610326919061087d565b600060405180830381855af49150503d8060008114610361576040519150601f19603f3d011682016040523d82523d6000602084013e610366565b606091505b5091509150816103885760405162461bcd60e51b815260040161014990610899565b8080602001905181019061039c9190610830565b6103e85760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f7420617574686f72697a656400000000006044820152606401610149565b856001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044a91906108e0565b836001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906108e0565b146105055760405162461bcd60e51b8152602060048201526024808201527f5769746e657450726f78793a2070726f786961626c655555494473206d69736d6044820152630c2e8c6d60e31b6064820152608401610149565b50505b600080856001600160a01b0316856040516024016105269190610925565b60408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b1790525161055b919061087d565b600060405180830381855af49150503d8060008114610596576040519150601f19603f3d011682016040523d82523d6000602084013e61059b565b606091505b509150915081610635576044815110156106025760405162461bcd60e51b815260206004820152602260248201527f5769746e657450726f78793a20696e697469616c697a6174696f6e206661696c604482015261195960f21b6064820152608401610149565b6004810190508080602001905181019061061c9190610938565b60405162461bcd60e51b81526004016101499190610925565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0388169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2856001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106f5575060408051601f3d908101601f191682019092526106f291810190610830565b60015b6107115760405162461bcd60e51b815260040161014990610899565b935061071c92505050565b92915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561076157610761610722565b604052919050565b600067ffffffffffffffff82111561078357610783610722565b50601f01601f191660200190565b600080604083850312156107a457600080fd5b82356001600160a01b03811681146107bb57600080fd5b9150602083013567ffffffffffffffff8111156107d757600080fd5b8301601f810185136107e857600080fd5b80356107fb6107f682610769565b610738565b81815286602083850101111561081057600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561084257600080fd5b8151801515811461085257600080fd5b9392505050565b60005b8381101561087457818101518382015260200161085c565b50506000910152565b6000825161088f818460208701610859565b9190910192915050565b60208082526027908201527f5769746e657450726f78793a20756e636f6d706c69616e7420696d706c656d65604082015266373a30ba34b7b760c91b606082015260800190565b6000602082840312156108f257600080fd5b5051919050565b60008151808452610911816020860160208601610859565b601f01601f19169290920160200192915050565b60208152600061085260208301846108f9565b60006020828403121561094a57600080fd5b815167ffffffffffffffff81111561096157600080fd5b8201601f8101841361097257600080fd5b80516109806107f682610769565b81815285602083850101111561099557600080fd5b6109a6826020830160208601610859565b9594505050505056fea2646970667358221220ba4d61ba6dc6b10826f1b2f21a7fb1965aee5031bae62952c0d5d7b7c16674ab64736f6c63430008190033a264697066735822122094e8ea9287b63332d74cbe79a8fd11a1b1a02329f5d17ff01c0b23b91a7e456964736f6c63430008190033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80634998f038146100515780634af63f02146100805780635ba489e714610093578063d3933c29146100a6575b600080fd5b61006461005f366004610336565b6100b9565b6040516001600160a01b03909116815260200160405180910390f35b61006461008e3660046103f2565b6100ed565b6100646100a1366004610437565b61017e565b6100646100b43660046103f2565b6102be565b60006100e7604051806020016100ce90610329565b601f1982820381018352601f90910116604052836102be565b92915050565b60006100f983836102be565b9050806001600160a01b03163b6000036100e757818351602085016000f590506001600160a01b0381166100e75760405162461bcd60e51b815260206004820152602160248201527f5769746e65744465706c6f7965723a206465706c6f796d656e74206661696c656044820152601960fa1b60648201526084015b60405180910390fd5b60008061018a856100b9565b9050806001600160a01b03163b600003610265576101ca604051806020016101b190610329565b601f1982820381018352601f90910116604052866100ed565b50806001600160a01b0316636fbc15e98533866040516020016101ee92919061049c565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161021a92919061049c565b6020604051808303816000875af1158015610239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025d91906104fb565b5090506102b7565b60405162461bcd60e51b815260206004820152602160248201527f5769746e65744465706c6f7965723a20616c72656164792070726f78696669656044820152601960fa1b6064820152608401610175565b9392505050565b8151602092830120604080516001600160f81b0319818601523060601b6bffffffffffffffffffffffff191660218201526035810193909352605580840192909252805180840390920182526075909201909152805191012060016001609c1b03166001609f1b1790565b610a048061051e83390190565b60006020828403121561034857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261037657600080fd5b813567ffffffffffffffff808211156103915761039161034f565b604051601f8301601f19908116603f011681019082821181831017156103b9576103b961034f565b816040528381528660208588010111156103d257600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561040557600080fd5b823567ffffffffffffffff81111561041c57600080fd5b61042885828601610365565b95602094909401359450505050565b60008060006060848603121561044c57600080fd5b8335925060208401356001600160a01b038116811461046a57600080fd5b9150604084013567ffffffffffffffff81111561048657600080fd5b61049286828701610365565b9150509250925092565b60018060a01b03831681526000602060406020840152835180604085015260005b818110156104d9578581018301518582016060015282016104bd565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561050d57600080fd5b815180151581146102b757600080fdfe6080604052348015600f57600080fd5b506109e58061001f6000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100655780636fbc15e91461009757610034565b3661003457005b600061003e6100c7565b905060405136600082376000803683855af43d806000843e818015610061578184f35b8184fd5b34801561007157600080fd5b5061007a6100c7565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610791565b6100f5565b604051901515815260200161008e565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60006001600160a01b0383166101525760405162461bcd60e51b815260206004820181905260248201527f5769746e657450726f78793a206e756c6c20696d706c656d656e746174696f6e60448201526064015b60405180910390fd5b600061015c6100c7565b90506001600160a01b0381161561050857806001600160a01b0316846001600160a01b0316036101ce5760405162461bcd60e51b815260206004820152601f60248201527f5769746e657450726f78793a206e6f7468696e6720746f2075706772616465006044820152606401610149565b806001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610228575060408051601f3d908101601f1916820190925261022591810190610830565b60015b6102875760405162461bcd60e51b815260206004820152602a60248201527f5769746e657450726f78793a20756e61626c6520746f20636865636b207570676044820152697261646162696c69747960b01b6064820152608401610149565b806102d45760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f742075706772616461626c6500000000006044820152606401610149565b5060405133602482015260009081906001600160a01b0384169060440160408051601f198184030181529181526020820180516001600160e01b03166335ac4b0560e11b17905251610326919061087d565b600060405180830381855af49150503d8060008114610361576040519150601f19603f3d011682016040523d82523d6000602084013e610366565b606091505b5091509150816103885760405162461bcd60e51b815260040161014990610899565b8080602001905181019061039c9190610830565b6103e85760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f7420617574686f72697a656400000000006044820152606401610149565b856001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044a91906108e0565b836001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906108e0565b146105055760405162461bcd60e51b8152602060048201526024808201527f5769746e657450726f78793a2070726f786961626c655555494473206d69736d6044820152630c2e8c6d60e31b6064820152608401610149565b50505b600080856001600160a01b0316856040516024016105269190610925565b60408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b1790525161055b919061087d565b600060405180830381855af49150503d8060008114610596576040519150601f19603f3d011682016040523d82523d6000602084013e61059b565b606091505b509150915081610635576044815110156106025760405162461bcd60e51b815260206004820152602260248201527f5769746e657450726f78793a20696e697469616c697a6174696f6e206661696c604482015261195960f21b6064820152608401610149565b6004810190508080602001905181019061061c9190610938565b60405162461bcd60e51b81526004016101499190610925565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0388169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2856001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156106f5575060408051601f3d908101601f191682019092526106f291810190610830565b60015b6107115760405162461bcd60e51b815260040161014990610899565b935061071c92505050565b92915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561076157610761610722565b604052919050565b600067ffffffffffffffff82111561078357610783610722565b50601f01601f191660200190565b600080604083850312156107a457600080fd5b82356001600160a01b03811681146107bb57600080fd5b9150602083013567ffffffffffffffff8111156107d757600080fd5b8301601f810185136107e857600080fd5b80356107fb6107f682610769565b610738565b81815286602083850101111561081057600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561084257600080fd5b8151801515811461085257600080fd5b9392505050565b60005b8381101561087457818101518382015260200161085c565b50506000910152565b6000825161088f818460208701610859565b9190910192915050565b60208082526027908201527f5769746e657450726f78793a20756e636f6d706c69616e7420696d706c656d65604082015266373a30ba34b7b760c91b606082015260800190565b6000602082840312156108f257600080fd5b5051919050565b60008151808452610911816020860160208601610859565b601f01601f19169290920160200192915050565b60208152600061085260208301846108f9565b60006020828403121561094a57600080fd5b815167ffffffffffffffff81111561096157600080fd5b8201601f8101841361097257600080fd5b80516109806107f682610769565b81815285602083850101111561099557600080fd5b6109a6826020830160208601610859565b9594505050505056fea2646970667358221220ba4d61ba6dc6b10826f1b2f21a7fb1965aee5031bae62952c0d5d7b7c16674ab64736f6c63430008190033a264697066735822122094e8ea9287b63332d74cbe79a8fd11a1b1a02329f5d17ff01c0b23b91a7e456964736f6c63430008190033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nativeSrc": "0:4635:84", "nodeType": "YulBlock", "src": "0:4635:84", "statements": [ { "nativeSrc": "6:3:84", "nodeType": "YulBlock", "src": "6:3:84", "statements": [] }, { "body": { "nativeSrc": "84:110:84", "nodeType": "YulBlock", "src": "84:110:84", "statements": [ { "body": { "nativeSrc": "130:16:84", "nodeType": "YulBlock", "src": "130:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "139:1:84", "nodeType": "YulLiteral", "src": "139:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "142:1:84", "nodeType": "YulLiteral", "src": "142:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "132:6:84", "nodeType": "YulIdentifier", "src": "132:6:84" }, "nativeSrc": "132:12:84", "nodeType": "YulFunctionCall", "src": "132:12:84" }, "nativeSrc": "132:12:84", "nodeType": "YulExpressionStatement", "src": "132:12:84" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "105:7:84", "nodeType": "YulIdentifier", "src": "105:7:84" }, { "name": "headStart", "nativeSrc": "114:9:84", "nodeType": "YulIdentifier", "src": "114:9:84" } ], "functionName": { "name": "sub", "nativeSrc": "101:3:84", "nodeType": "YulIdentifier", "src": "101:3:84" }, "nativeSrc": "101:23:84", "nodeType": "YulFunctionCall", "src": "101:23:84" }, { "kind": "number", "nativeSrc": "126:2:84", "nodeType": "YulLiteral", "src": "126:2:84", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nativeSrc": "97:3:84", "nodeType": "YulIdentifier", "src": "97:3:84" }, "nativeSrc": "97:32:84", "nodeType": "YulFunctionCall", "src": "97:32:84" }, "nativeSrc": "94:52:84", "nodeType": "YulIf", "src": "94:52:84" }, { "nativeSrc": "155:33:84", "nodeType": "YulAssignment", "src": "155:33:84", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "178:9:84", "nodeType": "YulIdentifier", "src": "178:9:84" } ], "functionName": { "name": "calldataload", "nativeSrc": "165:12:84", "nodeType": "YulIdentifier", "src": "165:12:84" }, "nativeSrc": "165:23:84", "nodeType": "YulFunctionCall", "src": "165:23:84" }, "variableNames": [ { "name": "value0", "nativeSrc": "155:6:84", "nodeType": "YulIdentifier", "src": "155:6:84" } ] } ] }, "name": "abi_decode_tuple_t_bytes32", "nativeSrc": "14:180:84", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "50:9:84", "nodeType": "YulTypedName", "src": "50:9:84", "type": "" }, { "name": "dataEnd", "nativeSrc": "61:7:84", "nodeType": "YulTypedName", "src": "61:7:84", "type": "" } ], "returnVariables": [ { "name": "value0", "nativeSrc": "73:6:84", "nodeType": "YulTypedName", "src": "73:6:84", "type": "" } ], "src": "14:180:84" }, { "body": { "nativeSrc": "300:102:84", "nodeType": "YulBlock", "src": "300:102:84", "statements": [ { "nativeSrc": "310:26:84", "nodeType": "YulAssignment", "src": "310:26:84", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "322:9:84", "nodeType": "YulIdentifier", "src": "322:9:84" }, { "kind": "number", "nativeSrc": "333:2:84", "nodeType": "YulLiteral", "src": "333:2:84", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "318:3:84", "nodeType": "YulIdentifier", "src": "318:3:84" }, "nativeSrc": "318:18:84", "nodeType": "YulFunctionCall", "src": "318:18:84" }, "variableNames": [ { "name": "tail", "nativeSrc": "310:4:84", "nodeType": "YulIdentifier", "src": "310:4:84" } ] }, { "expression": { "arguments": [ { "name": "headStart", "nativeSrc": "352:9:84", "nodeType": "YulIdentifier", "src": "352:9:84" }, { "arguments": [ { "name": "value0", "nativeSrc": "367:6:84", "nodeType": "YulIdentifier", "src": "367:6:84" }, { "arguments": [ { "arguments": [ { "kind": "number", "nativeSrc": "383:3:84", "nodeType": "YulLiteral", "src": "383:3:84", "type": "", "value": "160" }, { "kind": "number", "nativeSrc": "388:1:84", "nodeType": "YulLiteral", "src": "388:1:84", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nativeSrc": "379:3:84", "nodeType": "YulIdentifier", "src": "379:3:84" }, "nativeSrc": "379:11:84", "nodeType": "YulFunctionCall", "src": "379:11:84" }, { "kind": "number", "nativeSrc": "392:1:84", "nodeType": "YulLiteral", "src": "392:1:84", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nativeSrc": "375:3:84", "nodeType": "YulIdentifier", "src": "375:3:84" }, "nativeSrc": "375:19:84", "nodeType": "YulFunctionCall", "src": "375:19:84" } ], "functionName": { "name": "and", "nativeSrc": "363:3:84", "nodeType": "YulIdentifier", "src": "363:3:84" }, "nativeSrc": "363:32:84", "nodeType": "YulFunctionCall", "src": "363:32:84" } ], "functionName": { "name": "mstore", "nativeSrc": "345:6:84", "nodeType": "YulIdentifier", "src": "345:6:84" }, "nativeSrc": "345:51:84", "nodeType": "YulFunctionCall", "src": "345:51:84" }, "nativeSrc": "345:51:84", "nodeType": "YulExpressionStatement", "src": "345:51:84" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nativeSrc": "199:203:84", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "269:9:84", "nodeType": "YulTypedName", "src": "269:9:84", "type": "" }, { "name": "value0", "nativeSrc": "280:6:84", "nodeType": "YulTypedName", "src": "280:6:84", "type": "" } ], "returnVariables": [ { "name": "tail", "nativeSrc": "291:4:84", "nodeType": "YulTypedName", "src": "291:4:84", "type": "" } ], "src": "199:203:84" }, { "body": { "nativeSrc": "439:95:84", "nodeType": "YulBlock", "src": "439:95:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "456:1:84", "nodeType": "YulLiteral", "src": "456:1:84", "type": "", "value": "0" }, { "arguments": [ { "kind": "number", "nativeSrc": "463:3:84", "nodeType": "YulLiteral", "src": "463:3:84", "type": "", "value": "224" }, { "kind": "number", "nativeSrc": "468:10:84", "nodeType": "YulLiteral", "src": "468:10:84", "type": "", "value": "0x4e487b71" } ], "functionName": { "name": "shl", "nativeSrc": "459:3:84", "nodeType": "YulIdentifier", "src": "459:3:84" }, "nativeSrc": "459:20:84", "nodeType": "YulFunctionCall", "src": "459:20:84" } ], "functionName": { "name": "mstore", "nativeSrc": "449:6:84", "nodeType": "YulIdentifier", "src": "449:6:84" }, "nativeSrc": "449:31:84", "nodeType": "YulFunctionCall", "src": "449:31:84" }, "nativeSrc": "449:31:84", "nodeType": "YulExpressionStatement", "src": "449:31:84" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "496:1:84", "nodeType": "YulLiteral", "src": "496:1:84", "type": "", "value": "4" }, { "kind": "number", "nativeSrc": "499:4:84", "nodeType": "YulLiteral", "src": "499:4:84", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nativeSrc": "489:6:84", "nodeType": "YulIdentifier", "src": "489:6:84" }, "nativeSrc": "489:15:84", "nodeType": "YulFunctionCall", "src": "489:15:84" }, "nativeSrc": "489:15:84", "nodeType": "YulExpressionStatement", "src": "489:15:84" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "520:1:84", "nodeType": "YulLiteral", "src": "520:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "523:4:84", "nodeType": "YulLiteral", "src": "523:4:84", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nativeSrc": "513:6:84", "nodeType": "YulIdentifier", "src": "513:6:84" }, "nativeSrc": "513:15:84", "nodeType": "YulFunctionCall", "src": "513:15:84" }, "nativeSrc": "513:15:84", "nodeType": "YulExpressionStatement", "src": "513:15:84" } ] }, "name": "panic_error_0x41", "nativeSrc": "407:127:84", "nodeType": "YulFunctionDefinition", "src": "407:127:84" }, { "body": { "nativeSrc": "591:666:84", "nodeType": "YulBlock", "src": "591:666:84", "statements": [ { "body": { "nativeSrc": "640:16:84", "nodeType": "YulBlock", "src": "640:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "649:1:84", "nodeType": "YulLiteral", "src": "649:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "652:1:84", "nodeType": "YulLiteral", "src": "652:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "642:6:84", "nodeType": "YulIdentifier", "src": "642:6:84" }, "nativeSrc": "642:12:84", "nodeType": "YulFunctionCall", "src": "642:12:84" }, "nativeSrc": "642:12:84", "nodeType": "YulExpressionStatement", "src": "642:12:84" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nativeSrc": "619:6:84", "nodeType": "YulIdentifier", "src": "619:6:84" }, { "kind": "number", "nativeSrc": "627:4:84", "nodeType": "YulLiteral", "src": "627:4:84", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nativeSrc": "615:3:84", "nodeType": "YulIdentifier", "src": "615:3:84" }, "nativeSrc": "615:17:84", "nodeType": "YulFunctionCall", "src": "615:17:84" }, { "name": "end", "nativeSrc": "634:3:84", "nodeType": "YulIdentifier", "src": "634:3:84" } ], "functionName": { "name": "slt", "nativeSrc": "611:3:84", "nodeType": "YulIdentifier", "src": "611:3:84" }, "nativeSrc": "611:27:84", "nodeType": "YulFunctionCall", "src": "611:27:84" } ], "functionName": { "name": "iszero", "nativeSrc": "604:6:84", "nodeType": "YulIdentifier", "src": "604:6:84" }, "nativeSrc": "604:35:84", "nodeType": "YulFunctionCall", "src": "604:35:84" }, "nativeSrc": "601:55:84", "nodeType": "YulIf", "src": "601:55:84" }, { "nativeSrc": "665:30:84", "nodeType": "YulVariableDeclaration", "src": "665:30:84", "value": { "arguments": [ { "name": "offset", "nativeSrc": "688:6:84", "nodeType": "YulIdentifier", "src": "688:6:84" } ], "functionName": { "name": "calldataload", "nativeSrc": "675:12:84", "nodeType": "YulIdentifier", "src": "675:12:84" }, "nativeSrc": "675:20:84", "nodeType": "YulFunctionCall", "src": "675:20:84" }, "variables": [ { "name": "_1", "nativeSrc": "669:2:84", "nodeType": "YulTypedName", "src": "669:2:84", "type": "" } ] }, { "nativeSrc": "704:28:84", "nodeType": "YulVariableDeclaration", "src": "704:28:84", "value": { "kind": "number", "nativeSrc": "714:18:84", "nodeType": "YulLiteral", "src": "714:18:84", "type": "", "value": "0xffffffffffffffff" }, "variables": [ { "name": "_2", "nativeSrc": "708:2:84", "nodeType": "YulTypedName", "src": "708:2:84", "type": "" } ] }, { "body": { "nativeSrc": "755:22:84", "nodeType": "YulBlock", "src": "755:22:84", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nativeSrc": "757:16:84", "nodeType": "YulIdentifier", "src": "757:16:84" }, "nativeSrc": "757:18:84", "nodeType": "YulFunctionCall", "src": "757:18:84" }, "nativeSrc": "757:18:84", "nodeType": "YulExpressionStatement", "src": "757:18:84" } ] }, "condition": { "arguments": [ { "name": "_1", "nativeSrc": "747:2:84", "nodeType": "YulIdentifier", "src": "747:2:84" }, { "name": "_2", "nativeSrc": "751:2:84", "nodeType": "YulIdentifier", "src": "751:2:84" } ], "functionName": { "name": "gt", "nativeSrc": "744:2:84", "nodeType": "YulIdentifier", "src": "744:2:84" }, "nativeSrc": "744:10:84", "node