{
    "_format": "hh-sol-artifact-1",
    "contractName": "ENSRegistry",
    "sourceName": "@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol",
    "abi": [
        {
            "inputs": [],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "approved",
                    "type": "bool"
                }
            ],
            "name": "ApprovalForAll",
            "type": "event"
        },
        {
            "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": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "operator",
                    "type": "address"
                }
            ],
            "name": "isApprovedForAll",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "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": "recordExists",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "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": "address",
                    "name": "operator",
                    "type": "address"
                },
                {
                    "internalType": "bool",
                    "name": "approved",
                    "type": "bool"
                }
            ],
            "name": "setApprovalForAll",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "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": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "resolver",
                    "type": "address"
                },
                {
                    "internalType": "uint64",
                    "name": "ttl",
                    "type": "uint64"
                }
            ],
            "name": "setRecord",
            "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": "bytes32",
                    "name": "label",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "setSubnodeOwner",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "node",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "label",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "resolver",
                    "type": "address"
                },
                {
                    "internalType": "uint64",
                    "name": "ttl",
                    "type": "uint64"
                }
            ],
            "name": "setSubnodeRecord",
            "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": "ttl",
            "outputs": [
                {
                    "internalType": "uint64",
                    "name": "",
                    "type": "uint64"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b5060008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb580546001600160a01b031916331790556109ab806100596000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101a25780635ef2c7f0146101b5578063a22cb465146101c8578063cf408823146101db578063e985e9c5146101ee578063f79fe5381461023a57600080fd5b80630178b8bf146100b957806302571be3146100fb57806306ab59231461010e57806314ab90381461012f57806316a25cbd146101445780631896f70a1461018f575b600080fd5b6100e56100c7366004610787565b6000908152602081905260409020600101546001600160a01b031690565b6040516100f291906107a0565b60405180910390f35b6100e5610109366004610787565b610265565b61012161011c3660046107d0565b610293565b6040519081526020016100f2565b61014261013d36600461081c565b61035c565b005b610177610152366004610787565b600090815260208190526040902060010154600160a01b90046001600160401b031690565b6040516001600160401b0390911681526020016100f2565b61014261019d366004610848565b61042d565b6101426101b0366004610848565b6104ec565b6101426101c336600461086b565b610588565b6101426101d63660046108c2565b6105aa565b6101426101e93660046108fe565b610616565b61022a6101fc36600461094b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b60405190151581526020016100f2565b61022a610248366004610787565b6000908152602081905260409020546001600160a01b0316151590565b6000818152602081905260408120546001600160a01b031630810361028d5750600092915050565b92915050565b60008381526020819052604081205484906001600160a01b0316338114806102de57506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6102e757600080fd5b604080516020808201899052818301889052825180830384018152606090920190925280519101206103198186610631565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e828760405161034a91906107a0565b60405180910390a39695505050505050565b60008281526020819052604090205482906001600160a01b0316338114806103a757506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6103b057600080fd5b6040516001600160401b038416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a2505060009182526020829052604090912060010180546001600160401b03909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b60008281526020819052604090205482906001600160a01b03163381148061047857506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b61048157600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516104b191906107a0565b60405180910390a2505060009182526020829052604090912060010180546001600160a01b0319166001600160a01b03909216919091179055565b60008281526020819052604090205482906001600160a01b03163381148061053757506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b61054057600080fd5b61054a8484610631565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161057a91906107a0565b60405180910390a250505050565b6000610595868686610293565b90506105a281848461065f565b505050505050565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61062084846104ec565b61062b84838361065f565b50505050565b60009182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000838152602081905260409020600101546001600160a01b038381169116146106e8576000838152602081905260409081902060010180546001600160a01b0319166001600160a01b0385161790555183907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0906106df9085906107a0565b60405180910390a25b6000838152602081905260409020600101546001600160401b03828116600160a01b90920416146107825760008381526020818152604091829020600101805467ffffffffffffffff60a01b1916600160a01b6001600160401b03861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b60006020828403121561079957600080fd5b5035919050565b6001600160a01b0391909116815260200190565b80356001600160a01b03811681146107cb57600080fd5b919050565b6000806000606084860312156107e557600080fd5b83359250602084013591506107fc604085016107b4565b90509250925092565b80356001600160401b03811681146107cb57600080fd5b6000806040838503121561082f57600080fd5b8235915061083f60208401610805565b90509250929050565b6000806040838503121561085b57600080fd5b8235915061083f602084016107b4565b600080600080600060a0868803121561088357600080fd5b853594506020860135935061089a604087016107b4565b92506108a8606087016107b4565b91506108b660808701610805565b90509295509295909350565b600080604083850312156108d557600080fd5b6108de836107b4565b9150602083013580151581146108f357600080fd5b809150509250929050565b6000806000806080858703121561091457600080fd5b84359350610924602086016107b4565b9250610932604086016107b4565b915061094060608601610805565b905092959194509250565b6000806040838503121561095e57600080fd5b610967836107b4565b915061083f602084016107b456fea2646970667358221220128e4def5d1bd8d533816510c3e9b0139bba15551651cb9d591283c4560851af64736f6c634300080d0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101a25780635ef2c7f0146101b5578063a22cb465146101c8578063cf408823146101db578063e985e9c5146101ee578063f79fe5381461023a57600080fd5b80630178b8bf146100b957806302571be3146100fb57806306ab59231461010e57806314ab90381461012f57806316a25cbd146101445780631896f70a1461018f575b600080fd5b6100e56100c7366004610787565b6000908152602081905260409020600101546001600160a01b031690565b6040516100f291906107a0565b60405180910390f35b6100e5610109366004610787565b610265565b61012161011c3660046107d0565b610293565b6040519081526020016100f2565b61014261013d36600461081c565b61035c565b005b610177610152366004610787565b600090815260208190526040902060010154600160a01b90046001600160401b031690565b6040516001600160401b0390911681526020016100f2565b61014261019d366004610848565b61042d565b6101426101b0366004610848565b6104ec565b6101426101c336600461086b565b610588565b6101426101d63660046108c2565b6105aa565b6101426101e93660046108fe565b610616565b61022a6101fc36600461094b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b60405190151581526020016100f2565b61022a610248366004610787565b6000908152602081905260409020546001600160a01b0316151590565b6000818152602081905260408120546001600160a01b031630810361028d5750600092915050565b92915050565b60008381526020819052604081205484906001600160a01b0316338114806102de57506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6102e757600080fd5b604080516020808201899052818301889052825180830384018152606090920190925280519101206103198186610631565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e828760405161034a91906107a0565b60405180910390a39695505050505050565b60008281526020819052604090205482906001600160a01b0316338114806103a757506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6103b057600080fd5b6040516001600160401b038416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a2505060009182526020829052604090912060010180546001600160401b03909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b60008281526020819052604090205482906001600160a01b03163381148061047857506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b61048157600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516104b191906107a0565b60405180910390a2505060009182526020829052604090912060010180546001600160a01b0319166001600160a01b03909216919091179055565b60008281526020819052604090205482906001600160a01b03163381148061053757506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b61054057600080fd5b61054a8484610631565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161057a91906107a0565b60405180910390a250505050565b6000610595868686610293565b90506105a281848461065f565b505050505050565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61062084846104ec565b61062b84838361065f565b50505050565b60009182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000838152602081905260409020600101546001600160a01b038381169116146106e8576000838152602081905260409081902060010180546001600160a01b0319166001600160a01b0385161790555183907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0906106df9085906107a0565b60405180910390a25b6000838152602081905260409020600101546001600160401b03828116600160a01b90920416146107825760008381526020818152604091829020600101805467ffffffffffffffff60a01b1916600160a01b6001600160401b03861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b60006020828403121561079957600080fd5b5035919050565b6001600160a01b0391909116815260200190565b80356001600160a01b03811681146107cb57600080fd5b919050565b6000806000606084860312156107e557600080fd5b83359250602084013591506107fc604085016107b4565b90509250925092565b80356001600160401b03811681146107cb57600080fd5b6000806040838503121561082f57600080fd5b8235915061083f60208401610805565b90509250929050565b6000806040838503121561085b57600080fd5b8235915061083f602084016107b4565b600080600080600060a0868803121561088357600080fd5b853594506020860135935061089a604087016107b4565b92506108a8606087016107b4565b91506108b660808701610805565b90509295509295909350565b600080604083850312156108d557600080fd5b6108de836107b4565b9150602083013580151581146108f357600080fd5b809150509250929050565b6000806000806080858703121561091457600080fd5b84359350610924602086016107b4565b9250610932604086016107b4565b915061094060608601610805565b905092959194509250565b6000806040838503121561095e57600080fd5b610967836107b4565b915061083f602084016107b456fea2646970667358221220128e4def5d1bd8d533816510c3e9b0139bba15551651cb9d591283c4560851af64736f6c634300080d0033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
