{
  "_format": "hh-sol-artifact-1",
  "contractName": "ConstAddressDeployer",
  "sourceName": "contracts/deploy/ConstAddressDeployer.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AlreadyDeployed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DeployFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DeployInitFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EmptyBytecode",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NativeTransferFailed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "deployedAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "bytecodeHash",
          "type": "bytes32"
        }
      ],
      "name": "Deployed",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "bytecode",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "deploy",
      "outputs": [
        {
          "internalType": "address",
          "name": "deployedAddress_",
          "type": "address"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "bytecode",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "init",
          "type": "bytes"
        }
      ],
      "name": "deployAndInit",
      "outputs": [
        {
          "internalType": "address",
          "name": "deployedAddress_",
          "type": "address"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "bytecode",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "deployedAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610883806100206000396000f3fe6080604052600436106100345760003560e01c80634af63f0214610039578063c2b1041c14610075578063cf4d643214610095575b600080fd5b61004c6100473660046106ea565b6100a8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34801561008157600080fd5b5061004c61009036600461072f565b61018c565b61004c6100a33660046107a2565b6101e5565b6040805133602082015290810182905260009081906060016040516020818303038152906040528051906020012090506100e28482610372565b9150341561010a5761010a73ffffffffffffffffffffffffffffffffffffffff831634610402565b610114848261044c565b9150823373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fd579261046780ec80c4dae1bc57abdb62c58df8af1531e63b4e8bcc08bcf46ec878051906020012060405161017d91815260200190565b60405180910390a45092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602082015290810182905260009081906060016040516020818303038152906040528051906020012090506101dc8582610372565b95945050505050565b60408051336020820152908101849052600090819060600160405160208183030381529060405280519060200120905061021f8682610372565b915034156102475761024773ffffffffffffffffffffffffffffffffffffffff831634610402565b610251868261044c565b9150843373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fd579261046780ec80c4dae1bc57abdb62c58df8af1531e63b4e8bcc08bcf46ec89805190602001206040516102ba91815260200190565b60405180910390a460008273ffffffffffffffffffffffffffffffffffffffff1685856040516102eb92919061083d565b6000604051808303816000865af19150503d8060008114610328576040519150601f19603f3d011682016040523d82523d6000602084013e61032d565b606091505b5050905080610368576040517f139c636700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050949350505050565b8151602080840191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b1660218201526035810185905260558082019390935281518082039093018352607501905280519101206000905b90505b92915050565b600080600080600085875af1905080610447576040517ff4b3b1bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60006103f983838151602080840191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b1660218201526035810185905260558082019390935281518082039093018352607501905280519101208251600003610511576040517f21744a5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105308173ffffffffffffffffffffffffffffffffffffffff166105c0565b15610567576040517fa6ef0ba100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818351602085016000f5905073ffffffffffffffffffffffffffffffffffffffff81166103fc576040517fb4f5411100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff82163f801580159061060957507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261065057600080fd5b813567ffffffffffffffff8082111561066b5761066b610610565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156106b1576106b1610610565b816040528381528660208588010111156106ca57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156106fd57600080fd5b823567ffffffffffffffff81111561071457600080fd5b6107208582860161063f565b95602094909401359450505050565b60008060006060848603121561074457600080fd5b833567ffffffffffffffff81111561075b57600080fd5b6107678682870161063f565b935050602084013573ffffffffffffffffffffffffffffffffffffffff8116811461079157600080fd5b929592945050506040919091013590565b600080600080606085870312156107b857600080fd5b843567ffffffffffffffff808211156107d057600080fd5b6107dc8883890161063f565b95506020870135945060408701359150808211156107f957600080fd5b818701915087601f83011261080d57600080fd5b81358181111561081c57600080fd5b88602082850101111561082e57600080fd5b95989497505060200194505050565b818382376000910190815291905056fea2646970667358221220a1d0c400199ced7073499a1e183ddddb0e0455af95f545c92540052075edbc2464736f6c63430008130033",
  "deployedBytecode": "0x6080604052600436106100345760003560e01c80634af63f0214610039578063c2b1041c14610075578063cf4d643214610095575b600080fd5b61004c6100473660046106ea565b6100a8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34801561008157600080fd5b5061004c61009036600461072f565b61018c565b61004c6100a33660046107a2565b6101e5565b6040805133602082015290810182905260009081906060016040516020818303038152906040528051906020012090506100e28482610372565b9150341561010a5761010a73ffffffffffffffffffffffffffffffffffffffff831634610402565b610114848261044c565b9150823373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fd579261046780ec80c4dae1bc57abdb62c58df8af1531e63b4e8bcc08bcf46ec878051906020012060405161017d91815260200190565b60405180910390a45092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602082015290810182905260009081906060016040516020818303038152906040528051906020012090506101dc8582610372565b95945050505050565b60408051336020820152908101849052600090819060600160405160208183030381529060405280519060200120905061021f8682610372565b915034156102475761024773ffffffffffffffffffffffffffffffffffffffff831634610402565b610251868261044c565b9150843373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fd579261046780ec80c4dae1bc57abdb62c58df8af1531e63b4e8bcc08bcf46ec89805190602001206040516102ba91815260200190565b60405180910390a460008273ffffffffffffffffffffffffffffffffffffffff1685856040516102eb92919061083d565b6000604051808303816000865af19150503d8060008114610328576040519150601f19603f3d011682016040523d82523d6000602084013e61032d565b606091505b5050905080610368576040517f139c636700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050949350505050565b8151602080840191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b1660218201526035810185905260558082019390935281518082039093018352607501905280519101206000905b90505b92915050565b600080600080600085875af1905080610447576040517ff4b3b1bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60006103f983838151602080840191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b1660218201526035810185905260558082019390935281518082039093018352607501905280519101208251600003610511576040517f21744a5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105308173ffffffffffffffffffffffffffffffffffffffff166105c0565b15610567576040517fa6ef0ba100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818351602085016000f5905073ffffffffffffffffffffffffffffffffffffffff81166103fc576040517fb4f5411100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff82163f801580159061060957507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261065057600080fd5b813567ffffffffffffffff8082111561066b5761066b610610565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156106b1576106b1610610565b816040528381528660208588010111156106ca57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156106fd57600080fd5b823567ffffffffffffffff81111561071457600080fd5b6107208582860161063f565b95602094909401359450505050565b60008060006060848603121561074457600080fd5b833567ffffffffffffffff81111561075b57600080fd5b6107678682870161063f565b935050602084013573ffffffffffffffffffffffffffffffffffffffff8116811461079157600080fd5b929592945050506040919091013590565b600080600080606085870312156107b857600080fd5b843567ffffffffffffffff808211156107d057600080fd5b6107dc8883890161063f565b95506020870135945060408701359150808211156107f957600080fd5b818701915087601f83011261080d57600080fd5b81358181111561081c57600080fd5b88602082850101111561082e57600080fd5b95989497505060200194505050565b818382376000910190815291905056fea2646970667358221220a1d0c400199ced7073499a1e183ddddb0e0455af95f545c92540052075edbc2464736f6c63430008130033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
