From 94c08147fc4db0deb3c2dde216cad418e913d8d4 Mon Sep 17 00:00:00 2001 From: Chance Hudson Date: Sat, 20 Nov 2021 11:17:54 -0600 Subject: [PATCH 1/3] chore: remove DS_Store --- .gitignore | 2 +- src/.DS_Store | Bin 6148 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 src/.DS_Store diff --git a/.gitignore b/.gitignore index f3b2b19..b488296 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ node_modules dist yarn-error.log -*.DS_Store +.DS_Store diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index d2ef39d1cf8873ebd1f287d959bdc3609d822aff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5T30SQbZ_<;4wacU=MnZA$@{8K&7q3LVikPJqJ8_^$C0j-@teB?l(J2 znvfJciOLMjew*2u-O0CMH$y}w+%6|XV@gMzb{O zc&p(zGQfK`;vK`z-DB_S{hP##B3nz!S10{mSrJ9^w3uVmI}P72rq3U@`#hK5^jtqQ zR}L^89oM<7D5r!jX$#AWQYxR~O`aAxe{J{z>2NoaCe3-GoAzik^Uc}o%jdPtyb+%j zyNvri+L^v#0TpFH8BhlP2m^d#LcAkEZIuCKKpChR;Pb(UG6oJSL3?zdu_XX-2(uOR zxt8D<-(lde62u6^NGMQ3jVm#Xgv0JTzrbN7DB)yW@nPJ`##JcBu8#SA>rN&R)K(c# z2HFf9$m5vr|LOkvza6Ac%78NPuNW}HD2_tBlDk_wFUNPS550r3uwNxuhoEDxV)*h^ cd=9k&yU!h9;II;e1)@I!mIiH Date: Sat, 20 Nov 2021 11:24:16 -0600 Subject: [PATCH 2/3] refactor: add abi json files to repo --- src/ABI/ENS.json | 3680 +++++++++++++++++++ src/ABI/ReverseRegistrar.json | 6399 +++++++++++++++++++++++++++++++++ src/index.js | 4 +- 3 files changed, 10081 insertions(+), 2 deletions(-) create mode 100644 src/ABI/ENS.json create mode 100644 src/ABI/ReverseRegistrar.json diff --git a/src/ABI/ENS.json b/src/ABI/ENS.json new file mode 100644 index 0000000..0bd9533 --- /dev/null +++ b/src/ABI/ENS.json @@ -0,0 +1,3680 @@ +{ + "contractName": "ENS", + "abi": [ + { + "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" + }, + { + "constant": false, + "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": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "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": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "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" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "setResolver", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setTTL", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "resolver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "ttl", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "recordExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"recordExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/ens/contracts/ENS.sol\":\"ENS\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzz-raw://b3de1882a4a1a1b13c27ee6dc04cc58c34ac392c80cad507de2cdfa8c02712fe\",\"dweb:/ipfs/QmeKcaBF8QdJjXiqFrPJkAtK3et5kUL8XJrnHjwhAThRMT\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.4.24;\n\ninterface ENS {\n\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n // Logged when an operator is added or removed.\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) external;\n function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external;\n function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns(bytes32);\n function setResolver(bytes32 node, address resolver) external;\n function setOwner(bytes32 node, address owner) external;\n function setTTL(bytes32 node, uint64 ttl) external;\n function setApprovalForAll(address operator, bool approved) external;\n function owner(bytes32 node) external view returns (address);\n function resolver(bytes32 node) external view returns (address);\n function ttl(bytes32 node) external view returns (uint64);\n function recordExists(bytes32 node) external view returns (bool);\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n", + "sourcePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol", + "ast": { + "absolutePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol", + "exportedSymbols": { + "ENS": [ + 436 + ] + }, + "id": 437, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 301, + "literals": [ + "solidity", + ">=", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:25:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 436, + "linearizedBaseContracts": [ + 436 + ], + "name": "ENS", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 309, + "name": "NewOwner", + "nodeType": "EventDefinition", + "parameters": { + "id": 308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 303, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "136:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 302, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 305, + "indexed": true, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "158:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 304, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "158:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "181:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "135:60:2" + }, + "src": "121:75:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 315, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "294:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 310, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "294:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "316:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:37:2" + }, + "src": "279:52:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 321, + "name": "NewResolver", + "nodeType": "EventDefinition", + "parameters": { + "id": 320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 317, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "407:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 316, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "407:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 319, + "indexed": false, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "429:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "429:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:40:2" + }, + "src": "389:58:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 327, + "name": "NewTTL", + "nodeType": "EventDefinition", + "parameters": { + "id": 326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "511:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 322, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "511:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 325, + "indexed": false, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "533:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 324, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "533:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "510:34:2" + }, + "src": "498:47:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 335, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "624:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "624:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "indexed": true, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "647:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "647:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "indexed": false, + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "673:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 332, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "673:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "623:64:2" + }, + "src": "603:85:2" + }, + { + "body": null, + "documentation": null, + "id": 346, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setRecord", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "713:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 336, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "713:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "727:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "727:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "742:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "742:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 343, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "760:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 342, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "760:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "712:59:2" + }, + "returnParameters": { + "id": 345, + "nodeType": "ParameterList", + "parameters": [], + "src": "780:0:2" + }, + "scope": 436, + "src": "694:87:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 359, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubnodeRecord", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "812:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 347, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "812:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 350, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "826:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 349, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "826:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 352, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "841:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "841:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 354, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "856:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 356, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "874:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 355, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "874:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "811:74:2" + }, + "returnParameters": { + "id": 358, + "nodeType": "ParameterList", + "parameters": [], + "src": "894:0:2" + }, + "scope": 436, + "src": "786:109:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 370, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubnodeOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 361, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "925:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 360, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "925:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 363, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "939:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 362, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "939:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 365, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "954:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "954:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "924:44:2" + }, + "returnParameters": { + "id": 369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 368, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "986:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 367, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "986:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "985:9:2" + }, + "scope": 436, + "src": "900:95:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setResolver", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "1021:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 371, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1021:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "1035:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1035:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1020:32:2" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "1061:0:2" + }, + "scope": 436, + "src": "1000:62:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 384, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 384, + "src": "1085:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 378, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1085:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 381, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 384, + "src": "1099:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1084:29:2" + }, + "returnParameters": { + "id": 383, + "nodeType": "ParameterList", + "parameters": [], + "src": "1122:0:2" + }, + "scope": 436, + "src": "1067:56:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 391, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setTTL", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 386, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1144:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 385, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1144:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1158:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 387, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1158:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1143:26:2" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "1178:0:2" + }, + "scope": 436, + "src": "1128:51:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 398, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1211:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 395, + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1229:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1229:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1210:33:2" + }, + "returnParameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [], + "src": "1252:0:2" + }, + "scope": 436, + "src": "1184:69:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 405, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1273:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 399, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1273:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:14:2" + }, + "returnParameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1310:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1310:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1309:9:2" + }, + "scope": 436, + "src": "1258:61:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 412, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "resolver", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 407, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1342:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 406, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1342:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1341:14:2" + }, + "returnParameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1379:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1379:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1378:9:2" + }, + "scope": 436, + "src": "1324:64:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 419, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ttl", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1406:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 413, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1406:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1405:14:2" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1443:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 416, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1443:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1442:8:2" + }, + "scope": 436, + "src": "1393:58:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 426, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "recordExists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 421, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "1478:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 420, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1478:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1477:14:2" + }, + "returnParameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 424, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "1515:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 423, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1515:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1514:6:2" + }, + "scope": 436, + "src": "1456:65:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 435, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "1552:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1552:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 430, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "1567:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1551:33:2" + }, + "returnParameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "1608:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 432, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1608:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1607:6:2" + }, + "scope": 436, + "src": "1526:88:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 437, + "src": "27:1589:2" + } + ], + "src": "0:1617:2" + }, + "legacyAST": { + "absolutePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol", + "exportedSymbols": { + "ENS": [ + 436 + ] + }, + "id": 437, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 301, + "literals": [ + "solidity", + ">=", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:25:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 436, + "linearizedBaseContracts": [ + 436 + ], + "name": "ENS", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 309, + "name": "NewOwner", + "nodeType": "EventDefinition", + "parameters": { + "id": 308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 303, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "136:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 302, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "136:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 305, + "indexed": true, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "158:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 304, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "158:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 307, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "181:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "135:60:2" + }, + "src": "121:75:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 315, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "294:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 310, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "294:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "316:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "316:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:37:2" + }, + "src": "279:52:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 321, + "name": "NewResolver", + "nodeType": "EventDefinition", + "parameters": { + "id": 320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 317, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "407:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 316, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "407:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 319, + "indexed": false, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "429:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "429:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:40:2" + }, + "src": "389:58:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 327, + "name": "NewTTL", + "nodeType": "EventDefinition", + "parameters": { + "id": 326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "indexed": true, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "511:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 322, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "511:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 325, + "indexed": false, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "533:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 324, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "533:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "510:34:2" + }, + "src": "498:47:2" + }, + { + "anonymous": false, + "documentation": null, + "id": 335, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "624:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "624:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "indexed": true, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "647:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "647:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "indexed": false, + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "673:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 332, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "673:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "623:64:2" + }, + "src": "603:85:2" + }, + { + "body": null, + "documentation": null, + "id": 346, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setRecord", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 337, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "713:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 336, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "713:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "727:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "727:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 341, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "742:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "742:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 343, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "760:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 342, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "760:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "712:59:2" + }, + "returnParameters": { + "id": 345, + "nodeType": "ParameterList", + "parameters": [], + "src": "780:0:2" + }, + "scope": 436, + "src": "694:87:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 359, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubnodeRecord", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "812:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 347, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "812:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 350, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "826:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 349, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "826:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 352, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "841:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "841:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 354, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "856:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 356, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 359, + "src": "874:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 355, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "874:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "811:74:2" + }, + "returnParameters": { + "id": 358, + "nodeType": "ParameterList", + "parameters": [], + "src": "894:0:2" + }, + "scope": 436, + "src": "786:109:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 370, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubnodeOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 361, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "925:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 360, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "925:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 363, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "939:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 362, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "939:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 365, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "954:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "954:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "924:44:2" + }, + "returnParameters": { + "id": 369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 368, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "986:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 367, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "986:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "985:9:2" + }, + "scope": 436, + "src": "900:95:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setResolver", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "1021:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 371, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1021:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "1035:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1035:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1020:32:2" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "1061:0:2" + }, + "scope": 436, + "src": "1000:62:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 384, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 384, + "src": "1085:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 378, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1085:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 381, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 384, + "src": "1099:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1084:29:2" + }, + "returnParameters": { + "id": 383, + "nodeType": "ParameterList", + "parameters": [], + "src": "1122:0:2" + }, + "scope": 436, + "src": "1067:56:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 391, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setTTL", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 386, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1144:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 385, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1144:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "name": "ttl", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1158:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 387, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1158:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1143:26:2" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "1178:0:2" + }, + "scope": 436, + "src": "1128:51:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 398, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1211:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 395, + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1229:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1229:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1210:33:2" + }, + "returnParameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [], + "src": "1252:0:2" + }, + "scope": 436, + "src": "1184:69:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 405, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1273:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 399, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1273:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:14:2" + }, + "returnParameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1310:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1310:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1309:9:2" + }, + "scope": 436, + "src": "1258:61:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 412, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "resolver", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 407, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1342:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 406, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1342:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1341:14:2" + }, + "returnParameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1379:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1379:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1378:9:2" + }, + "scope": 436, + "src": "1324:64:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 419, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ttl", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1406:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 413, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1406:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1405:14:2" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1443:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 416, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1443:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1442:8:2" + }, + "scope": 436, + "src": "1393:58:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 426, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "recordExists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 421, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "1478:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 420, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1478:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1477:14:2" + }, + "returnParameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 424, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "1515:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 423, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1515:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1514:6:2" + }, + "scope": 436, + "src": "1456:65:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 435, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "1552:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1552:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 430, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "1567:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1567:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1551:33:2" + }, + "returnParameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 435, + "src": "1608:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 432, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1608:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1607:6:2" + }, + "scope": 436, + "src": "1526:88:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 437, + "src": "27:1589:2" + } + ], + "src": "0:1617:2" + }, + "compiler": { + "name": "solc", + "version": "0.5.16+commit.9c3226ce.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.0", + "updatedAt": "2020-06-23T14:47:43.690Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/ABI/ReverseRegistrar.json b/src/ABI/ReverseRegistrar.json new file mode 100644 index 0000000..2d95e46 --- /dev/null +++ b/src/ABI/ReverseRegistrar.json @@ -0,0 +1,6399 @@ +{ + "contractName": "ReverseRegistrar", + "abi": [ + { + "inputs": [ + { + "internalType": "contract ENS", + "name": "ensAddr", + "type": "address" + }, + { + "internalType": "contract NameResolver", + "name": "resolverAddr", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "ADDR_REVERSE_NODE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "defaultResolver", + "outputs": [ + { + "internalType": "contract NameResolver", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ens", + "outputs": [ + { + "internalType": "contract ENS", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "claim", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "claimWithResolver", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "setName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + } + ], + "name": "node", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ENS\",\"name\":\"ensAddr\",\"type\":\"address\"},{\"internalType\":\"contract NameResolver\",\"name\":\"resolverAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"ADDR_REVERSE_NODE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"claimWithResolver\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultResolver\",\"outputs\":[{\"internalType\":\"contract NameResolver\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"internalType\":\"contract ENS\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"node\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"claim(address)\":{\"details\":\"Transfers ownership of the reverse ENS record associated with the calling account.\",\"params\":{\"owner\":\"The address to set as the owner of the reverse record in ENS.\"},\"return\":\"The ENS node hash of the reverse record.\"},\"claimWithResolver(address,address)\":{\"details\":\"Transfers ownership of the reverse ENS record associated with the calling account.\",\"params\":{\"owner\":\"The address to set as the owner of the reverse record in ENS.\",\"resolver\":\"The address of the resolver to set; 0 to leave unchanged.\"},\"return\":\"The ENS node hash of the reverse record.\"},\"constructor\":{\"details\":\"Constructor\",\"params\":{\"ensAddr\":\"The address of the ENS registry.\",\"resolverAddr\":\"The address of the default reverse resolver.\"}},\"node(address)\":{\"details\":\"Returns the node hash for a given account's reverse records.\",\"params\":{\"addr\":\"The address to hash\"},\"return\":\"The ENS node hash.\"},\"setName(string)\":{\"details\":\"Sets the `name()` record for the reverse ENS record associated with the calling account. First updates the resolver to the default reverse resolver if necessary.\",\"params\":{\"name\":\"The name to set for this address.\"},\"return\":\"The ENS node hash of the reverse record.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/ens/contracts/ReverseRegistrar.sol\":\"ReverseRegistrar\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzz-raw://b3de1882a4a1a1b13c27ee6dc04cc58c34ac392c80cad507de2cdfa8c02712fe\",\"dweb:/ipfs/QmeKcaBF8QdJjXiqFrPJkAtK3et5kUL8XJrnHjwhAThRMT\"]},\"/Users/makoto/work/ens/ens/contracts/ReverseRegistrar.sol\":{\"keccak256\":\"0x9c9d6e34ff144e8df8e7ae290a5c9a28437bf0f97f0fcf1cdce371260914c3ba\",\"urls\":[\"bzz-raw://433e7a35db75f7156263a40786522cf20ad374df6fd2ad8a872e62520334116e\",\"dweb:/ipfs/Qmf6TX1oXrAT8yUET77DbpWRM8jYxtr3NCCMypwVVZTfLW\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50604051610e11380380610e118339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be37f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561016657600080fd5b505afa15801561017a573d6000803e3d6000fd5b505050506040513d602081101561019057600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610293578073ffffffffffffffffffffffffffffffffffffffff16631e83409a336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b505050506040513d602081101561028057600080fd5b8101908080519060200190929190505050505b505050610b6c806102a56000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637cf8a2eb1161005b5780637cf8a2eb1461019c578063828eab0e146101ba578063bffbe61c14610204578063c47f00271461025c5761007d565b80630f5a5466146100825780631e83409a146100fa5780633f15457f14610152575b600080fd5b6100e46004803603604081101561009857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061032b565b6040518082815260200191505060405180910390f35b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108b0565b6040518082815260200191505060405180910390f35b61015a6108c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a46108e9565b6040518082815260200191505060405180910390f35b6101c2610910565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102466004803603602081101561021a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610936565b6040518082815260200191505060405180910390f35b6103156004803603602081101561027257600080fd5b810190808035906020019064010000000081111561028f57600080fd5b8201836020820111156102a157600080fd5b803590602001918460018302840111640100000000831117156102c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610999565b6040518082815260200191505060405180910390f35b60008061033733610acd565b905060007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b82604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561040357600080fd5b505afa158015610417573d6000803e3d6000fd5b505050506040513d602081101561042d57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561055557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104ea57600080fd5b505afa1580156104fe573d6000803e3d6000fd5b505050506040513d602081101561051457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610761573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a0576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561066057600080fd5b505af1158015610674573d6000803e3d6000fd5b505050506040513d602081101561068a57600080fd5b8101908080519060200190929190505050503090505b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561074857600080fd5b505af115801561075c573d6000803e3d6000fd5b505050505b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a4576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561086757600080fd5b505af115801561087b573d6000803e3d6000fd5b505050506040513d602081101561089157600080fd5b8101908080519060200190929190505050505b81935050505092915050565b60006108bd82600061032b565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b61096583610acd565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b6000806109c830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661032b565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a5f578082015181840152602081019050610a44565b50505050905090810190601f168015610a8c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610aac57600080fd5b505af1158015610ac0573d6000803e3d6000fd5b5050505080915050919050565b60007f303132333435363738396162636465660000000000000000000000000000000060285b6000811115610b295760018103905081600f85161a815360108404935060018103905081600f85161a8153601084049350610af3565b50602860002091505091905056fea265627a7a723158203c3a1e43dd29f27c43ee396cdbe4b2cee2e5b8b0cee99aecdde9c3342eea702264736f6c63430005100032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80637cf8a2eb1161005b5780637cf8a2eb1461019c578063828eab0e146101ba578063bffbe61c14610204578063c47f00271461025c5761007d565b80630f5a5466146100825780631e83409a146100fa5780633f15457f14610152575b600080fd5b6100e46004803603604081101561009857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061032b565b6040518082815260200191505060405180910390f35b61013c6004803603602081101561011057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108b0565b6040518082815260200191505060405180910390f35b61015a6108c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a46108e9565b6040518082815260200191505060405180910390f35b6101c2610910565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102466004803603602081101561021a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610936565b6040518082815260200191505060405180910390f35b6103156004803603602081101561027257600080fd5b810190808035906020019064010000000081111561028f57600080fd5b8201836020820111156102a157600080fd5b803590602001918460018302840111640100000000831117156102c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610999565b6040518082815260200191505060405180910390f35b60008061033733610acd565b905060007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b82604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561040357600080fd5b505afa158015610417573d6000803e3d6000fd5b505050506040513d602081101561042d57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561055557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104ea57600080fd5b505afa1580156104fe573d6000803e3d6000fd5b505050506040513d602081101561051457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610761573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106a0576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561066057600080fd5b505af1158015610674573d6000803e3d6000fd5b505050506040513d602081101561068a57600080fd5b8101908080519060200190929190505050503090505b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a83876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561074857600080fd5b505af115801561075c573d6000803e3d6000fd5b505050505b8573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a4576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59237f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b85896040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b15801561086757600080fd5b505af115801561087b573d6000803e3d6000fd5b505050506040513d602081101561089157600080fd5b8101908080519060200190929190505050505b81935050505092915050565b60006108bd82600061032b565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b81565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260001b61096583610acd565b6040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b6000806109c830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661032b565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637737221382856040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a5f578082015181840152602081019050610a44565b50505050905090810190601f168015610a8c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610aac57600080fd5b505af1158015610ac0573d6000803e3d6000fd5b5050505080915050919050565b60007f303132333435363738396162636465660000000000000000000000000000000060285b6000811115610b295760018103905081600f85161a815360108404935060018103905081600f85161a8153601084049350610af3565b50602860002091505091905056fea265627a7a723158203c3a1e43dd29f27c43ee396cdbe4b2cee2e5b8b0cee99aecdde9c3342eea702264736f6c63430005100032", + "sourceMap": "136:4188:9:-;;;546:391;8:9:-1;5:2;;;30:1;27;20:12;5:2;546:391:9;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;546:391:9;;;;;;;;;;;;;;;;;;;;;;;;;621:7;615:3;;:13;;;;;;;;;;;;;;;;;;656:12;638:15;;:30;;;;;;;;;;;;;;;;;;745:29;794:3;;;;;;;;;;;:9;;;244:66;804:17;;794:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;794:28:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;794:28:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;794:28:9;;;;;;;;;;;;;;;;745:78;;870:3;837:37;;845:12;837:37;;;833:98;;890:12;:18;;;909:10;890:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;890:30:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;890:30:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;890:30:9;;;;;;;;;;;;;;;;;833:98;546:391;;;136:4188;;;;;;", + "deployedSourceMap": "136:4188:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;136:4188:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1669:871;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1669:871:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1204:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1204:117:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;317:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;200:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;337:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3245:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3245:150:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2859:218;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2859:218:9;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2859:218:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2859:218:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2859:218:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2859:218:9;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1669:871;1745:7;1764:13;1780:26;1795:10;1780:14;:26::i;:::-;1764:42;;1816:12;244:66;1858:17;;1877:5;1841:42;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1841:42:9;;;1831:53;;;;;;1816:68;;1894:20;1917:3;;;;;;;;;;;:9;;;1927:4;1917:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1917:15:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1917:15:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1917:15:9;;;;;;;;;;;;;;;;1894:38;;2010:3;1990:24;;:8;:24;;;;:58;;;;;2030:3;;;;;;;;;;;:12;;;2043:4;2030:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2030:18:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2030:18:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2030:18:9;;;;;;;;;;;;;;;;2018:30;;:8;:30;;;;1990:58;1986:372;;;2157:4;2133:29;;:12;:29;;;2129:174;;2182:3;;;;;;;;;;;:19;;;244:66;2202:17;;2221:5;2236:4;2182:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2182:60:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2182:60:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2182:60:9;;;;;;;;;;;;;;;;;2283:4;2260:28;;2129:174;2316:3;;;;;;;;;;;:15;;;2332:4;2338:8;2316:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2316:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2316:31:9;;;;1986:372;2428:5;2412:21;;:12;:21;;;2408:104;;2449:3;;;;;;;;;;;:19;;;244:66;2469:17;;2488:5;2495;2449:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2449:52:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2449:52:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2449:52:9;;;;;;;;;;;;;;;;;2408:104;2529:4;2522:11;;;;;1669:871;;;;:::o;1204:117::-;1250:7;1276:38;1294:5;1309:3;1276:17;:38::i;:::-;1269:45;;1204:117;;;:::o;317:14::-;;;;;;;;;;;;;:::o;200:110::-;244:66;200:110;;;:::o;337:35::-;;;;;;;;;;;;;:::o;3245:150::-;3294:7;244:66;3347:17;;3366:20;3381:4;3366:14;:20::i;:::-;3330:57;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3330:57:9;;;3320:68;;;;;;3313:75;;3245:150;;;:::o;2859:218::-;2912:7;2931:12;2946:58;2972:4;2987:15;;;;;;;;;;;2946:17;:58::i;:::-;2931:73;;3014:15;;;;;;;;;;;:23;;;3038:4;3044;3014:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3014:35:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3014:35:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3014:35:9;;;;3066:4;3059:11;;;2859:218;;;:::o;3696:626::-;3756:11;3885:66;3980:2;3965:304;3991:1;3988;3985:8;3965:304;;;4028:1;4025;4021:9;4016:14;;4079:6;4073:3;4067:4;4063:14;4058:28;4055:1;4047:40;4122:4;4116;4112:15;4104:23;;4156:1;4153;4149:9;4144:14;;4207:6;4201:3;4195:4;4191:14;4186:28;4183:1;4175:40;4250:4;4244;4240:15;4232:23;;3965:304;;;3969:15;4303:2;4300:1;4290:16;4283:23;;3857:459;;;;:::o", + "source": "pragma solidity ^0.5.0;\n\nimport \"./ENS.sol\";\n\ncontract NameResolver {\n function setName(bytes32 node, string memory name) public;\n}\n\ncontract ReverseRegistrar {\n // namehash('addr.reverse')\n bytes32 public constant ADDR_REVERSE_NODE = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;\n\n ENS public ens;\n NameResolver public defaultResolver;\n\n /**\n * @dev Constructor\n * @param ensAddr The address of the ENS registry.\n * @param resolverAddr The address of the default reverse resolver.\n */\n constructor(ENS ensAddr, NameResolver resolverAddr) public {\n ens = ensAddr;\n defaultResolver = resolverAddr;\n\n // Assign ownership of the reverse record to our deployer\n ReverseRegistrar oldRegistrar = ReverseRegistrar(ens.owner(ADDR_REVERSE_NODE));\n if (address(oldRegistrar) != address(0x0)) {\n oldRegistrar.claim(msg.sender);\n }\n }\n\n /**\n * @dev Transfers ownership of the reverse ENS record associated with the\n * calling account.\n * @param owner The address to set as the owner of the reverse record in ENS.\n * @return The ENS node hash of the reverse record.\n */\n function claim(address owner) public returns (bytes32) {\n return claimWithResolver(owner, address(0x0));\n }\n\n /**\n * @dev Transfers ownership of the reverse ENS record associated with the\n * calling account.\n * @param owner The address to set as the owner of the reverse record in ENS.\n * @param resolver The address of the resolver to set; 0 to leave unchanged.\n * @return The ENS node hash of the reverse record.\n */\n function claimWithResolver(address owner, address resolver) public returns (bytes32) {\n bytes32 label = sha3HexAddress(msg.sender);\n bytes32 node = keccak256(abi.encodePacked(ADDR_REVERSE_NODE, label));\n address currentOwner = ens.owner(node);\n\n // Update the resolver if required\n if (resolver != address(0x0) && resolver != ens.resolver(node)) {\n // Transfer the name to us first if it's not already\n if (currentOwner != address(this)) {\n ens.setSubnodeOwner(ADDR_REVERSE_NODE, label, address(this));\n currentOwner = address(this);\n }\n ens.setResolver(node, resolver);\n }\n\n // Update the owner if required\n if (currentOwner != owner) {\n ens.setSubnodeOwner(ADDR_REVERSE_NODE, label, owner);\n }\n\n return node;\n }\n\n /**\n * @dev Sets the `name()` record for the reverse ENS record associated with\n * the calling account. First updates the resolver to the default reverse\n * resolver if necessary.\n * @param name The name to set for this address.\n * @return The ENS node hash of the reverse record.\n */\n function setName(string memory name) public returns (bytes32) {\n bytes32 node = claimWithResolver(address(this), address(defaultResolver));\n defaultResolver.setName(node, name);\n return node;\n }\n\n /**\n * @dev Returns the node hash for a given account's reverse records.\n * @param addr The address to hash\n * @return The ENS node hash.\n */\n function node(address addr) public pure returns (bytes32) {\n return keccak256(abi.encodePacked(ADDR_REVERSE_NODE, sha3HexAddress(addr)));\n }\n\n /**\n * @dev An optimised function to compute the sha3 of the lower-case\n * hexadecimal representation of an Ethereum address.\n * @param addr The address to hash\n * @return The SHA3 hash of the lower-case hexadecimal encoding of the\n * input address.\n */\n function sha3HexAddress(address addr) private pure returns (bytes32 ret) {\n addr;\n ret; // Stop warning us about unused variables\n assembly {\n let lookup := 0x3031323334353637383961626364656600000000000000000000000000000000\n\n for { let i := 40 } gt(i, 0) { } {\n i := sub(i, 1)\n mstore8(i, byte(and(addr, 0xf), lookup))\n addr := div(addr, 0x10)\n i := sub(i, 1)\n mstore8(i, byte(and(addr, 0xf), lookup))\n addr := div(addr, 0x10)\n }\n\n ret := keccak256(0, 40)\n }\n }\n}\n", + "sourcePath": "/Users/makoto/work/ens/ens/contracts/ReverseRegistrar.sol", + "ast": { + "absolutePath": "/Users/makoto/work/ens/ens/contracts/ReverseRegistrar.sol", + "exportedSymbols": { + "NameResolver": [ + 2738 + ], + "ReverseRegistrar": [ + 2954 + ] + }, + "id": 2955, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2729, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "absolutePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol", + "file": "./ENS.sol", + "id": 2730, + "nodeType": "ImportDirective", + "scope": 2955, + "sourceUnit": 437, + "src": "25:19:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 2738, + "linearizedBaseContracts": [ + 2738 + ], + "name": "NameResolver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2737, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setName", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2732, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "91:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2731, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "91:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2734, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "105:18:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2733, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "105:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "90:34:9" + }, + "returnParameters": { + "id": 2736, + "nodeType": "ParameterList", + "parameters": [], + "src": "131:0:9" + }, + "scope": 2738, + "src": "74:58:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2955, + "src": "46:88:9" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2954, + "linearizedBaseContracts": [ + 2954 + ], + "name": "ReverseRegistrar", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2741, + "name": "ADDR_REVERSE_NODE", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "200:110:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2739, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "200:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307839316431373737373831383834643033613637353761383033393936653338646532613432393637666233376565616361373237323932373130323561396532", + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "244:66:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65955458610802586644366824307633271870356699036341805474246458084352783133154_by_1", + "typeString": "int_const 6595...(69 digits omitted)...3154" + }, + "value": "0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 2743, + "name": "ens", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "317:14:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + }, + "typeName": { + "contractScope": null, + "id": 2742, + "name": "ENS", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 436, + "src": "317:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2745, + "name": "defaultResolver", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "337:35:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + }, + "typeName": { + "contractScope": null, + "id": 2744, + "name": "NameResolver", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2738, + "src": "337:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2785, + "nodeType": "Block", + "src": "605:332:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2752, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "615:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2753, + "name": "ensAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2747, + "src": "621:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "src": "615:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2755, + "nodeType": "ExpressionStatement", + "src": "615:13:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2756, + "name": "defaultResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "638:15:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2757, + "name": "resolverAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2749, + "src": "656:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "src": "638:30:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "id": 2759, + "nodeType": "ExpressionStatement", + "src": "638:30:9" + }, + { + "assignments": [ + 2761 + ], + "declarations": [ + { + "constant": false, + "id": 2761, + "name": "oldRegistrar", + "nodeType": "VariableDeclaration", + "scope": 2785, + "src": "745:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + }, + "typeName": { + "contractScope": null, + "id": 2760, + "name": "ReverseRegistrar", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2954, + "src": "745:16:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2768, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2765, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "804:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2763, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "794:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "794:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "794:28:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2762, + "name": "ReverseRegistrar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "777:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ReverseRegistrar_$2954_$", + "typeString": "type(contract ReverseRegistrar)" + } + }, + "id": 2767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "777:46:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "745:78:9" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2770, + "name": "oldRegistrar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "845:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "837:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "837:21:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "870:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "862:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "862:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "837:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2784, + "nodeType": "IfStatement", + "src": "833:98:9", + "trueBody": { + "id": 2783, + "nodeType": "Block", + "src": "876:55:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2779, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3032, + "src": "909:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "909:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 2776, + "name": "oldRegistrar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "890:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + }, + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 2801, + "src": "890:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address) external returns (bytes32)" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "890:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2782, + "nodeType": "ExpressionStatement", + "src": "890:30:9" + } + ] + } + } + ] + }, + "documentation": "@dev Constructor\n@param ensAddr The address of the ENS registry.\n@param resolverAddr The address of the default reverse resolver.", + "id": 2786, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2747, + "name": "ensAddr", + "nodeType": "VariableDeclaration", + "scope": 2786, + "src": "558:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + }, + "typeName": { + "contractScope": null, + "id": 2746, + "name": "ENS", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 436, + "src": "558:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2749, + "name": "resolverAddr", + "nodeType": "VariableDeclaration", + "scope": 2786, + "src": "571:25:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + }, + "typeName": { + "contractScope": null, + "id": 2748, + "name": "NameResolver", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2738, + "src": "571:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "557:40:9" + }, + "returnParameters": { + "id": 2751, + "nodeType": "ParameterList", + "parameters": [], + "src": "605:0:9" + }, + "scope": 2954, + "src": "546:391:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2800, + "nodeType": "Block", + "src": "1259:62:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2794, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "1294:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830", + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1309:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1301:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1301:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 2793, + "name": "claimWithResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "1276:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address,address) returns (bytes32)" + } + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1276:38:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2792, + "id": 2799, + "nodeType": "Return", + "src": "1269:45:9" + } + ] + }, + "documentation": "@dev Transfers ownership of the reverse ENS record associated with the\n calling account.\n@param owner The address to set as the owner of the reverse record in ENS.\n@return The ENS node hash of the reverse record.", + "id": 2801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2788, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2801, + "src": "1219:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1219:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1218:15:9" + }, + "returnParameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2791, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2801, + "src": "1250:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2790, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1250:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1249:9:9" + }, + "scope": 2954, + "src": "1204:117:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2893, + "nodeType": "Block", + "src": "1754:786:9", + "statements": [ + { + "assignments": [ + 2811 + ], + "declarations": [ + { + "constant": false, + "id": 2811, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "1764:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2810, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1764:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2816, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2813, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3032, + "src": "1795:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1795:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 2812, + "name": "sha3HexAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "1780:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address) pure returns (bytes32)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1780:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1764:42:9" + }, + { + "assignments": [ + 2818 + ], + "declarations": [ + { + "constant": false, + "id": 2818, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "1816:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1816:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2822, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "1858:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2823, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "1877:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2820, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "1841:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1841:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1841:42:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2819, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "1831:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1831:53:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1816:68:9" + }, + { + "assignments": [ + 2828 + ], + "declarations": [ + { + "constant": false, + "id": 2828, + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "1894:20:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2827, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1894:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2833, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2831, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "1927:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2829, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "1917:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "1917:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1917:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1894:38:9" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2834, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "1990:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2010:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2002:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2002:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1990:24:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "2018:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2842, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "2043:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2840, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2030:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "resolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 412, + "src": "2030:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2030:18:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2018:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1990:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2877, + "nodeType": "IfStatement", + "src": "1986:372:9", + "trueBody": { + "id": 2876, + "nodeType": "Block", + "src": "2050:308:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2846, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "2133:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2157:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2149:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2149:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2133:29:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2868, + "nodeType": "IfStatement", + "src": "2129:174:9", + "trueBody": { + "id": 2867, + "nodeType": "Block", + "src": "2164:139:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2854, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "2202:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2855, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "2221:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2857, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2236:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2228:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2851, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2182:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setSubnodeOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 370, + "src": "2182:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,address) external returns (bytes32)" + } + }, + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2182:60:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2860, + "nodeType": "ExpressionStatement", + "src": "2182:60:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2861, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "2260:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2863, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2283:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2275:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2275:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2260:28:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2866, + "nodeType": "ExpressionStatement", + "src": "2260:28:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2872, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "2332:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2873, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "2338:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2869, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2316:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setResolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 377, + "src": "2316:15:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) external" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2316:31:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2875, + "nodeType": "ExpressionStatement", + "src": "2316:31:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2878, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "2412:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2803, + "src": "2428:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2412:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2890, + "nodeType": "IfStatement", + "src": "2408:104:9", + "trueBody": { + "id": 2889, + "nodeType": "Block", + "src": "2435:77:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2884, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "2469:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2885, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "2488:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2886, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2803, + "src": "2495:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2881, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2449:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setSubnodeOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 370, + "src": "2449:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,address) external returns (bytes32)" + } + }, + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2449:52:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2888, + "nodeType": "ExpressionStatement", + "src": "2449:52:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2891, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "2529:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2809, + "id": 2892, + "nodeType": "Return", + "src": "2522:11:9" + } + ] + }, + "documentation": "@dev Transfers ownership of the reverse ENS record associated with the\n calling account.\n@param owner The address to set as the owner of the reverse record in ENS.\n@param resolver The address of the resolver to set; 0 to leave unchanged.\n@return The ENS node hash of the reverse record.", + "id": 2894, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimWithResolver", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2803, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1696:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1696:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2805, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1711:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1711:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1695:33:9" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1745:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2807, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1745:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1744:9:9" + }, + "scope": 2954, + "src": "1669:871:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2921, + "nodeType": "Block", + "src": "2921:156:9", + "statements": [ + { + "assignments": [ + 2902 + ], + "declarations": [ + { + "constant": false, + "id": 2902, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 2921, + "src": "2931:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2931:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2911, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2905, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2972:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2964:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2964:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2908, + "name": "defaultResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "2987:15:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + ], + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2979:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2979:24:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2903, + "name": "claimWithResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "2946:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address,address) returns (bytes32)" + } + }, + "id": 2910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2946:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2931:73:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2915, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2902, + "src": "3038:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2916, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "3044:4:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2912, + "name": "defaultResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "3014:15:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setName", + "nodeType": "MemberAccess", + "referencedDeclaration": 2737, + "src": "3014:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes32,string memory) external" + } + }, + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3014:35:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2918, + "nodeType": "ExpressionStatement", + "src": "3014:35:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2919, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2902, + "src": "3066:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2900, + "id": 2920, + "nodeType": "Return", + "src": "3059:11:9" + } + ] + }, + "documentation": "@dev Sets the `name()` record for the reverse ENS record associated with\nthe calling account. First updates the resolver to the default reverse\nresolver if necessary.\n@param name The name to set for this address.\n@return The ENS node hash of the reverse record.", + "id": 2922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setName", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 2922, + "src": "2876:18:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2895, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2876:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2875:20:9" + }, + "returnParameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2899, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2922, + "src": "2912:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2898, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2912:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2911:9:9" + }, + "scope": 2954, + "src": "2859:218:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2939, + "nodeType": "Block", + "src": "3303:92:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2932, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "3347:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2934, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2924, + "src": "3381:4:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2933, + "name": "sha3HexAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "3366:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address) pure returns (bytes32)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3366:20:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2930, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "3330:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3330:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3330:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2929, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "3320:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3320:68:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2928, + "id": 2938, + "nodeType": "Return", + "src": "3313:75:9" + } + ] + }, + "documentation": "@dev Returns the node hash for a given account's reverse records.\n@param addr The address to hash\n@return The ENS node hash.", + "id": 2940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "node", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2924, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 2940, + "src": "3259:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3259:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3258:14:9" + }, + "returnParameters": { + "id": 2928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2927, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2940, + "src": "3294:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3294:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3293:9:9" + }, + "scope": 2954, + "src": "3245:150:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2952, + "nodeType": "Block", + "src": "3769:553:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2947, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3779:4:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2948, + "nodeType": "ExpressionStatement", + "src": "3779:4:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2949, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "3793:3:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2950, + "nodeType": "ExpressionStatement", + "src": "3793:3:9" + }, + { + "externalReferences": [ + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4116:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4104:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4232:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4067:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4244:4:9", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 2945, + "isOffset": false, + "isSlot": false, + "src": "4283:3:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4195:4:9", + "valueSize": 1 + } + } + ], + "id": 2951, + "nodeType": "InlineAssembly", + "operations": "{\n let lookup := 0x3031323334353637383961626364656600000000000000000000000000000000\n for { let i := 40 } gt(i, 0) { }\n {\n i := sub(i, 1)\n mstore8(i, byte(and(addr, 0xf), lookup))\n addr := div(addr, 0x10)\n i := sub(i, 1)\n mstore8(i, byte(and(addr, 0xf), lookup))\n addr := div(addr, 0x10)\n }\n ret := keccak256(0, 40)\n}", + "src": "3848:468:9" + } + ] + }, + "documentation": "@dev An optimised function to compute the sha3 of the lower-case\n hexadecimal representation of an Ethereum address.\n@param addr The address to hash\n@return The SHA3 hash of the lower-case hexadecimal encoding of the\n input address.", + "id": 2953, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sha3HexAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2942, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 2953, + "src": "3720:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3720:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3719:14:9" + }, + "returnParameters": { + "id": 2946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2945, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 2953, + "src": "3756:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2944, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3756:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3755:13:9" + }, + "scope": 2954, + "src": "3696:626:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2955, + "src": "136:4188:9" + } + ], + "src": "0:4325:9" + }, + "legacyAST": { + "absolutePath": "/Users/makoto/work/ens/ens/contracts/ReverseRegistrar.sol", + "exportedSymbols": { + "NameResolver": [ + 2738 + ], + "ReverseRegistrar": [ + 2954 + ] + }, + "id": 2955, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2729, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "absolutePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol", + "file": "./ENS.sol", + "id": 2730, + "nodeType": "ImportDirective", + "scope": 2955, + "sourceUnit": 437, + "src": "25:19:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 2738, + "linearizedBaseContracts": [ + 2738 + ], + "name": "NameResolver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2737, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setName", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2732, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "91:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2731, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "91:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2734, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "105:18:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2733, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "105:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "90:34:9" + }, + "returnParameters": { + "id": 2736, + "nodeType": "ParameterList", + "parameters": [], + "src": "131:0:9" + }, + "scope": 2738, + "src": "74:58:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2955, + "src": "46:88:9" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2954, + "linearizedBaseContracts": [ + 2954 + ], + "name": "ReverseRegistrar", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2741, + "name": "ADDR_REVERSE_NODE", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "200:110:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2739, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "200:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307839316431373737373831383834643033613637353761383033393936653338646532613432393637666233376565616361373237323932373130323561396532", + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "244:66:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65955458610802586644366824307633271870356699036341805474246458084352783133154_by_1", + "typeString": "int_const 6595...(69 digits omitted)...3154" + }, + "value": "0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 2743, + "name": "ens", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "317:14:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + }, + "typeName": { + "contractScope": null, + "id": 2742, + "name": "ENS", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 436, + "src": "317:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2745, + "name": "defaultResolver", + "nodeType": "VariableDeclaration", + "scope": 2954, + "src": "337:35:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + }, + "typeName": { + "contractScope": null, + "id": 2744, + "name": "NameResolver", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2738, + "src": "337:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2785, + "nodeType": "Block", + "src": "605:332:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2752, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "615:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2753, + "name": "ensAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2747, + "src": "621:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "src": "615:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2755, + "nodeType": "ExpressionStatement", + "src": "615:13:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2756, + "name": "defaultResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "638:15:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2757, + "name": "resolverAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2749, + "src": "656:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "src": "638:30:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "id": 2759, + "nodeType": "ExpressionStatement", + "src": "638:30:9" + }, + { + "assignments": [ + 2761 + ], + "declarations": [ + { + "constant": false, + "id": 2761, + "name": "oldRegistrar", + "nodeType": "VariableDeclaration", + "scope": 2785, + "src": "745:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + }, + "typeName": { + "contractScope": null, + "id": 2760, + "name": "ReverseRegistrar", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2954, + "src": "745:16:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2768, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2765, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "804:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2763, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "794:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "794:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "794:28:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2762, + "name": "ReverseRegistrar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "777:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ReverseRegistrar_$2954_$", + "typeString": "type(contract ReverseRegistrar)" + } + }, + "id": 2767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "777:46:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "745:78:9" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2770, + "name": "oldRegistrar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "845:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "837:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "837:21:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "870:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "862:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "862:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "837:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2784, + "nodeType": "IfStatement", + "src": "833:98:9", + "trueBody": { + "id": 2783, + "nodeType": "Block", + "src": "876:55:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2779, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3032, + "src": "909:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "909:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 2776, + "name": "oldRegistrar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "890:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + }, + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "claim", + "nodeType": "MemberAccess", + "referencedDeclaration": 2801, + "src": "890:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address) external returns (bytes32)" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "890:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2782, + "nodeType": "ExpressionStatement", + "src": "890:30:9" + } + ] + } + } + ] + }, + "documentation": "@dev Constructor\n@param ensAddr The address of the ENS registry.\n@param resolverAddr The address of the default reverse resolver.", + "id": 2786, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2747, + "name": "ensAddr", + "nodeType": "VariableDeclaration", + "scope": 2786, + "src": "558:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + }, + "typeName": { + "contractScope": null, + "id": 2746, + "name": "ENS", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 436, + "src": "558:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2749, + "name": "resolverAddr", + "nodeType": "VariableDeclaration", + "scope": 2786, + "src": "571:25:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + }, + "typeName": { + "contractScope": null, + "id": 2748, + "name": "NameResolver", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2738, + "src": "571:12:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "557:40:9" + }, + "returnParameters": { + "id": 2751, + "nodeType": "ParameterList", + "parameters": [], + "src": "605:0:9" + }, + "scope": 2954, + "src": "546:391:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2800, + "nodeType": "Block", + "src": "1259:62:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2794, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "1294:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830", + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1309:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1301:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1301:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 2793, + "name": "claimWithResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "1276:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address,address) returns (bytes32)" + } + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1276:38:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2792, + "id": 2799, + "nodeType": "Return", + "src": "1269:45:9" + } + ] + }, + "documentation": "@dev Transfers ownership of the reverse ENS record associated with the\n calling account.\n@param owner The address to set as the owner of the reverse record in ENS.\n@return The ENS node hash of the reverse record.", + "id": 2801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2788, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2801, + "src": "1219:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1219:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1218:15:9" + }, + "returnParameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2791, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2801, + "src": "1250:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2790, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1250:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1249:9:9" + }, + "scope": 2954, + "src": "1204:117:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2893, + "nodeType": "Block", + "src": "1754:786:9", + "statements": [ + { + "assignments": [ + 2811 + ], + "declarations": [ + { + "constant": false, + "id": 2811, + "name": "label", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "1764:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2810, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1764:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2816, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2813, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3032, + "src": "1795:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1795:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 2812, + "name": "sha3HexAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "1780:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address) pure returns (bytes32)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1780:26:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1764:42:9" + }, + { + "assignments": [ + 2818 + ], + "declarations": [ + { + "constant": false, + "id": 2818, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "1816:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2817, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1816:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2822, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "1858:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2823, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "1877:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2820, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "1841:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1841:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1841:42:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2819, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "1831:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1831:53:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1816:68:9" + }, + { + "assignments": [ + 2828 + ], + "declarations": [ + { + "constant": false, + "id": 2828, + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "1894:20:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2827, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1894:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2833, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2831, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "1927:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2829, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "1917:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "1917:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1917:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1894:38:9" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2834, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "1990:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307830", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2010:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2002:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2002:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1990:24:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "2018:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2842, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "2043:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2840, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2030:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "resolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 412, + "src": "2030:12:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2030:18:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2018:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1990:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2877, + "nodeType": "IfStatement", + "src": "1986:372:9", + "trueBody": { + "id": 2876, + "nodeType": "Block", + "src": "2050:308:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2846, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "2133:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2848, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2157:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2149:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2149:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2133:29:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2868, + "nodeType": "IfStatement", + "src": "2129:174:9", + "trueBody": { + "id": 2867, + "nodeType": "Block", + "src": "2164:139:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2854, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "2202:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2855, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "2221:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2857, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2236:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2228:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2851, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2182:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setSubnodeOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 370, + "src": "2182:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,address) external returns (bytes32)" + } + }, + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2182:60:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2860, + "nodeType": "ExpressionStatement", + "src": "2182:60:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2861, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "2260:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2863, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2283:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2275:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2275:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2260:28:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2866, + "nodeType": "ExpressionStatement", + "src": "2260:28:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2872, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "2332:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2873, + "name": "resolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "2338:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2869, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2316:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setResolver", + "nodeType": "MemberAccess", + "referencedDeclaration": 377, + "src": "2316:15:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) external" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2316:31:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2875, + "nodeType": "ExpressionStatement", + "src": "2316:31:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2878, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "2412:12:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2803, + "src": "2428:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2412:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2890, + "nodeType": "IfStatement", + "src": "2408:104:9", + "trueBody": { + "id": 2889, + "nodeType": "Block", + "src": "2435:77:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2884, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "2469:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2885, + "name": "label", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2811, + "src": "2488:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2886, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2803, + "src": "2495:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2881, + "name": "ens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2743, + "src": "2449:3:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ENS_$436", + "typeString": "contract ENS" + } + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setSubnodeOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 370, + "src": "2449:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,address) external returns (bytes32)" + } + }, + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2449:52:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2888, + "nodeType": "ExpressionStatement", + "src": "2449:52:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2891, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2818, + "src": "2529:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2809, + "id": 2892, + "nodeType": "Return", + "src": "2522:11:9" + } + ] + }, + "documentation": "@dev Transfers ownership of the reverse ENS record associated with the\n calling account.\n@param owner The address to set as the owner of the reverse record in ENS.\n@param resolver The address of the resolver to set; 0 to leave unchanged.\n@return The ENS node hash of the reverse record.", + "id": 2894, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimWithResolver", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2803, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1696:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1696:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2805, + "name": "resolver", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1711:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1711:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1695:33:9" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2894, + "src": "1745:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2807, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1745:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1744:9:9" + }, + "scope": 2954, + "src": "1669:871:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2921, + "nodeType": "Block", + "src": "2921:156:9", + "statements": [ + { + "assignments": [ + 2902 + ], + "declarations": [ + { + "constant": false, + "id": 2902, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 2921, + "src": "2931:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2931:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2911, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2905, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2972:4:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ReverseRegistrar_$2954", + "typeString": "contract ReverseRegistrar" + } + ], + "id": 2904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2964:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2964:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2908, + "name": "defaultResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "2987:15:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + ], + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2979:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2979:24:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2903, + "name": "claimWithResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "2946:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address,address) returns (bytes32)" + } + }, + "id": 2910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2946:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2931:73:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2915, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2902, + "src": "3038:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2916, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "3044:4:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2912, + "name": "defaultResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "3014:15:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NameResolver_$2738", + "typeString": "contract NameResolver" + } + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setName", + "nodeType": "MemberAccess", + "referencedDeclaration": 2737, + "src": "3014:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes32,string memory) external" + } + }, + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3014:35:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2918, + "nodeType": "ExpressionStatement", + "src": "3014:35:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2919, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2902, + "src": "3066:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2900, + "id": 2920, + "nodeType": "Return", + "src": "3059:11:9" + } + ] + }, + "documentation": "@dev Sets the `name()` record for the reverse ENS record associated with\nthe calling account. First updates the resolver to the default reverse\nresolver if necessary.\n@param name The name to set for this address.\n@return The ENS node hash of the reverse record.", + "id": 2922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setName", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 2922, + "src": "2876:18:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2895, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2876:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2875:20:9" + }, + "returnParameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2899, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2922, + "src": "2912:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2898, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2912:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2911:9:9" + }, + "scope": 2954, + "src": "2859:218:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2939, + "nodeType": "Block", + "src": "3303:92:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2932, + "name": "ADDR_REVERSE_NODE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2741, + "src": "3347:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2934, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2924, + "src": "3381:4:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2933, + "name": "sha3HexAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "3366:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes32_$", + "typeString": "function (address) pure returns (bytes32)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3366:20:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2930, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "3330:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3330:16:9", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3330:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2929, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "3320:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3320:68:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2928, + "id": 2938, + "nodeType": "Return", + "src": "3313:75:9" + } + ] + }, + "documentation": "@dev Returns the node hash for a given account's reverse records.\n@param addr The address to hash\n@return The ENS node hash.", + "id": 2940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "node", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2924, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 2940, + "src": "3259:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3259:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3258:14:9" + }, + "returnParameters": { + "id": 2928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2927, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2940, + "src": "3294:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3294:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3293:9:9" + }, + "scope": 2954, + "src": "3245:150:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2952, + "nodeType": "Block", + "src": "3769:553:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2947, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3779:4:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2948, + "nodeType": "ExpressionStatement", + "src": "3779:4:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2949, + "name": "ret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2945, + "src": "3793:3:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2950, + "nodeType": "ExpressionStatement", + "src": "3793:3:9" + }, + { + "externalReferences": [ + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4116:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4104:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4232:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4067:4:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4244:4:9", + "valueSize": 1 + } + }, + { + "ret": { + "declaration": 2945, + "isOffset": false, + "isSlot": false, + "src": "4283:3:9", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 2942, + "isOffset": false, + "isSlot": false, + "src": "4195:4:9", + "valueSize": 1 + } + } + ], + "id": 2951, + "nodeType": "InlineAssembly", + "operations": "{\n let lookup := 0x3031323334353637383961626364656600000000000000000000000000000000\n for { let i := 40 } gt(i, 0) { }\n {\n i := sub(i, 1)\n mstore8(i, byte(and(addr, 0xf), lookup))\n addr := div(addr, 0x10)\n i := sub(i, 1)\n mstore8(i, byte(and(addr, 0xf), lookup))\n addr := div(addr, 0x10)\n }\n ret := keccak256(0, 40)\n}", + "src": "3848:468:9" + } + ] + }, + "documentation": "@dev An optimised function to compute the sha3 of the lower-case\n hexadecimal representation of an Ethereum address.\n@param addr The address to hash\n@return The SHA3 hash of the lower-case hexadecimal encoding of the\n input address.", + "id": 2953, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sha3HexAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2942, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 2953, + "src": "3720:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3720:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3719:14:9" + }, + "returnParameters": { + "id": 2946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2945, + "name": "ret", + "nodeType": "VariableDeclaration", + "scope": 2953, + "src": "3756:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2944, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3756:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3755:13:9" + }, + "scope": 2954, + "src": "3696:626:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2955, + "src": "136:4188:9" + } + ], + "src": "0:4325:9" + }, + "compiler": { + "name": "solc", + "version": "0.5.16+commit.9c3226ce.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.0", + "updatedAt": "2020-06-23T14:47:43.713Z", + "devdoc": { + "methods": { + "claim(address)": { + "details": "Transfers ownership of the reverse ENS record associated with the calling account.", + "params": { + "owner": "The address to set as the owner of the reverse record in ENS." + }, + "return": "The ENS node hash of the reverse record." + }, + "claimWithResolver(address,address)": { + "details": "Transfers ownership of the reverse ENS record associated with the calling account.", + "params": { + "owner": "The address to set as the owner of the reverse record in ENS.", + "resolver": "The address of the resolver to set; 0 to leave unchanged." + }, + "return": "The ENS node hash of the reverse record." + }, + "constructor": { + "details": "Constructor", + "params": { + "ensAddr": "The address of the ENS registry.", + "resolverAddr": "The address of the default reverse resolver." + } + }, + "node(address)": { + "details": "Returns the node hash for a given account's reverse records.", + "params": { + "addr": "The address to hash" + }, + "return": "The ENS node hash." + }, + "setName(string)": { + "details": "Sets the `name()` record for the reverse ENS record associated with the calling account. First updates the resolver to the default reverse resolver if necessary.", + "params": { + "name": "The name to set for this address." + }, + "return": "The ENS node hash of the reverse record." + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 87f25b0..94f7f3d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,9 @@ import { ethers } from 'ethers' const Provider = ethers.providers.Provider import { formatsByName } from '@ensdomains/address-encoder' -import { abi as ensContract } from '@ensdomains/ens/build/contracts/ENS.json' +import { abi as ensContract } from './ABI/ENS.json' import { abi as resolverContract } from '@ensdomains/resolver/build/contracts/Resolver.json' -import { abi as reverseRegistrarContract } from '@ensdomains/ens/build/contracts/ReverseRegistrar.json' +import { abi as reverseRegistrarContract } from './ABI/ReverseRegistrar.json' import { emptyAddress, namehash, labelhash } from './utils' import { From d7838850ffa2f8f66b7c69417a25ef26f4a4dff9 Mon Sep 17 00:00:00 2001 From: Chance Hudson Date: Sat, 20 Nov 2021 11:24:27 -0600 Subject: [PATCH 3/3] chore: remove legacy ens dependency --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 68528af..1165120 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "dependencies": { "@babel/runtime": "^7.4.4", "@ensdomains/address-encoder": "^0.1.7", - "@ensdomains/ens": "0.4.5", "@ensdomains/resolver": "0.2.4", "content-hash": "^2.5.2", "eth-ens-namehash": "^2.0.8",