{
  "_format": "hh-sol-artifact-1",
  "contractName": "MultiStaticCallMock",
  "sourceName": "contracts/mocks/utils/MultiStaticCallMock.sol",
  "abi": [
    {
      "inputs": [],
      "name": "Reverted",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "StaticCallReverted",
      "type": "error"
    },
    {
      "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": "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": "revertingCall",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "revertingCallWithoutMessage",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "requireSuccess",
          "type": "bool"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            }
          ],
          "internalType": "struct MultiStaticCall.Call[]",
          "name": "calls",
          "type": "tuple[]"
        }
      ],
      "name": "tryAggregate",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "returnData",
              "type": "bytes"
            }
          ],
          "internalType": "struct MultiStaticCall.Result[]",
          "name": "returnData",
          "type": "tuple[]"
        }
      ],
      "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 MultiStaticCall.Call[]",
          "name": "calls",
          "type": "tuple[]"
        }
      ],
      "name": "tryBlockAndAggregate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "returnData",
              "type": "bytes"
            }
          ],
          "internalType": "struct MultiStaticCall.Result[]",
          "name": "returnData",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60808060405234601557610820908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630f28c97d146100a7578063399542e9146100a257806342cbb15c1461009d5780634d2301cc1461009857806386d516e814610093578063a8b0574e1461008e578063b62c531814610089578063bce38bd7146100845763ce0d89f41461007f57600080fd5b6103b9565b610391565b610387565b61034e565b610315565b6102cf565b610278565b610240565b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0574260805260206080f35b600080fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126100e05760043580151581036100e0579160243567ffffffffffffffff81116100e057826023820112156100e05780600401359267ffffffffffffffff84116100e05760248460051b830101116100e0576024019190565b9080602083519283815201916020808260051b8401019401926000925b82841061018f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08282030183526020865180511515835201516040602083015280519081604084015260005b82811061022a57505060206060837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85600085879860019a0101520116010197019301940192919390610180565b80602080928401015160608287010152016101da565b346100e05761027461025a610254366100e5565b916106e4565b604051918291438352604060208401526040830190610163565b0390f35b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0576020604051438152f35b73ffffffffffffffffffffffffffffffffffffffff8116036100e057565b346100e05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e057602060043561030c816102b1565b31604051908152f35b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0576020604051458152f35b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0576020604051418152f35b346100e057600080fd5b346100e0576102746103a5610254366100e5565b604051918291602083526020830190610163565b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0577f4a5033eb0000000000000000000000000000000000000000000000000000000060005260046000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff82111761046157604052565b610412565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761046157604052565b67ffffffffffffffff81116104615760051b60200190565b906104d46104cf836104aa565b610466565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061050282946104aa565b019060005b82811061051357505050565b60209061051e610441565b6000815260608382015282828501015201610507565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156105a35760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156100e0570190565b610534565b356105b2816102b1565b90565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156100e0570180359067ffffffffffffffff82116100e0576020019181360383136100e057565b908092918237016000815290565b3d15610669573d9067ffffffffffffffff82116104615761065c60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601610466565b9182523d6000602084013e565b606090565b9183606094601f9273ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095168652604060208701528160408701528686013760008582860101520116010190565b80518210156105a35760209160051b010190565b9291906106f0826104c2565b9360005b8381106107015750505050565b61071461070f828686610563565b6105a8565b61072c610722838787610563565b60208101906105b5565b60008060409493945180610741818689610606565b0390855afa9261074f610614565b9286806107e2575b61079657505050906001929161077561076e610441565b9215158352565b602082015261078482896106d0565b5261078f81886106d0565b50016106f4565b8351939284156107a857505050602001fd5b6107de906040519384937f1199c4420000000000000000000000000000000000000000000000000000000085526004850161066e565b0390fd5b50841561075756fea264697066735822122045a422d742b892360a7b624524d334dec9c0c24aebe972149fedea85f68d12b264736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c80630f28c97d146100a7578063399542e9146100a257806342cbb15c1461009d5780634d2301cc1461009857806386d516e814610093578063a8b0574e1461008e578063b62c531814610089578063bce38bd7146100845763ce0d89f41461007f57600080fd5b6103b9565b610391565b610387565b61034e565b610315565b6102cf565b610278565b610240565b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0574260805260206080f35b600080fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126100e05760043580151581036100e0579160243567ffffffffffffffff81116100e057826023820112156100e05780600401359267ffffffffffffffff84116100e05760248460051b830101116100e0576024019190565b9080602083519283815201916020808260051b8401019401926000925b82841061018f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08282030183526020865180511515835201516040602083015280519081604084015260005b82811061022a57505060206060837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85600085879860019a0101520116010197019301940192919390610180565b80602080928401015160608287010152016101da565b346100e05761027461025a610254366100e5565b916106e4565b604051918291438352604060208401526040830190610163565b0390f35b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0576020604051438152f35b73ffffffffffffffffffffffffffffffffffffffff8116036100e057565b346100e05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e057602060043561030c816102b1565b31604051908152f35b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0576020604051458152f35b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0576020604051418152f35b346100e057600080fd5b346100e0576102746103a5610254366100e5565b604051918291602083526020830190610163565b346100e05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e0577f4a5033eb0000000000000000000000000000000000000000000000000000000060005260046000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff82111761046157604052565b610412565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761046157604052565b67ffffffffffffffff81116104615760051b60200190565b906104d46104cf836104aa565b610466565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061050282946104aa565b019060005b82811061051357505050565b60209061051e610441565b6000815260608382015282828501015201610507565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156105a35760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1813603018212156100e0570190565b610534565b356105b2816102b1565b90565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156100e0570180359067ffffffffffffffff82116100e0576020019181360383136100e057565b908092918237016000815290565b3d15610669573d9067ffffffffffffffff82116104615761065c60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601610466565b9182523d6000602084013e565b606090565b9183606094601f9273ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095168652604060208701528160408701528686013760008582860101520116010190565b80518210156105a35760209160051b010190565b9291906106f0826104c2565b9360005b8381106107015750505050565b61071461070f828686610563565b6105a8565b61072c610722838787610563565b60208101906105b5565b60008060409493945180610741818689610606565b0390855afa9261074f610614565b9286806107e2575b61079657505050906001929161077561076e610441565b9215158352565b602082015261078482896106d0565b5261078f81886106d0565b50016106f4565b8351939284156107a857505050602001fd5b6107de906040519384937f1199c4420000000000000000000000000000000000000000000000000000000085526004850161066e565b0390fd5b50841561075756fea264697066735822122045a422d742b892360a7b624524d334dec9c0c24aebe972149fedea85f68d12b264736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
