UNPKG

@bitriel/bitriel-farm

Version:

Yield Farming Smart Contracts for BitrielSwap Protocol

323 lines (322 loc) 16.7 kB
{ "_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": {} }