UNPKG

@aetherswap/v1-periphery

Version:

🔮 Peripheral smart contracts for interacting with Aetherswap V1

323 lines (322 loc) • 18.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "Multicall2", "sourceName": "contracts/Multicall2.sol", "abi": [ { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall2.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "aggregate", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "bytes[]", "name": "returnData", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall2.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "blockAndAggregate", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" }, { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall2.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getBlockHash", "outputs": [ { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBlockNumber", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockCoinbase", "outputs": [ { "internalType": "address", "name": "coinbase", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockDifficulty", "outputs": [ { "internalType": "uint256", "name": "difficulty", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockGasLimit", "outputs": [ { "internalType": "uint256", "name": "gaslimit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBlockTimestamp", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getEthBalance", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastBlockHash", "outputs": [ { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "requireSuccess", "type": "bool" }, { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall2.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "tryAggregate", "outputs": [ { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall2.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "requireSuccess", "type": "bool" }, { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "callData", "type": "bytes" } ], "internalType": "struct Multicall2.Call[]", "name": "calls", "type": "tuple[]" } ], "name": "tryBlockAndAggregate", "outputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "bytes32", "name": "blockHash", "type": "bytes32" }, { "components": [ { "internalType": "bool", "name": "success", "type": "bool" }, { "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "internalType": "struct Multicall2.Result[]", "name": "returnData", "type": "tuple[]" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50610a81806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806372425d9d11610081578063bce38bd71161005b578063bce38bd714610182578063c3077fa9146101a2578063ee82ac5e146101b5576100d4565b806372425d9d1461015d57806386d516e814610165578063a8b0574e1461016d576100d4565b8063399542e9116100b2578063399542e91461012057806342cbb15c146101425780634d2301cc1461014a576100d4565b80630f28c97d146100d9578063252dba42146100f757806327e86d6e14610118575b600080fd5b6100e16101c8565b6040516100ee91906108ab565b60405180910390f35b61010a610105366004610702565b6101cc565b6040516100ee929190610946565b6100e1610332565b61013361012e36600461073d565b610359565b6040516100ee939291906109cc565b6100e1610371565b6100e16101583660046106e0565b610375565b6100e161038f565b6100e1610393565b610175610397565b6040516100ee9190610877565b61019561019036600461073d565b61039b565b6040516100ee9190610898565b6101336101b0366004610702565b610518565b6100e16101c336600461078f565b610535565b4290565b8051439060609067ffffffffffffffff811180156101e957600080fd5b5060405190808252806020026020018201604052801561021d57816020015b60608152602001906001900390816102085790505b50905060005b835181101561032c576000606085838151811061023c57fe5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061026a57fe5b602002602001015160200151604051610283919061085b565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50915091508161030a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030190610911565b60405180910390fd5b8084848151811061031757fe5b60209081029190910101525050600101610223565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43014090565b4380406060610368858561039b565b90509250925092565b4390565b73ffffffffffffffffffffffffffffffffffffffff163190565b4490565b4590565b4190565b6060815167ffffffffffffffff811180156103b557600080fd5b506040519080825280602002602001820160405280156103ef57816020015b6103dc610539565b8152602001906001900390816103d45790505b50905060005b8251811015610511576000606084838151811061040e57fe5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685848151811061043c57fe5b602002602001015160200151604051610455919061085b565b6000604051808303816000865af19150503d8060008114610492576040519150601f19603f3d011682016040523d82523d6000602084013e610497565b606091505b509150915085156104d957816104d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610301906108b4565b60405180604001604052808315158152602001828152508484815181106104fc57fe5b602090810291909101015250506001016103f5565b5092915050565b6000806060610528600185610359565b9196909550909350915050565b4090565b60408051808201909152600081526060602082015290565b803573ffffffffffffffffffffffffffffffffffffffff8116811461057557600080fd5b92915050565b600082601f83011261058b578081fd5b813567ffffffffffffffff808211156105a2578283fd5b60206105b181828502016109f4565b838152935080840185820160005b8581101561064d57813588016040807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838d030112156105fe57600080fd5b610607816109f4565b6106138c888501610551565b8152818301358881111561062657600080fd5b6106348d8983870101610659565b82890152508552505091830191908301906001016105bf565b50505050505092915050565b600082601f830112610669578081fd5b813567ffffffffffffffff81111561067f578182fd5b6106b060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016109f4565b91508082528360208285010111156106c757600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156106f1578081fd5b6106fb8383610551565b9392505050565b600060208284031215610713578081fd5b813567ffffffffffffffff811115610729578182fd5b6107358482850161057b565b949350505050565b6000806040838503121561074f578081fd5b8235801515811461075e578182fd5b9150602083013567ffffffffffffffff811115610779578182fd5b6107858582860161057b565b9150509250929050565b6000602082840312156107a0578081fd5b5035919050565b6000815180845260208085018081965082840281019150828601855b85811015610804578284038952815160408151151586528682015181888801526107ef82880182610811565b9b88019b9650505091850191506001016107c3565b5091979650505050505050565b60008151808452610829816020860160208601610a1b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000825161086d818460208701610a1b565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602082526106fb60208301846107a7565b90815260200190565b60208082526021908201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560408201527f6400000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c6564604082015260600190565b600060408201848352602060408185015281855180845260608601915060608382028701019350828701855b828110156109be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526109ac868351610811565b95509284019290840190600101610972565b509398975050505050505050565b6000848252836020830152606060408301526109eb60608301846107a7565b95945050505050565b60405181810167ffffffffffffffff81118282101715610a1357600080fd5b604052919050565b60005b83811015610a36578181015183820152602001610a1e565b83811115610a45576000848401525b5050505056fea26469706673582212207a5ffafacdbf7130442165b3de2cb06ce564e8957279f381f1aa267f7c8e7d1f64736f6c63430006060033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c806372425d9d11610081578063bce38bd71161005b578063bce38bd714610182578063c3077fa9146101a2578063ee82ac5e146101b5576100d4565b806372425d9d1461015d57806386d516e814610165578063a8b0574e1461016d576100d4565b8063399542e9116100b2578063399542e91461012057806342cbb15c146101425780634d2301cc1461014a576100d4565b80630f28c97d146100d9578063252dba42146100f757806327e86d6e14610118575b600080fd5b6100e16101c8565b6040516100ee91906108ab565b60405180910390f35b61010a610105366004610702565b6101cc565b6040516100ee929190610946565b6100e1610332565b61013361012e36600461073d565b610359565b6040516100ee939291906109cc565b6100e1610371565b6100e16101583660046106e0565b610375565b6100e161038f565b6100e1610393565b610175610397565b6040516100ee9190610877565b61019561019036600461073d565b61039b565b6040516100ee9190610898565b6101336101b0366004610702565b610518565b6100e16101c336600461078f565b610535565b4290565b8051439060609067ffffffffffffffff811180156101e957600080fd5b5060405190808252806020026020018201604052801561021d57816020015b60608152602001906001900390816102085790505b50905060005b835181101561032c576000606085838151811061023c57fe5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1686848151811061026a57fe5b602002602001015160200151604051610283919061085b565b6000604051808303816000865af19150503d80600081146102c0576040519150601f19603f3d011682016040523d82523d6000602084013e6102c5565b606091505b50915091508161030a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030190610911565b60405180910390fd5b8084848151811061031757fe5b60209081029190910101525050600101610223565b50915091565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43014090565b4380406060610368858561039b565b90509250925092565b4390565b73ffffffffffffffffffffffffffffffffffffffff163190565b4490565b4590565b4190565b6060815167ffffffffffffffff811180156103b557600080fd5b506040519080825280602002602001820160405280156103ef57816020015b6103dc610539565b8152602001906001900390816103d45790505b50905060005b8251811015610511576000606084838151811061040e57fe5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1685848151811061043c57fe5b602002602001015160200151604051610455919061085b565b6000604051808303816000865af19150503d8060008114610492576040519150601f19603f3d011682016040523d82523d6000602084013e610497565b606091505b509150915085156104d957816104d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610301906108b4565b60405180604001604052808315158152602001828152508484815181106104fc57fe5b602090810291909101015250506001016103f5565b5092915050565b6000806060610528600185610359565b9196909550909350915050565b4090565b60408051808201909152600081526060602082015290565b803573ffffffffffffffffffffffffffffffffffffffff8116811461057557600080fd5b92915050565b600082601f83011261058b578081fd5b813567ffffffffffffffff808211156105a2578283fd5b60206105b181828502016109f4565b838152935080840185820160005b8581101561064d57813588016040807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838d030112156105fe57600080fd5b610607816109f4565b6106138c888501610551565b8152818301358881111561062657600080fd5b6106348d8983870101610659565b82890152508552505091830191908301906001016105bf565b50505050505092915050565b600082601f830112610669578081fd5b813567ffffffffffffffff81111561067f578182fd5b6106b060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016109f4565b91508082528360208285010111156106c757600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156106f1578081fd5b6106fb8383610551565b9392505050565b600060208284031215610713578081fd5b813567ffffffffffffffff811115610729578182fd5b6107358482850161057b565b949350505050565b6000806040838503121561074f578081fd5b8235801515811461075e578182fd5b9150602083013567ffffffffffffffff811115610779578182fd5b6107858582860161057b565b9150509250929050565b6000602082840312156107a0578081fd5b5035919050565b6000815180845260208085018081965082840281019150828601855b85811015610804578284038952815160408151151586528682015181888801526107ef82880182610811565b9b88019b9650505091850191506001016107c3565b5091979650505050505050565b60008151808452610829816020860160208601610a1b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000825161086d818460208701610a1b565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602082526106fb60208301846107a7565b90815260200190565b60208082526021908201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c6560408201527f6400000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c6564604082015260600190565b600060408201848352602060408185015281855180845260608601915060608382028701019350828701855b828110156109be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030184526109ac868351610811565b95509284019290840190600101610972565b509398975050505050505050565b6000848252836020830152606060408301526109eb60608301846107a7565b95945050505050565b60405181810167ffffffffffffffff81118282101715610a1357600080fd5b604052919050565b60005b83811015610a36578181015183820152602001610a1e565b83811115610a45576000848401525b5050505056fea26469706673582212207a5ffafacdbf7130442165b3de2cb06ce564e8957279f381f1aa267f7c8e7d1f64736f6c63430006060033", "linkReferences": {}, "deployedLinkReferences": {} }