{
  "_format": "hh-sol-artifact-1",
  "contractName": "SimulateHelper",
  "sourceName": "contracts/offchain-helpers/SimulateHelper.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        },
        {
          "internalType": "bytes",
          "name": "res",
          "type": "bytes"
        }
      ],
      "name": "SimulationResults",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "gasLimit",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "bytes[]",
          "name": "callDatas",
          "type": "bytes[]"
        }
      ],
      "name": "multicallRevert",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "res",
          "type": "bytes[]"
        },
        {
          "internalType": "uint256[]",
          "name": "gasUsed",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "simulate",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a0604052348015600e575f5ffd5b50306080526080516106db61002b5f395f61015701526106db5ff3fe608060405260043610610028575f3560e01c806373e3b88e1461002c578063bd61951d14610056575b5f5ffd5b61003f61003a36600461036f565b61006b565b60405161004d929190610433565b60405180910390f35b6100696100643660046104ef565b6102ad565b005b6060808483146100b45760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60448201526064015b60405180910390fd5b82806001600160401b038111156100cd576100cd61056b565b60405190808252806020026020018201604052801561010057816020015b60608152602001906001900390816100eb5790505b509250806001600160401b0381111561011b5761011b61056b565b604051908082528060200260200182016040528015610144578160200160208202803683370190505b5091505f5b818110156102a1575f5a90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168a8a8a858181106101925761019261057f565b90506020020160208101906101a79190610593565b8989868181106101b9576101b961057f565b90506020028101906101cb91906105b3565b6040516024016101dd939291906105f5565b60408051601f198184030181529181526020820180516001600160e01b031663bd61951d60e01b179052516102129190610634565b5f604051808303818686f4925050503d805f811461024b576040519150601f19603f3d011682016040523d82523d5f602084013e610250565b606091505b5090508583815181106102655761026561057f565b60200260200101819052505a61027b908261064f565b84838151811061028d5761028d61057f565b602090810291909101015250600101610149565b50509550959350505050565b5f5f846001600160a01b031684846040516102c9929190610674565b5f60405180830381855af49150503d805f8114610301576040519150601f19603f3d011682016040523d82523d5f602084013e610306565b606091505b5091509150818160405163032695f960e31b81526004016100ab929190610683565b5f5f83601f840112610338575f5ffd5b5081356001600160401b0381111561034e575f5ffd5b6020830191508360208260051b8501011115610368575f5ffd5b9250929050565b5f5f5f5f5f60608688031215610383575f5ffd5b8535945060208601356001600160401b0381111561039f575f5ffd5b6103ab88828901610328565b90955093505060408601356001600160401b038111156103c9575f5ffd5b6103d588828901610328565b969995985093965092949392505050565b5f5b838110156104005781810151838201526020016103e8565b50505f910152565b5f815180845261041f8160208601602086016103e6565b601f01601f19169290920160200192915050565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561048a57605f19878603018452610475858351610408565b94506020938401939190910190600101610459565b5050505082810360208401528084518083526020830191506020860192505f5b818110156104c85783518352602093840193909201916001016104aa565b50909695505050505050565b80356001600160a01b03811681146104ea575f5ffd5b919050565b5f5f5f60408486031215610501575f5ffd5b61050a846104d4565b925060208401356001600160401b03811115610524575f5ffd5b8401601f81018613610534575f5ffd5b80356001600160401b03811115610549575f5ffd5b86602082840101111561055a575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156105a3575f5ffd5b6105ac826104d4565b9392505050565b5f5f8335601e198436030181126105c8575f5ffd5b8301803591506001600160401b038211156105e1575f5ffd5b602001915036819003821315610368575f5ffd5b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f82516106458184602087016103e6565b9190910192915050565b8181038181111561066e57634e487b7160e01b5f52601160045260245ffd5b92915050565b818382375f9101908152919050565b8215158152604060208201525f61069d6040830184610408565b94935050505056fea26469706673582212207aa866b6a185363f010d88ab4191a2ed0d2d7d1ae35adb42cbcc3d22212e464764736f6c634300081e0033",
  "deployedBytecode": "0x608060405260043610610028575f3560e01c806373e3b88e1461002c578063bd61951d14610056575b5f5ffd5b61003f61003a36600461036f565b61006b565b60405161004d929190610433565b60405180910390f35b6100696100643660046104ef565b6102ad565b005b6060808483146100b45760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60448201526064015b60405180910390fd5b82806001600160401b038111156100cd576100cd61056b565b60405190808252806020026020018201604052801561010057816020015b60608152602001906001900390816100eb5790505b509250806001600160401b0381111561011b5761011b61056b565b604051908082528060200260200182016040528015610144578160200160208202803683370190505b5091505f5b818110156102a1575f5a90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168a8a8a858181106101925761019261057f565b90506020020160208101906101a79190610593565b8989868181106101b9576101b961057f565b90506020028101906101cb91906105b3565b6040516024016101dd939291906105f5565b60408051601f198184030181529181526020820180516001600160e01b031663bd61951d60e01b179052516102129190610634565b5f604051808303818686f4925050503d805f811461024b576040519150601f19603f3d011682016040523d82523d5f602084013e610250565b606091505b5090508583815181106102655761026561057f565b60200260200101819052505a61027b908261064f565b84838151811061028d5761028d61057f565b602090810291909101015250600101610149565b50509550959350505050565b5f5f846001600160a01b031684846040516102c9929190610674565b5f60405180830381855af49150503d805f8114610301576040519150601f19603f3d011682016040523d82523d5f602084013e610306565b606091505b5091509150818160405163032695f960e31b81526004016100ab929190610683565b5f5f83601f840112610338575f5ffd5b5081356001600160401b0381111561034e575f5ffd5b6020830191508360208260051b8501011115610368575f5ffd5b9250929050565b5f5f5f5f5f60608688031215610383575f5ffd5b8535945060208601356001600160401b0381111561039f575f5ffd5b6103ab88828901610328565b90955093505060408601356001600160401b038111156103c9575f5ffd5b6103d588828901610328565b969995985093965092949392505050565b5f5b838110156104005781810151838201526020016103e8565b50505f910152565b5f815180845261041f8160208601602086016103e6565b601f01601f19169290920160200192915050565b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561048a57605f19878603018452610475858351610408565b94506020938401939190910190600101610459565b5050505082810360208401528084518083526020830191506020860192505f5b818110156104c85783518352602093840193909201916001016104aa565b50909695505050505050565b80356001600160a01b03811681146104ea575f5ffd5b919050565b5f5f5f60408486031215610501575f5ffd5b61050a846104d4565b925060208401356001600160401b03811115610524575f5ffd5b8401601f81018613610534575f5ffd5b80356001600160401b03811115610549575f5ffd5b86602082840101111561055a575f5ffd5b939660209190910195509293505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156105a3575f5ffd5b6105ac826104d4565b9392505050565b5f5f8335601e198436030181126105c8575f5ffd5b8301803591506001600160401b038211156105e1575f5ffd5b602001915036819003821315610368575f5ffd5b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f82516106458184602087016103e6565b9190910192915050565b8181038181111561066e57634e487b7160e01b5f52601160045260245ffd5b92915050565b818382375f9101908152919050565b8215158152604060208201525f61069d6040830184610408565b94935050505056fea26469706673582212207aa866b6a185363f010d88ab4191a2ed0d2d7d1ae35adb42cbcc3d22212e464764736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
