{
  "_format": "hh-sol-artifact-1",
  "contractName": "Multicall",
  "sourceName": "contracts/V3/util/Multicall.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            }
          ],
          "internalType": "struct Multicall.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": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        }
      ],
      "name": "getBlockHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "blockHash",
          "type": "bytes32"
        }
      ],
      "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"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506105d8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c80630f28c97d1461007d578063252dba421461009257806327e86d6e146100b35780634d2301cc146100bb57806372425d9d146100d657806386d516e8146100dc578063a8b0574e146100e2578063ee82ac5e146100f0575b600080fd5b425b6040519081526020015b60405180910390f35b6100a56100a03660046102de565b610102565b60405161008992919061046b565b61007f610241565b61007f6100c93660046104ed565b6001600160a01b03163190565b4461007f565b4561007f565b604051418152602001610089565b61007f6100fe36600461050f565b4090565b805143906060906001600160401b0381111561012057610120610254565b60405190808252806020026020018201604052801561015357816020015b606081526020019060019003908161013e5790505b50905060005b835181101561023b5760008085838151811061017757610177610528565b6020026020010151600001516001600160a01b031686848151811061019e5761019e610528565b6020026020010151602001516040516101b7919061053e565b6000604051808303816000865af19150503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50915091508161020857600080fd5b8084848151811061021b5761021b610528565b60200260200101819052505050808061023390610570565b915050610159565b50915091565b600061024e60014361058b565b40905090565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561028c5761028c610254565b60405290565b604051601f8201601f191681016001600160401b03811182821017156102ba576102ba610254565b604052919050565b80356001600160a01b03811681146102d957600080fd5b919050565b600060208083850312156102f157600080fd5b82356001600160401b038082111561030857600080fd5b818501915085601f83011261031c57600080fd5b81358181111561032e5761032e610254565b8060051b61033d858201610292565b918252838101850191858101908984111561035757600080fd5b86860192505b8383101561042e578235858111156103755760008081fd5b86016040601f19828d03810182131561038e5760008081fd5b61039661026a565b6103a18b85016102c2565b815282840135898111156103b55760008081fd5b8085019450508d603f8501126103cb5760008081fd5b8a840135898111156103df576103df610254565b6103ef8c84601f84011601610292565b92508083528e848287010111156104065760008081fd5b808486018d85013760009083018c0152808b019190915284525050918601919086019061035d565b9998505050505050505050565b60005b8381101561045657818101518382015260200161043e565b83811115610465576000848401525b50505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156104df57878603605f19018452815180518088526104c081888a0189850161043b565b601f01601f191696909601850195509284019290840190600101610499565b509398975050505050505050565b6000602082840312156104ff57600080fd5b610508826102c2565b9392505050565b60006020828403121561052157600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6000825161055081846020870161043b565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156105845761058461055a565b5060010190565b60008282101561059d5761059d61055a565b50039056fea2646970667358221220ef15e656f9587291f22f60a6508c7be00ae5e5efa1081f38b41e6e8a758a35aa64736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c80630f28c97d1461007d578063252dba421461009257806327e86d6e146100b35780634d2301cc146100bb57806372425d9d146100d657806386d516e8146100dc578063a8b0574e146100e2578063ee82ac5e146100f0575b600080fd5b425b6040519081526020015b60405180910390f35b6100a56100a03660046102de565b610102565b60405161008992919061046b565b61007f610241565b61007f6100c93660046104ed565b6001600160a01b03163190565b4461007f565b4561007f565b604051418152602001610089565b61007f6100fe36600461050f565b4090565b805143906060906001600160401b0381111561012057610120610254565b60405190808252806020026020018201604052801561015357816020015b606081526020019060019003908161013e5790505b50905060005b835181101561023b5760008085838151811061017757610177610528565b6020026020010151600001516001600160a01b031686848151811061019e5761019e610528565b6020026020010151602001516040516101b7919061053e565b6000604051808303816000865af19150503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50915091508161020857600080fd5b8084848151811061021b5761021b610528565b60200260200101819052505050808061023390610570565b915050610159565b50915091565b600061024e60014361058b565b40905090565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561028c5761028c610254565b60405290565b604051601f8201601f191681016001600160401b03811182821017156102ba576102ba610254565b604052919050565b80356001600160a01b03811681146102d957600080fd5b919050565b600060208083850312156102f157600080fd5b82356001600160401b038082111561030857600080fd5b818501915085601f83011261031c57600080fd5b81358181111561032e5761032e610254565b8060051b61033d858201610292565b918252838101850191858101908984111561035757600080fd5b86860192505b8383101561042e578235858111156103755760008081fd5b86016040601f19828d03810182131561038e5760008081fd5b61039661026a565b6103a18b85016102c2565b815282840135898111156103b55760008081fd5b8085019450508d603f8501126103cb5760008081fd5b8a840135898111156103df576103df610254565b6103ef8c84601f84011601610292565b92508083528e848287010111156104065760008081fd5b808486018d85013760009083018c0152808b019190915284525050918601919086019061035d565b9998505050505050505050565b60005b8381101561045657818101518382015260200161043e565b83811115610465576000848401525b50505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156104df57878603605f19018452815180518088526104c081888a0189850161043b565b601f01601f191696909601850195509284019290840190600101610499565b509398975050505050505050565b6000602082840312156104ff57600080fd5b610508826102c2565b9392505050565b60006020828403121561052157600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6000825161055081846020870161043b565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60006000198214156105845761058461055a565b5060010190565b60008282101561059d5761059d61055a565b50039056fea2646970667358221220ef15e656f9587291f22f60a6508c7be00ae5e5efa1081f38b41e6e8a758a35aa64736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
