@aetherswap/v1-periphery
Version:
🔮 Peripheral smart contracts for interacting with Aetherswap V1
323 lines (322 loc) • 18.1 kB
JSON
{
"_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": {}
}