@bitriel/bitriel-farm
Version:
Yield Farming Smart Contracts for BitrielSwap Protocol
323 lines (322 loc) • 16.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "Multicall2",
"sourceName": "contracts/utils/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": "0x608060405234801561001057600080fd5b5061091e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806372425d9d1161007157806372425d9d1461013d57806386d516e814610145578063a8b0574e1461014d578063bce38bd714610162578063c3077fa914610182578063ee82ac5e14610195576100b4565b80630f28c97d146100b9578063252dba42146100d757806327e86d6e146100f8578063399542e91461010057806342cbb15c146101225780634d2301cc1461012a575b600080fd5b6100c16101a8565b6040516100ce9190610785565b60405180910390f35b6100ea6100e5366004610605565b6101ac565b6040516100ce929190610804565b6100c16102ea565b61011361010e366004610640565b6102f3565b6040516100ce9392919061086c565b6100c161030b565b6100c16101383660046105e4565b61030f565b6100c161031c565b6100c1610320565b610155610324565b6040516100ce919061075e565b610175610170366004610640565b610328565b6040516100ce9190610772565b610113610190366004610605565b61047d565b6100c16101a3366004610692565b61049a565b4290565b8051439060609067ffffffffffffffff811180156101c957600080fd5b506040519080825280602002602001820160405280156101fd57816020015b60608152602001906001900390816101e85790505b50905060005b83518110156102e45760008085838151811061021b57fe5b6020026020010151600001516001600160a01b031686848151811061023c57fe5b6020026020010151602001516040516102559190610742565b6000604051808303816000865af19150503d8060008114610292576040519150601f19603f3d011682016040523d82523d6000602084013e610297565b606091505b5091509150816102c25760405162461bcd60e51b81526004016102b9906107cf565b60405180910390fd5b808484815181106102cf57fe5b60209081029190910101525050600101610203565b50915091565b60001943014090565b43804060606103028585610328565b90509250925092565b4390565b6001600160a01b03163190565b4490565b4590565b4190565b6060815167ffffffffffffffff8111801561034257600080fd5b5060405190808252806020026020018201604052801561037c57816020015b61036961049e565b8152602001906001900390816103615790505b50905060005b82518110156104765760008084838151811061039a57fe5b6020026020010151600001516001600160a01b03168584815181106103bb57fe5b6020026020010151602001516040516103d49190610742565b6000604051808303816000865af19150503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b5091509150851561043e578161043e5760405162461bcd60e51b81526004016102b99061078e565b604051806040016040528083151581526020018281525084848151811061046157fe5b60209081029190910101525050600101610382565b5092915050565b600080606061048d6001856102f3565b9196909550909350915050565b4090565b60408051808201909152600081526060602082015290565b80356001600160a01b03811681146104cd57600080fd5b919050565b600082601f8301126104e2578081fd5b8135602067ffffffffffffffff808311156104f957fe5b6105068283850201610894565b83815282810190868401865b868110156105d657813589016040601f198181848f03011215610533578a8bfd5b81518281018181108a8211171561054657fe5b8352610553848b016104b6565b81528284013589811115610565578c8dfd5b8085019450508d603f850112610579578b8cfd5b898401358981111561058757fe5b6105978b84601f84011601610894565b92508083528e848287010111156105ac578c8dfd5b808486018c85013782018a018c9052808a0191909152865250509285019290850190600101610512565b509098975050505050505050565b6000602082840312156105f5578081fd5b6105fe826104b6565b9392505050565b600060208284031215610616578081fd5b813567ffffffffffffffff81111561062c578182fd5b610638848285016104d2565b949350505050565b60008060408385031215610652578081fd5b82358015158114610661578182fd5b9150602083013567ffffffffffffffff81111561067c578182fd5b610688858286016104d2565b9150509250929050565b6000602082840312156106a3578081fd5b5035919050565b60008282518085526020808601955080818302840101818601855b8481101561070957858303601f19018952815180511515845284015160408585018190526106f581860183610716565b9a86019a94505050908301906001016106c5565b5090979650505050505050565b6000815180845261072e8160208601602086016108b8565b601f01601f19169290920160200192915050565b600082516107548184602087016108b8565b9190910192915050565b6001600160a01b0391909116815260200190565b6000602082526105fe60208301846106aa565b90815260200190565b60208082526021908201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c656040820152601960fa1b606082015260800190565b6020808252818101527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c6564604082015260600190565b600060408201848352602060408185015281855180845260608601915060608382028701019350828701855b8281101561085e57605f1988870301845261084c868351610716565b95509284019290840190600101610830565b509398975050505050505050565b60008482528360208301526060604083015261088b60608301846106aa565b95945050505050565b60405181810167ffffffffffffffff811182821017156108b057fe5b604052919050565b60005b838110156108d35781810151838201526020016108bb565b838111156108e2576000848401525b5050505056fea2646970667358221220d3658baf8ca81182ce5c5ed03631257ac86e473dca7d5fc00b839f6682167a7564736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806372425d9d1161007157806372425d9d1461013d57806386d516e814610145578063a8b0574e1461014d578063bce38bd714610162578063c3077fa914610182578063ee82ac5e14610195576100b4565b80630f28c97d146100b9578063252dba42146100d757806327e86d6e146100f8578063399542e91461010057806342cbb15c146101225780634d2301cc1461012a575b600080fd5b6100c16101a8565b6040516100ce9190610785565b60405180910390f35b6100ea6100e5366004610605565b6101ac565b6040516100ce929190610804565b6100c16102ea565b61011361010e366004610640565b6102f3565b6040516100ce9392919061086c565b6100c161030b565b6100c16101383660046105e4565b61030f565b6100c161031c565b6100c1610320565b610155610324565b6040516100ce919061075e565b610175610170366004610640565b610328565b6040516100ce9190610772565b610113610190366004610605565b61047d565b6100c16101a3366004610692565b61049a565b4290565b8051439060609067ffffffffffffffff811180156101c957600080fd5b506040519080825280602002602001820160405280156101fd57816020015b60608152602001906001900390816101e85790505b50905060005b83518110156102e45760008085838151811061021b57fe5b6020026020010151600001516001600160a01b031686848151811061023c57fe5b6020026020010151602001516040516102559190610742565b6000604051808303816000865af19150503d8060008114610292576040519150601f19603f3d011682016040523d82523d6000602084013e610297565b606091505b5091509150816102c25760405162461bcd60e51b81526004016102b9906107cf565b60405180910390fd5b808484815181106102cf57fe5b60209081029190910101525050600101610203565b50915091565b60001943014090565b43804060606103028585610328565b90509250925092565b4390565b6001600160a01b03163190565b4490565b4590565b4190565b6060815167ffffffffffffffff8111801561034257600080fd5b5060405190808252806020026020018201604052801561037c57816020015b61036961049e565b8152602001906001900390816103615790505b50905060005b82518110156104765760008084838151811061039a57fe5b6020026020010151600001516001600160a01b03168584815181106103bb57fe5b6020026020010151602001516040516103d49190610742565b6000604051808303816000865af19150503d8060008114610411576040519150601f19603f3d011682016040523d82523d6000602084013e610416565b606091505b5091509150851561043e578161043e5760405162461bcd60e51b81526004016102b99061078e565b604051806040016040528083151581526020018281525084848151811061046157fe5b60209081029190910101525050600101610382565b5092915050565b600080606061048d6001856102f3565b9196909550909350915050565b4090565b60408051808201909152600081526060602082015290565b80356001600160a01b03811681146104cd57600080fd5b919050565b600082601f8301126104e2578081fd5b8135602067ffffffffffffffff808311156104f957fe5b6105068283850201610894565b83815282810190868401865b868110156105d657813589016040601f198181848f03011215610533578a8bfd5b81518281018181108a8211171561054657fe5b8352610553848b016104b6565b81528284013589811115610565578c8dfd5b8085019450508d603f850112610579578b8cfd5b898401358981111561058757fe5b6105978b84601f84011601610894565b92508083528e848287010111156105ac578c8dfd5b808486018c85013782018a018c9052808a0191909152865250509285019290850190600101610512565b509098975050505050505050565b6000602082840312156105f5578081fd5b6105fe826104b6565b9392505050565b600060208284031215610616578081fd5b813567ffffffffffffffff81111561062c578182fd5b610638848285016104d2565b949350505050565b60008060408385031215610652578081fd5b82358015158114610661578182fd5b9150602083013567ffffffffffffffff81111561067c578182fd5b610688858286016104d2565b9150509250929050565b6000602082840312156106a3578081fd5b5035919050565b60008282518085526020808601955080818302840101818601855b8481101561070957858303601f19018952815180511515845284015160408585018190526106f581860183610716565b9a86019a94505050908301906001016106c5565b5090979650505050505050565b6000815180845261072e8160208601602086016108b8565b601f01601f19169290920160200192915050565b600082516107548184602087016108b8565b9190910192915050565b6001600160a01b0391909116815260200190565b6000602082526105fe60208301846106aa565b90815260200190565b60208082526021908201527f4d756c746963616c6c32206167677265676174653a2063616c6c206661696c656040820152601960fa1b606082015260800190565b6020808252818101527f4d756c746963616c6c206167677265676174653a2063616c6c206661696c6564604082015260600190565b600060408201848352602060408185015281855180845260608601915060608382028701019350828701855b8281101561085e57605f1988870301845261084c868351610716565b95509284019290840190600101610830565b509398975050505050505050565b60008482528360208301526060604083015261088b60608301846106aa565b95945050505050565b60405181810167ffffffffffffffff811182821017156108b057fe5b604052919050565b60005b838110156108d35781810151838201526020016108bb565b838111156108e2576000848401525b5050505056fea2646970667358221220d3658baf8ca81182ce5c5ed03631257ac86e473dca7d5fc00b839f6682167a7564736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}