{
  "_format": "hh3-artifact-1",
  "contractName": "Controllable",
  "sourceName": "contracts/root/Controllable.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "controller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "ControllerChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "controllers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "controller",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setController",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104118061007a6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063da8c229e11610050578063da8c229e146100a3578063e0dba60f146100d6578063f2fde38b146100e957600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100fc565b005b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100c66100b136600461037d565b60016020526000908152604090205460ff1681565b604051901515815260200161009a565b6100746100e436600461039f565b610110565b6100746100f736600461037d565b6101a2565b61010461025e565b61010e60006102df565b565b61011861025e565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b6101aa61025e565b73ffffffffffffffffffffffffffffffffffffffff8116610252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61025b816102df565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461010e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610249565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461037857600080fd5b919050565b60006020828403121561038f57600080fd5b61039882610354565b9392505050565b600080604083850312156103b257600080fd5b6103bb83610354565b9150602083013580151581146103d057600080fd5b80915050925092905056fea2646970667358221220ce2eb8282cafe945f847d66a257b7c5019a8378b7850f471d69562babeea61d764736f6c634300081a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c8063da8c229e11610050578063da8c229e146100a3578063e0dba60f146100d6578063f2fde38b146100e957600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100fc565b005b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100c66100b136600461037d565b60016020526000908152604090205460ff1681565b604051901515815260200161009a565b6100746100e436600461039f565b610110565b6100746100f736600461037d565b6101a2565b61010461025e565b61010e60006102df565b565b61011861025e565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b6101aa61025e565b73ffffffffffffffffffffffffffffffffffffffff8116610252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61025b816102df565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461010e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610249565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461037857600080fd5b919050565b60006020828403121561038f57600080fd5b61039882610354565b9392505050565b600080604083850312156103b257600080fd5b6103bb83610354565b9150602083013580151581146103d057600080fd5b80915050925092905056fea2646970667358221220ce2eb8282cafe945f847d66a257b7c5019a8378b7850f471d69562babeea61d764736f6c634300081a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {},
  "inputSourceName": "project/contracts/root/Controllable.sol",
  "buildInfoId": "solc-0_8_26-f05bdccb11f2cf6df865fc6a27a95b5ace6017ea"
}