{
  "_format": "hh-sol-artifact-1",
  "contractName": "Proxy",
  "sourceName": "contracts/upgradable/Proxy.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementationAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "setupParams",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AlreadyInitialized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidImplementation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidOwner",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotOwner",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SetupFailed",
      "type": "error"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "implementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "implementation_",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "params",
          "type": "bytes"
        }
      ],
      "name": "setup",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516104a03803806104a083398101604081905261002f916101cd565b6001600160a01b038216610056576040516349e27cff60e01b815260040160405180910390fd5b6000837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55827f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c055815160001461016e576000846001600160a01b0316639ded06df60e01b846040516024016100cc919061029d565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161010a91906102d0565b600060405180830381855af49150503d8060008114610145576040519150601f19603f3d011682016040523d82523d6000602084013e61014a565b606091505b505090508061016c576040516397905dfb60e01b815260040160405180910390fd5b505b505050506102ec565b80516001600160a01b038116811461018e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156101c45781810151838201526020016101ac565b50506000910152565b6000806000606084860312156101e257600080fd5b6101eb84610177565b92506101f960208501610177565b60408501519092506001600160401b038082111561021657600080fd5b818601915086601f83011261022a57600080fd5b81518181111561023c5761023c610193565b604051601f8201601f19908116603f0116810190838211818310171561026457610264610193565b8160405282815289602084870101111561027d57600080fd5b61028e8360208301602088016101a9565b80955050505050509250925092565b60208152600082518060208401526102bc8160408501602087016101a9565b601f01601f19169190910160400192915050565b600082516102e28184602087016101a9565b9190910192915050565b6101a5806102fb6000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100865780639ded06df146100de57610034565b3661003457005b600061005e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90503660008037600080366000845af43d6000803e80801561007f573d6000f35b3d6000fd5b005b34801561009257600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ea57600080fd5b506100846100f93660046100fd565b5050565b6000806020838503121561011057600080fd5b823567ffffffffffffffff8082111561012857600080fd5b818501915085601f83011261013c57600080fd5b81358181111561014b57600080fd5b86602082850101111561015d57600080fd5b6020929092019691955090935050505056fea26469706673582212201a1b3dfca1b539bdd4c2136699e598d92d27f80b5c549f8ca72b1fe3953acac464736f6c63430008130033",
  "deployedBytecode": "0x60806040526004361061002d5760003560e01c80635c60da1b146100865780639ded06df146100de57610034565b3661003457005b600061005e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90503660008037600080366000845af43d6000803e80801561007f573d6000f35b3d6000fd5b005b34801561009257600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ea57600080fd5b506100846100f93660046100fd565b5050565b6000806020838503121561011057600080fd5b823567ffffffffffffffff8082111561012857600080fd5b818501915085601f83011261013c57600080fd5b81358181111561014b57600080fd5b86602082850101111561015d57600080fd5b6020929092019691955090935050505056fea26469706673582212201a1b3dfca1b539bdd4c2136699e598d92d27f80b5c549f8ca72b1fe3953acac464736f6c63430008130033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
