{
  "_format": "hh-sol-artifact-1",
  "contractName": "DepositBoxFactory",
  "sourceName": "contracts/deposit/DepositBoxFactory.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "beaconProxyCodeContract_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "depositBoxBeacon_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "Create2EmptyBytecode",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedDeployment",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BEACON_PROXY_CODE_CONTRACT",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEPOSIT_BOX_BEACON",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEPOSIT_BOX_CODE_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "boxId",
          "type": "uint32"
        }
      ],
      "name": "computeDepositBox",
      "outputs": [
        {
          "internalType": "address",
          "name": "box",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "deployed",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "boxId",
          "type": "uint32"
        }
      ],
      "name": "deployDepositBox",
      "outputs": [
        {
          "internalType": "contract IPDepositBox",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60e060405234801561000f575f5ffd5b5060405161066238038061066283398101604081905261002e916100de565b6001600160a01b03828116608081905290821660a052604080516020833b808301820190935282825290925f918401903c604080516001600160a01b0384166020820152808201919091525f606082015260800160408051601f19818403018152908290526100a09291602001610126565b60408051601f19818403018152919052805160209091012060c052506101429050565b80516001600160a01b03811681146100d9575f5ffd5b919050565b5f5f604083850312156100ef575f5ffd5b6100f8836100c3565b9150610106602084016100c3565b90509250929050565b5f81518060208401855e5f93019283525090919050565b5f61013a610134838661010f565b8461010f565b949350505050565b60805160a05160c0516104e461017e5f395f818160c901526102ea01525f8181605e01526101bf01525f818160a2015261016e01526104e45ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631122f54e146100595780632d610bb01461009d5780635a3f0e6b146100c45780637f6bc3fd146100f9578063f22e9dd41461010c575b5f5ffd5b6100807f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100807f000000000000000000000000000000000000000000000000000000000000000081565b6100eb7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610094565b6100806101073660046103fe565b610146565b61011f61011a3660046103fe565b6102b6565b604080516001600160a01b0390941684526020840192909252151590820152606001610094565b5f5f5f5f61015486866102b6565b925092509250801561016b578293505050506102b0565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b806020016040519081016040528181525f908060200190933c604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f1981840301815290829052610212929160200161045f565b6040516020818303038152906040529050836001600160a01b03166102385f8584610326565b6001600160a01b03161461024e5761024e61047b565b60405163c5e4c9f960e01b81526001600160a01b0385169063c5e4c9f99061027c908a908a9060040161048f565b5f604051808303815f87803b158015610293575f5ffd5b505af11580156102a5573d5f5f3e3d5ffd5b509596505050505050505b92915050565b5f5f5f84846040516020016102cc92919061048f565b60405160208183030381529060405280519060200120915061030e827f00000000000000000000000000000000000000000000000000000000000000006103c5565b92505f836001600160a01b03163b1190509250925092565b5f834710156103555760405163cf47918160e01b81524760048201526024810185905260440160405180910390fd5b81515f0361037657604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d151981151615610397576040513d5f823e3d81fd5b6001600160a01b0381166103be5760405163b06ebf3d60e01b815260040160405180910390fd5b9392505050565b5f6103be8383305f604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b5f5f6040838503121561040f575f5ffd5b82356001600160a01b0381168114610425575f5ffd5b9150602083013563ffffffff8116811461043d575f5ffd5b809150509250929050565b5f81518060208401855e5f93019283525090919050565b5f61047361046d8386610448565b84610448565b949350505050565b634e487b7160e01b5f52600160045260245ffd5b6001600160a01b0392909216825263ffffffff1660208201526040019056fea2646970667358221220a5eda91c81077368af2e514e825fd343cabfd5945926e07e0ebf1e16379b675864736f6c634300081c0033",
  "deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631122f54e146100595780632d610bb01461009d5780635a3f0e6b146100c45780637f6bc3fd146100f9578063f22e9dd41461010c575b5f5ffd5b6100807f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100807f000000000000000000000000000000000000000000000000000000000000000081565b6100eb7f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610094565b6100806101073660046103fe565b610146565b61011f61011a3660046103fe565b6102b6565b604080516001600160a01b0390941684526020840192909252151590820152606001610094565b5f5f5f5f61015486866102b6565b925092509250801561016b578293505050506102b0565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b806020016040519081016040528181525f908060200190933c604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091525f606082015260800160408051601f1981840301815290829052610212929160200161045f565b6040516020818303038152906040529050836001600160a01b03166102385f8584610326565b6001600160a01b03161461024e5761024e61047b565b60405163c5e4c9f960e01b81526001600160a01b0385169063c5e4c9f99061027c908a908a9060040161048f565b5f604051808303815f87803b158015610293575f5ffd5b505af11580156102a5573d5f5f3e3d5ffd5b509596505050505050505b92915050565b5f5f5f84846040516020016102cc92919061048f565b60405160208183030381529060405280519060200120915061030e827f00000000000000000000000000000000000000000000000000000000000000006103c5565b92505f836001600160a01b03163b1190509250925092565b5f834710156103555760405163cf47918160e01b81524760048201526024810185905260440160405180910390fd5b81515f0361037657604051631328927760e21b815260040160405180910390fd5b8282516020840186f590503d151981151615610397576040513d5f823e3d81fd5b6001600160a01b0381166103be5760405163b06ebf3d60e01b815260040160405180910390fd5b9392505050565b5f6103be8383305f604051836040820152846020820152828152600b8101905060ff8153605590206001600160a01b0316949350505050565b5f5f6040838503121561040f575f5ffd5b82356001600160a01b0381168114610425575f5ffd5b9150602083013563ffffffff8116811461043d575f5ffd5b809150509250929050565b5f81518060208401855e5f93019283525090919050565b5f61047361046d8386610448565b84610448565b949350505050565b634e487b7160e01b5f52600160045260245ffd5b6001600160a01b0392909216825263ffffffff1660208201526040019056fea2646970667358221220a5eda91c81077368af2e514e825fd343cabfd5945926e07e0ebf1e16379b675864736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
