{
    "contractName": "ENSRegistry",
    "abi": [
        {
            "inputs": [],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "label",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "NewOwner",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "resolver",
                    "type": "address"
                }
            ],
            "name": "NewResolver",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint64",
                    "name": "ttl",
                    "type": "uint64"
                }
            ],
            "name": "NewTTL",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "Transfer",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "setOwner",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "label",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "setSubnodeOwner",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "resolver",
                    "type": "address"
                }
            ],
            "name": "setResolver",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint64",
                    "name": "ttl",
                    "type": "uint64"
                }
            ],
            "name": "setTTL",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                }
            ],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                }
            ],
            "name": "resolver",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                }
            ],
            "name": "ttl",
            "outputs": [
                {
                    "internalType": "uint64",
                    "name": "",
                    "type": "uint64"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        }
    ],
    "devdoc": {
        "kind": "dev",
        "methods": {
            "constructor": {
                "details": "Constructs a new ENS registrar."
            },
            "owner(bytes32)": {
                "details": "Returns the address that owns the specified node.",
                "params": {
                    "node": "The specified node."
                },
                "returns": {
                    "_0": "address of the owner."
                }
            },
            "resolver(bytes32)": {
                "details": "Returns the address of the resolver for the specified node.",
                "params": {
                    "node": "The specified node."
                },
                "returns": {
                    "_0": "address of the resolver."
                }
            },
            "setOwner(bytes32,address)": {
                "details": "Transfers ownership of a node to a new address.",
                "params": {
                    "node": "The node to transfer ownership of.",
                    "owner": "The address of the new owner."
                }
            },
            "setResolver(bytes32,address)": {
                "details": "Sets the resolver address for the specified node.",
                "params": {
                    "node": "The node to update.",
                    "resolver": "The address of the resolver."
                }
            },
            "setSubnodeOwner(bytes32,bytes32,address)": {
                "details": "Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.",
                "params": {
                    "label": "The hash of the label specifying the subnode.",
                    "node": "The parent node.",
                    "owner": "The address of the new owner."
                }
            },
            "setTTL(bytes32,uint64)": {
                "details": "Sets the TTL for the specified node.",
                "params": {
                    "node": "The node to update.",
                    "ttl": "The TTL in seconds."
                }
            },
            "ttl(bytes32)": {
                "details": "Returns the TTL of a node, and any records associated with it.",
                "params": {
                    "node": "The specified node."
                },
                "returns": {
                    "_0": "ttl of the node."
                }
            }
        },
        "version": 1
    },
    "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
    }
}