{
  "_format": "hh-sol-artifact-1",
  "contractName": "AlgebraInterfaceMulticall",
  "sourceName": "contracts/lens/AlgebraInterfaceMulticall.sol",
  "abi": [
    {
      "inputs": [],
      "name": "gasLeft",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gaslimit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "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": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "gasLimit",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AlgebraInterfaceMulticall.Call[]",
          "name": "calls",
          "type": "tuple[]"
        }
      ],
      "name": "multicall",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "gasUsed",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "returnData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AlgebraInterfaceMulticall.Result[]",
          "name": "returnData",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "gasLimit",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "callData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AlgebraInterfaceMulticall.Call[]",
          "name": "calls",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256",
          "name": "gasBuffer",
          "type": "uint256"
        }
      ],
      "name": "multicallWithGasLimitation",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "gasUsed",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "returnData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AlgebraInterfaceMulticall.Result[]",
          "name": "returnData",
          "type": "tuple[]"
        },
        {
          "internalType": "uint256",
          "name": "lastSuccessIndex",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610989806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80632ddb301b116100505780632ddb301b146100b35780634d2301cc146100bb578063d8f95843146100e357600080fd5b80630f28c97d146100775780631749e1e31461008c5780632a722839146100ad575b600080fd5b425b6040519081526020015b60405180910390f35b61009f61009a3660046106f6565b610105565b604051610083929190610808565b45610079565b6100796102c4565b6100796100c9366004610821565b73ffffffffffffffffffffffffffffffffffffffff163190565b6100f66100f1366004610843565b6102cc565b60405161008393929190610888565b8051439060609067ffffffffffffffff811115610124576101246104c0565b60405190808252806020026020018201604052801561017157816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816101425790505b50905060005b83518110156102be576000806000868481518110610197576101976108b1565b6020026020010151600001518785815181106101b5576101b56108b1565b6020026020010151602001518886815181106101d3576101d36108b1565b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff16858560405161021391906108e0565b60006040518083038160008787f1925050503d8060008114610251576040519150601f19603f3d011682016040523d82523d6000602084013e610256565b606091505b509150915060005a610268908561092b565b90506040518060600160405280841515815260200182815260200183815250898981518110610299576102996108b1565b60200260200101819052505050505050505080806102b690610944565b915050610177565b50915091565b60005a905090565b600060606000439250845167ffffffffffffffff8111156102ef576102ef6104c0565b60405190808252806020026020018201604052801561033c57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161030d5790505b50915060005b85518110156104a1576000806000888481518110610362576103626108b1565b602002602001015160000151898581518110610380576103806108b1565b6020026020010151602001518a868151811061039e5761039e6108b1565b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516103de91906108e0565b60006040518083038160008787f1925050503d806000811461041c576040519150601f19603f3d011682016040523d82523d6000602084013e610421565b606091505b509150915060005a610433908561092b565b905060405180606001604052808415158152602001828152602001838152508a8981518110610464576104646108b1565b60200260200101819052508b5a101561048757509596506104b995505050505050565b50505050505050808061049990610944565b915050610342565b508282600187516104b2919061092b565b9250925092505b9250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610512576105126104c0565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561055f5761055f6104c0565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461058b57600080fd5b919050565b6000601f83818401126105a257600080fd5b8235602067ffffffffffffffff808311156105bf576105bf6104c0565b8260051b6105ce838201610518565b93845286810183019383810190898611156105e857600080fd5b84890192505b858310156106e9578235848111156106065760008081fd5b890160607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d03810182131561063d5760008081fd5b6106456104ef565b610650898501610567565b81526040848101358a83015292840135928884111561066f5760008081fd5b83850194508e603f86011261068657600093508384fd5b8985013593508884111561069c5761069c6104c0565b6106ab8a848e87011601610518565b92508383528e818587010111156106c25760008081fd5b838186018b85013760009383018a01939093529182015283525091840191908401906105ee565b9998505050505050505050565b60006020828403121561070857600080fd5b813567ffffffffffffffff81111561071f57600080fd5b61072b84828501610590565b949350505050565b60005b8381101561074e578181015183820152602001610736565b50506000910152565b600082825180855260208086019550808260051b84010181860160005b848110156107fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080878503018a52825160608151151586528682015187870152604080830151925081818801525081518082880152608091506107de818389018a8601610733565b9b87019b601f019092169490940101925090830190600101610774565b5090979650505050505050565b82815260406020820152600061072b6040830184610757565b60006020828403121561083357600080fd5b61083c82610567565b9392505050565b6000806040838503121561085657600080fd5b823567ffffffffffffffff81111561086d57600080fd5b61087985828601610590565b95602094909401359450505050565b8381526060602082015260006108a16060830185610757565b9050826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082516108f2818460208701610733565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561093e5761093e6108fc565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610975576109756108fc565b506001019056fea164736f6c6343000814000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c80632ddb301b116100505780632ddb301b146100b35780634d2301cc146100bb578063d8f95843146100e357600080fd5b80630f28c97d146100775780631749e1e31461008c5780632a722839146100ad575b600080fd5b425b6040519081526020015b60405180910390f35b61009f61009a3660046106f6565b610105565b604051610083929190610808565b45610079565b6100796102c4565b6100796100c9366004610821565b73ffffffffffffffffffffffffffffffffffffffff163190565b6100f66100f1366004610843565b6102cc565b60405161008393929190610888565b8051439060609067ffffffffffffffff811115610124576101246104c0565b60405190808252806020026020018201604052801561017157816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816101425790505b50905060005b83518110156102be576000806000868481518110610197576101976108b1565b6020026020010151600001518785815181106101b5576101b56108b1565b6020026020010151602001518886815181106101d3576101d36108b1565b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff16858560405161021391906108e0565b60006040518083038160008787f1925050503d8060008114610251576040519150601f19603f3d011682016040523d82523d6000602084013e610256565b606091505b509150915060005a610268908561092b565b90506040518060600160405280841515815260200182815260200183815250898981518110610299576102996108b1565b60200260200101819052505050505050505080806102b690610944565b915050610177565b50915091565b60005a905090565b600060606000439250845167ffffffffffffffff8111156102ef576102ef6104c0565b60405190808252806020026020018201604052801561033c57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161030d5790505b50915060005b85518110156104a1576000806000888481518110610362576103626108b1565b602002602001015160000151898581518110610380576103806108b1565b6020026020010151602001518a868151811061039e5761039e6108b1565b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516103de91906108e0565b60006040518083038160008787f1925050503d806000811461041c576040519150601f19603f3d011682016040523d82523d6000602084013e610421565b606091505b509150915060005a610433908561092b565b905060405180606001604052808415158152602001828152602001838152508a8981518110610464576104646108b1565b60200260200101819052508b5a101561048757509596506104b995505050505050565b50505050505050808061049990610944565b915050610342565b508282600187516104b2919061092b565b9250925092505b9250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610512576105126104c0565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561055f5761055f6104c0565b604052919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461058b57600080fd5b919050565b6000601f83818401126105a257600080fd5b8235602067ffffffffffffffff808311156105bf576105bf6104c0565b8260051b6105ce838201610518565b93845286810183019383810190898611156105e857600080fd5b84890192505b858310156106e9578235848111156106065760008081fd5b890160607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828d03810182131561063d5760008081fd5b6106456104ef565b610650898501610567565b81526040848101358a83015292840135928884111561066f5760008081fd5b83850194508e603f86011261068657600093508384fd5b8985013593508884111561069c5761069c6104c0565b6106ab8a848e87011601610518565b92508383528e818587010111156106c25760008081fd5b838186018b85013760009383018a01939093529182015283525091840191908401906105ee565b9998505050505050505050565b60006020828403121561070857600080fd5b813567ffffffffffffffff81111561071f57600080fd5b61072b84828501610590565b949350505050565b60005b8381101561074e578181015183820152602001610736565b50506000910152565b600082825180855260208086019550808260051b84010181860160005b848110156107fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080878503018a52825160608151151586528682015187870152604080830151925081818801525081518082880152608091506107de818389018a8601610733565b9b87019b601f019092169490940101925090830190600101610774565b5090979650505050505050565b82815260406020820152600061072b6040830184610757565b60006020828403121561083357600080fd5b61083c82610567565b9392505050565b6000806040838503121561085657600080fd5b823567ffffffffffffffff81111561086d57600080fd5b61087985828601610590565b95602094909401359450505050565b8381526060602082015260006108a16060830185610757565b9050826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082516108f2818460208701610733565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561093e5761093e6108fc565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610975576109756108fc565b506001019056fea164736f6c6343000814000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
