{
  "_format": "hh-sol-artifact-1",
  "contractName": "StorageAccessible",
  "sourceName": "src/contracts/vendored/mixins/StorageAccessible.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "offset",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "getStorageAt",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "calldataPayload",
          "type": "bytes"
        }
      ],
      "name": "simulateDelegatecall",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "response",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "targetContract",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "calldataPayload",
          "type": "bytes"
        }
      ],
      "name": "simulateDelegatecallInternal",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "response",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506106c4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806343218e19146100465780635624b25b1461006f578063f84436bd14610082575b600080fd5b610059610054366004610377565b610095565b60405161006691906104ec565b60405180910390f35b61005961007d366004610506565b610137565b610059610090366004610377565b6101bf565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040516100be9190610528565b600060405180830381855af49150503d80600081146100f9576040519150601f19603f3d011682016040523d82523d6000602084013e6100fe565b606091505b506040519093509091506101309061011c9084908490602001610544565b604051602081830303815290604052610340565b5092915050565b6060600061014683602061059b565b67ffffffffffffffff81111561015e5761015e610348565b6040519080825280601f01601f191660200182016040528015610188576020820181803683370190505b50905060005b838110156101b55784810154602080830284010152806101ad816105d8565b91505061018e565b5090505b92915050565b606060006343218e1960e01b84846040516024016101de929190610611565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051909150309061026d908390610528565b6000604051808303816000865af19150503d80600081146102aa576040519150601f19603f3d011682016040523d82523d6000602084013e6102af565b606091505b50905080925050600082600184516102c79190610648565b815181106102d7576102d761065f565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610322836001855161031e9190610648565b9052565b801561032f5750506101b9565b61033883610340565b505092915050565b805160208201fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561038a57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146103ae57600080fd5b9150602083013567ffffffffffffffff808211156103cb57600080fd5b818501915085601f8301126103df57600080fd5b8135818111156103f1576103f1610348565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561043757610437610348565b8160405282815288602084870101111561045057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561048d578181015183820152602001610475565b8381111561049c576000848401525b50505050565b600081518084526104ba816020860160208601610472565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104ff60208301846104a2565b9392505050565b6000806040838503121561051957600080fd5b50508035926020909101359150565b6000825161053a818460208701610472565b9190910192915050565b60008351610556818460208801610472565b92151560f81b9190920190815260010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156105d3576105d361056c565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561060a5761060a61056c565b5060010190565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061064060408301846104a2565b949350505050565b60008282101561065a5761065a61056c565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220ff774857bbd4bd808198bbbeac52dc16eb3f79ec97d619c251bbefa9bd7c2cf164736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806343218e19146100465780635624b25b1461006f578063f84436bd14610082575b600080fd5b610059610054366004610377565b610095565b60405161006691906104ec565b60405180910390f35b61005961007d366004610506565b610137565b610059610090366004610377565b6101bf565b606060008373ffffffffffffffffffffffffffffffffffffffff16836040516100be9190610528565b600060405180830381855af49150503d80600081146100f9576040519150601f19603f3d011682016040523d82523d6000602084013e6100fe565b606091505b506040519093509091506101309061011c9084908490602001610544565b604051602081830303815290604052610340565b5092915050565b6060600061014683602061059b565b67ffffffffffffffff81111561015e5761015e610348565b6040519080825280601f01601f191660200182016040528015610188576020820181803683370190505b50905060005b838110156101b55784810154602080830284010152806101ad816105d8565b91505061018e565b5090505b92915050565b606060006343218e1960e01b84846040516024016101de929190610611565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051909150309061026d908390610528565b6000604051808303816000865af19150503d80600081146102aa576040519150601f19603f3d011682016040523d82523d6000602084013e6102af565b606091505b50905080925050600082600184516102c79190610648565b815181106102d7576102d761065f565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050610322836001855161031e9190610648565b9052565b801561032f5750506101b9565b61033883610340565b505092915050565b805160208201fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561038a57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146103ae57600080fd5b9150602083013567ffffffffffffffff808211156103cb57600080fd5b818501915085601f8301126103df57600080fd5b8135818111156103f1576103f1610348565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561043757610437610348565b8160405282815288602084870101111561045057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561048d578181015183820152602001610475565b8381111561049c576000848401525b50505050565b600081518084526104ba816020860160208601610472565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104ff60208301846104a2565b9392505050565b6000806040838503121561051957600080fd5b50508035926020909101359150565b6000825161053a818460208701610472565b9190910192915050565b60008351610556818460208801610472565b92151560f81b9190920190815260010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156105d3576105d361056c565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561060a5761060a61056c565b5060010190565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061064060408301846104a2565b949350505050565b60008282101561065a5761065a61056c565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220ff774857bbd4bd808198bbbeac52dc16eb3f79ec97d619c251bbefa9bd7c2cf164736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
