{
  "_format": "hh3-artifact-1",
  "contractName": "Root",
  "sourceName": "contracts/root/Root.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ENS",
          "name": "_ens",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "label",
          "type": "bytes32"
        }
      ],
      "name": "TLDLocked",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "controllers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "internalType": "contract ENS",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "label",
          "type": "bytes32"
        }
      ],
      "name": "lock",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "locked",
      "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": "resolver",
          "type": "address"
        }
      ],
      "name": "setResolver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "label",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "setSubnodeOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceID",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b5060405161094a38038061094a833981016040819052602c9160a7565b6033336057565b600280546001600160a01b0319166001600160a01b039290921691909117905560d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121560b857600080fd5b81516001600160a01b038116811460ce57600080fd5b9392505050565b610866806100e46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638cb8ecec11610081578063da8c229e1161005b578063da8c229e14610201578063e0dba60f14610224578063f2fde38b1461023757600080fd5b80638cb8ecec146101ad5780638da5cb5b146101c0578063cbe9e764146101de57600080fd5b80633f15457f116100b25780633f15457f1461014d5780634e543b2614610192578063715018a6146101a557600080fd5b806301670ba9146100ce57806301ffc9a7146100e3575b600080fd5b6100e16100dc366004610709565b61024a565b005b6101386100f1366004610722565b7fffffffff00000000000000000000000000000000000000000000000000000000167f01ffc9a7000000000000000000000000000000000000000000000000000000001490565b60405190151581526020015b60405180910390f35b60025461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610144565b6100e16101a0366004610794565b6102b6565b6100e161034d565b6100e16101bb3660046107af565b610361565b60005473ffffffffffffffffffffffffffffffffffffffff1661016d565b6101386101ec366004610709565b60036020526000908152604090205460ff1681565b61013861020f366004610794565b60016020526000908152604090205460ff1681565b6100e16102323660046107db565b6104ca565b6100e1610245366004610794565b61055c565b610252610613565b60405181907f1764176cfa565853ba1ded547a830a9f9bff95231ef6fd228b3ddd617577756990600090a2600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6102be610613565b6002546040517f1896f70a0000000000000000000000000000000000000000000000000000000081526000600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015290911690631896f70a90604401600060405180830381600087803b15801561033257600080fd5b505af1158015610346573d6000803e3d6000fd5b5050505050565b610355610613565b61035f6000610694565b565b3360009081526001602052604090205460ff16610405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f436f6e74726f6c6c61626c653a2043616c6c6572206973206e6f74206120636f60448201527f6e74726f6c6c657200000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008281526003602052604090205460ff161561042157600080fd5b6002546040517f06ab5923000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff8381166044830152909116906306ab5923906064016020604051808303816000875af11580156104a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c59190610817565b505050565b6104d2610613565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b610564610613565b73ffffffffffffffffffffffffffffffffffffffff8116610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103fc565b61061081610694565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561071b57600080fd5b5035919050565b60006020828403121561073457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461076457600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461078f57600080fd5b919050565b6000602082840312156107a657600080fd5b6107648261076b565b600080604083850312156107c257600080fd5b823591506107d26020840161076b565b90509250929050565b600080604083850312156107ee57600080fd5b6107f78361076b565b91506020830135801515811461080c57600080fd5b809150509250929050565b60006020828403121561082957600080fd5b505191905056fea2646970667358221220d586df5722b30dbcdbdeaf0de2399e97712ea2f02eb2232f7b7f9c9453e198cc64736f6c634300081a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638cb8ecec11610081578063da8c229e1161005b578063da8c229e14610201578063e0dba60f14610224578063f2fde38b1461023757600080fd5b80638cb8ecec146101ad5780638da5cb5b146101c0578063cbe9e764146101de57600080fd5b80633f15457f116100b25780633f15457f1461014d5780634e543b2614610192578063715018a6146101a557600080fd5b806301670ba9146100ce57806301ffc9a7146100e3575b600080fd5b6100e16100dc366004610709565b61024a565b005b6101386100f1366004610722565b7fffffffff00000000000000000000000000000000000000000000000000000000167f01ffc9a7000000000000000000000000000000000000000000000000000000001490565b60405190151581526020015b60405180910390f35b60025461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610144565b6100e16101a0366004610794565b6102b6565b6100e161034d565b6100e16101bb3660046107af565b610361565b60005473ffffffffffffffffffffffffffffffffffffffff1661016d565b6101386101ec366004610709565b60036020526000908152604090205460ff1681565b61013861020f366004610794565b60016020526000908152604090205460ff1681565b6100e16102323660046107db565b6104ca565b6100e1610245366004610794565b61055c565b610252610613565b60405181907f1764176cfa565853ba1ded547a830a9f9bff95231ef6fd228b3ddd617577756990600090a2600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6102be610613565b6002546040517f1896f70a0000000000000000000000000000000000000000000000000000000081526000600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015290911690631896f70a90604401600060405180830381600087803b15801561033257600080fd5b505af1158015610346573d6000803e3d6000fd5b5050505050565b610355610613565b61035f6000610694565b565b3360009081526001602052604090205460ff16610405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f436f6e74726f6c6c61626c653a2043616c6c6572206973206e6f74206120636f60448201527f6e74726f6c6c657200000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008281526003602052604090205460ff161561042157600080fd5b6002546040517f06ab5923000000000000000000000000000000000000000000000000000000008152600060048201526024810184905273ffffffffffffffffffffffffffffffffffffffff8381166044830152909116906306ab5923906064016020604051808303816000875af11580156104a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c59190610817565b505050565b6104d2610613565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b610564610613565b73ffffffffffffffffffffffffffffffffffffffff8116610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103fc565b61061081610694565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fc565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561071b57600080fd5b5035919050565b60006020828403121561073457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461076457600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461078f57600080fd5b919050565b6000602082840312156107a657600080fd5b6107648261076b565b600080604083850312156107c257600080fd5b823591506107d26020840161076b565b90509250929050565b600080604083850312156107ee57600080fd5b6107f78361076b565b91506020830135801515811461080c57600080fd5b809150509250929050565b60006020828403121561082957600080fd5b505191905056fea2646970667358221220d586df5722b30dbcdbdeaf0de2399e97712ea2f02eb2232f7b7f9c9453e198cc64736f6c634300081a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {},
  "inputSourceName": "project/contracts/root/Root.sol",
  "buildInfoId": "solc-0_8_26-f05bdccb11f2cf6df865fc6a27a95b5ace6017ea"
}