UNPKG

@aragon/apps-payroll

Version:

_**Code in Github:**_ [aragon-apps/apps/payroll](https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll)

1,152 lines (1,151 loc) 189 kB
{ "contractName": "ENS", "abi": [ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_node", "type": "bytes32" }, { "indexed": true, "name": "_label", "type": "bytes32" }, { "indexed": false, "name": "_owner", "type": "address" } ], "name": "NewOwner", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_node", "type": "bytes32" }, { "indexed": false, "name": "_owner", "type": "address" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_node", "type": "bytes32" }, { "indexed": false, "name": "_resolver", "type": "address" } ], "name": "NewResolver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_node", "type": "bytes32" }, { "indexed": false, "name": "_ttl", "type": "uint64" } ], "name": "NewTTL", "type": "event" }, { "constant": true, "inputs": [ { "name": "node", "type": "bytes32" } ], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "node", "type": "bytes32" } ], "name": "resolver", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "node", "type": "bytes32" } ], "name": "ttl", "outputs": [ { "name": "", "type": "uint64" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "node", "type": "bytes32" }, { "name": "owner", "type": "address" } ], "name": "setOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "node", "type": "bytes32" }, { "name": "label", "type": "bytes32" }, { "name": "owner", "type": "address" } ], "name": "setSubnodeOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "node", "type": "bytes32" }, { "name": "resolver", "type": "address" } ], "name": "setResolver", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "node", "type": "bytes32" }, { "name": "ttl", "type": "uint64" } ], "name": "setTTL", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5060008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58054600160a060020a031916331790556105f1806100596000396000f3006080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100c857806306ab5923146100e057806314ab90381461011657806316a25cbd1461013b5780631896f70a146101705780635b0fc9c3146101a1575b600080fd5b34801561009357600080fd5b5061009f6004356101d2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100d457600080fd5b5061009f6004356101fd565b3480156100ec57600080fd5b5061011460043560243573ffffffffffffffffffffffffffffffffffffffff60443516610225565b005b34801561012257600080fd5b5061011460043567ffffffffffffffff60243516610311565b34801561014757600080fd5b506101536004356103e7565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561017c57600080fd5b5061011460043573ffffffffffffffffffffffffffffffffffffffff6024351661041e565b3480156101ad57600080fd5b5061011460043573ffffffffffffffffffffffffffffffffffffffff602435166104f3565b60009081526020819052604090206001015473ffffffffffffffffffffffffffffffffffffffff1690565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600083815260208190526040812054849073ffffffffffffffffffffffffffffffffffffffff16331461025757600080fd5b6040805186815260208082018790528251918290038301822073ffffffffffffffffffffffffffffffffffffffff871683529251929450869288927fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8292908290030190a350600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555050565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16331461034357600080fd5b6040805167ffffffffffffffff84168152905184917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a250600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16331461045057600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff84168152905184917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25060009182526020829052604090912060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16331461052557600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff84168152905184917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25060009182526020829052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790555600a165627a7a7230582088b57730c969823e07e74280dd3f5cf5bf5635f6716de10d2a1c37e6eb8844e10029", "deployedBytecode": "0x6080604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100c857806306ab5923146100e057806314ab90381461011657806316a25cbd1461013b5780631896f70a146101705780635b0fc9c3146101a1575b600080fd5b34801561009357600080fd5b5061009f6004356101d2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100d457600080fd5b5061009f6004356101fd565b3480156100ec57600080fd5b5061011460043560243573ffffffffffffffffffffffffffffffffffffffff60443516610225565b005b34801561012257600080fd5b5061011460043567ffffffffffffffff60243516610311565b34801561014757600080fd5b506101536004356103e7565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561017c57600080fd5b5061011460043573ffffffffffffffffffffffffffffffffffffffff6024351661041e565b3480156101ad57600080fd5b5061011460043573ffffffffffffffffffffffffffffffffffffffff602435166104f3565b60009081526020819052604090206001015473ffffffffffffffffffffffffffffffffffffffff1690565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600083815260208190526040812054849073ffffffffffffffffffffffffffffffffffffffff16331461025757600080fd5b6040805186815260208082018790528251918290038301822073ffffffffffffffffffffffffffffffffffffffff871683529251929450869288927fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8292908290030190a350600090815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555050565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16331461034357600080fd5b6040805167ffffffffffffffff84168152905184917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68919081900360200190a250600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16331461045057600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff84168152905184917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0919081900360200190a25060009182526020829052604090912060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff16331461052557600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff84168152905184917fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266919081900360200190a25060009182526020829052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790555600a165627a7a7230582088b57730c969823e07e74280dd3f5cf5bf5635f6716de10d2a1c37e6eb8844e10029", "sourceMap": "169:2590:57:-;;;575:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;607:7:57;:10;;;;;;:29;;-1:-1:-1;;;;;;607:29:57;626:10;607:29;;;169:2590;;;;;;", "deployedSourceMap": "169:2590:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;917:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;917:112:57;;;;;;;;;;;;;;;;;;;;;;;;722:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;722:106:57;;;;;1923:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1923:224:57;;;;;;;;;;;;;2624:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2624:133:57;;;;;;;;;1121:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1121:101:57;;;;;;;;;;;;;;;;;;;;;;;;2317:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2317:164:57;;;;;;;;;1463:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1463:146:57;;;;;;;;;917:112;974:7;1000:13;;;;;;;;;;:22;;;;;;917:112::o;722:106::-;776:7;802:13;;;;;;;;;;:19;;;;722:106::o;1923:224::-;2026:11;456:13;;;;;;;;;;:19;2003:4;;456:33;:19;479:10;456:33;452:44;;491:5;;;452:44;2040:22;;;;;;;;;;;;;;;;;;;;;;;2072:28;;;;;;;2040:22;;-1:-1:-1;2056:5:57;;2050:4;;2072:28;;;;;;;;;-1:-1:-1;2110:7:57;:16;;;;;;;;;;:30;;;;;;;;;;;;;;;-1:-1:-1;;1923:224:57:o;2624:133::-;456:7;:13;;;;;;;;;;:19;2677:4;;456:33;:19;479:10;456:33;452:44;;491:5;;;452:44;2700:17;;;;;;;;;;2707:4;;2700:17;;;;;;;;;;-1:-1:-1;2727:7:57;:13;;;;;;;;;;;:17;;:23;;;;;;;;;;;;;;;;;;2624:133::o;1121:101::-;1173:6;1198:13;;;;;;;;;;:17;;;;;;;;;1121:101::o;2317:164::-;456:7;:13;;;;;;;;;;:19;2381:4;;456:33;:19;479:10;456:33;452:44;;491:5;;;452:44;2404:27;;;;;;;;;;2416:4;;2404:27;;;;;;;;;;-1:-1:-1;2441:7:57;:13;;;;;;;;;;;:22;;:33;;;;;;;;;;;;;;2317:164::o;1463:146::-;456:7;:13;;;;;;;;;;:19;1521:4;;456:33;:19;479:10;456:33;452:44;;491:5;;;452:44;1544:21;;;;;;;;;;1553:4;;1544:21;;;;;;;;;;-1:-1:-1;1575:7:57;:13;;;;;;;;;;;:27;;;;;;;;;;;;;;1463:146::o", "source": "// See https://github.com/ensdomains/ens/blob/7e377df83f/contracts/ENS.sol\n\npragma solidity ^0.4.0;\n\n\nimport \"./AbstractENS.sol\";\n\n/**\n * The ENS registry contract.\n */\ncontract ENS is AbstractENS {\n struct Record {\n address owner;\n address resolver;\n uint64 ttl;\n }\n\n mapping(bytes32=>Record) records;\n\n // Permits modifications only by the owner of the specified node.\n modifier only_owner(bytes32 node) {\n if (records[node].owner != msg.sender) throw;\n _;\n }\n\n /**\n * Constructs a new ENS registrar.\n */\n function ENS() public {\n records[0].owner = msg.sender;\n }\n\n /**\n * Returns the address that owns the specified node.\n */\n function owner(bytes32 node) public constant returns (address) {\n return records[node].owner;\n }\n\n /**\n * Returns the address of the resolver for the specified node.\n */\n function resolver(bytes32 node) public constant returns (address) {\n return records[node].resolver;\n }\n\n /**\n * Returns the TTL of a node, and any records associated with it.\n */\n function ttl(bytes32 node) public constant returns (uint64) {\n return records[node].ttl;\n }\n\n /**\n * Transfers ownership of a node to a new address. May only be called by the current\n * owner of the node.\n * @param node The node to transfer ownership of.\n * @param owner The address of the new owner.\n */\n function setOwner(bytes32 node, address owner) only_owner(node) public {\n Transfer(node, owner);\n records[node].owner = owner;\n }\n\n /**\n * Transfers ownership of a subnode keccak256(node, label) to a new address. May only be\n * called by the owner of the parent node.\n * @param node The parent node.\n * @param label The hash of the label specifying the subnode.\n * @param owner The address of the new owner.\n */\n function setSubnodeOwner(bytes32 node, bytes32 label, address owner) only_owner(node) public {\n var subnode = keccak256(node, label);\n NewOwner(node, label, owner);\n records[subnode].owner = owner;\n }\n\n /**\n * Sets the resolver address for the specified node.\n * @param node The node to update.\n * @param resolver The address of the resolver.\n */\n function setResolver(bytes32 node, address resolver) only_owner(node) public {\n NewResolver(node, resolver);\n records[node].resolver = resolver;\n }\n\n /**\n * Sets the TTL for the specified node.\n * @param node The node to update.\n * @param ttl The TTL in seconds.\n */\n function setTTL(bytes32 node, uint64 ttl) only_owner(node) public {\n NewTTL(node, ttl);\n records[node].ttl = ttl;\n }\n}\n", "sourcePath": "@aragon/os/contracts/lib/ens/ENS.sol", "ast": { "absolutePath": "@aragon/os/contracts/lib/ens/ENS.sol", "exportedSymbols": { "ENS": [ 13457 ] }, "id": 13458, "nodeType": "SourceUnit", "nodes": [ { "id": 13275, "literals": [ "solidity", "^", "0.4", ".0" ], "nodeType": "PragmaDirective", "src": "76:23:57" }, { "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol", "file": "./AbstractENS.sol", "id": 13276, "nodeType": "ImportDirective", "scope": 13458, "sourceUnit": 13274, "src": "102:27:57", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 13277, "name": "AbstractENS", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 13273, "src": "185:11:57", "typeDescriptions": { "typeIdentifier": "t_contract$_AbstractENS_$13273", "typeString": "contract AbstractENS" } }, "id": 13278, "nodeType": "InheritanceSpecifier", "src": "185:11:57" } ], "contractDependencies": [ 13273 ], "contractKind": "contract", "documentation": "The ENS registry contract.", "fullyImplemented": true, "id": 13457, "linearizedBaseContracts": [ 13457, 13273 ], "name": "ENS", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "ENS.Record", "id": 13285, "members": [ { "constant": false, "id": 13280, "name": "owner", "nodeType": "VariableDeclaration", "scope": 13285, "src": "227:13:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13279, "name": "address", "nodeType": "ElementaryTypeName", "src": "227:7:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13282, "name": "resolver", "nodeType": "VariableDeclaration", "scope": 13285, "src": "250:16:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13281, "name": "address", "nodeType": "ElementaryTypeName", "src": "250:7:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 13284, "name": "ttl", "nodeType": "VariableDeclaration", "scope": 13285, "src": "276:10:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 13283, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "276:6:57", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "value": null, "visibility": "internal" } ], "name": "Record", "nodeType": "StructDefinition", "scope": 13457, "src": "203:90:57", "visibility": "public" }, { "constant": false, "id": 13289, "name": "records", "nodeType": "VariableDeclaration", "scope": 13457, "src": "299:32:57", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record)" }, "typeName": { "id": 13288, "keyType": { "id": 13286, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "307:7:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "299:24:57", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record)" }, "valueType": { "contractScope": null, "id": 13287, "name": "Record", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 13285, "src": "316:6:57", "typeDescriptions": { "typeIdentifier": "t_struct$_Record_$13285_storage_ptr", "typeString": "struct ENS.Record" } } }, "value": null, "visibility": "internal" }, { "body": { "id": 13303, "nodeType": "Block", "src": "442:72:57", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 13299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13293, "name": "records", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "456:7:57", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record storage ref)" } }, "id": 13295, "indexExpression": { "argumentTypes": null, "id": 13294, "name": "node", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13291, "src": "464:4:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "456:13:57", "typeDescriptions": { "typeIdentifier": "t_struct$_Record_$13285_storage", "typeString": "struct ENS.Record storage ref" } }, "id": 13296, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 13280, "src": "456:19:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13297, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15153, "src": "479:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "479:10:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "456:33:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 13301, "nodeType": "IfStatement", "src": "452:44:57", "trueBody": { "id": 13300, "nodeType": "Throw", "src": "491:5:57" } }, { "id": 13302, "nodeType": "PlaceholderStatement", "src": "506:1:57" } ] }, "documentation": null, "id": 13304, "name": "only_owner", "nodeType": "ModifierDefinition", "parameters": { "id": 13292, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13291, "name": "node", "nodeType": "VariableDeclaration", "scope": 13304, "src": "428:12:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 13290, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "428:7:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "427:14:57" }, "src": "408:106:57", "visibility": "internal" }, { "body": { "id": 13315, "nodeType": "Block", "src": "597:46:57", "statements": [ { "expression": { "argumentTypes": null, "id": 13313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13307, "name": "records", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "607:7:57", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record storage ref)" } }, "id": 13309, "indexExpression": { "argumentTypes": null, "hexValue": "30", "id": 13308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "615:1:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "607:10:57", "typeDescriptions": { "typeIdentifier": "t_struct$_Record_$13285_storage", "typeString": "struct ENS.Record storage ref" } }, "id": 13310, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 13280, "src": "607:16:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 13311, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15153, "src": "626:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 13312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "626:10:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "607:29:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13314, "nodeType": "ExpressionStatement", "src": "607:29:57" } ] }, "documentation": "Constructs a new ENS registrar.", "id": 13316, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "ENS", "nodeType": "FunctionDefinition", "parameters": { "id": 13305, "nodeType": "ParameterList", "parameters": [], "src": "587:2:57" }, "payable": false, "returnParameters": { "id": 13306, "nodeType": "ParameterList", "parameters": [], "src": "597:0:57" }, "scope": 13457, "src": "575:68:57", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 13328, "nodeType": "Block", "src": "785:43:57", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13323, "name": "records", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "802:7:57", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record storage ref)" } }, "id": 13325, "indexExpression": { "argumentTypes": null, "id": 13324, "name": "node", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13318, "src": "810:4:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "802:13:57", "typeDescriptions": { "typeIdentifier": "t_struct$_Record_$13285_storage", "typeString": "struct ENS.Record storage ref" } }, "id": 13326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 13280, "src": "802:19:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 13322, "id": 13327, "nodeType": "Return", "src": "795:26:57" } ] }, "documentation": "Returns the address that owns the specified node.", "id": 13329, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "owner", "nodeType": "FunctionDefinition", "parameters": { "id": 13319, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13318, "name": "node", "nodeType": "VariableDeclaration", "scope": 13329, "src": "737:12:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 13317, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "737:7:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "736:14:57" }, "payable": false, "returnParameters": { "id": 13322, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13321, "name": "", "nodeType": "VariableDeclaration", "scope": 13329, "src": "776:7:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13320, "name": "address", "nodeType": "ElementaryTypeName", "src": "776:7:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "775:9:57" }, "scope": 13457, "src": "722:106:57", "stateMutability": "view", "superFunction": 13202, "visibility": "public" }, { "body": { "id": 13341, "nodeType": "Block", "src": "983:46:57", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13336, "name": "records", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "1000:7:57", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record storage ref)" } }, "id": 13338, "indexExpression": { "argumentTypes": null, "id": 13337, "name": "node", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13331, "src": "1008:4:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1000:13:57", "typeDescriptions": { "typeIdentifier": "t_struct$_Record_$13285_storage", "typeString": "struct ENS.Record storage ref" } }, "id": 13339, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "resolver", "nodeType": "MemberAccess", "referencedDeclaration": 13282, "src": "1000:22:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 13335, "id": 13340, "nodeType": "Return", "src": "993:29:57" } ] }, "documentation": "Returns the address of the resolver for the specified node.", "id": 13342, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "resolver", "nodeType": "FunctionDefinition", "parameters": { "id": 13332, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13331, "name": "node", "nodeType": "VariableDeclaration", "scope": 13342, "src": "935:12:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 13330, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "935:7:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "934:14:57" }, "payable": false, "returnParameters": { "id": 13335, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13334, "name": "", "nodeType": "VariableDeclaration", "scope": 13342, "src": "974:7:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 13333, "name": "address", "nodeType": "ElementaryTypeName", "src": "974:7:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "973:9:57" }, "scope": 13457, "src": "917:112:57", "stateMutability": "view", "superFunction": 13209, "visibility": "public" }, { "body": { "id": 13354, "nodeType": "Block", "src": "1181:41:57", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 13349, "name": "records", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13289, "src": "1198:7:57", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Record_$13285_storage_$", "typeString": "mapping(bytes32 => struct ENS.Record storage ref)" } }, "id": 13351, "indexExpression": { "argumentTypes": null, "id": 13350, "name": "node", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 13344, "src": "1206:4:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1198:13:57", "typeDescriptions": { "typeIdentifier": "t_struct$_Record_$13285_storage", "typeString": "struct ENS.Record storage ref" } }, "id": 13352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ttl", "nodeType": "MemberAccess", "referencedDeclaration": 13284, "src": "1198:17:57", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "functionReturnParameters": 13348, "id": 13353, "nodeType": "Return", "src": "1191:24:57" } ] }, "documentation": "Returns the TTL of a node, and any records associated with it.", "id": 13355, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "ttl", "nodeType": "FunctionDefinition", "parameters": { "id": 13345, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 13344, "name": "node", "nodeType": "VariableDeclaration", "scope": 13355, "src": "1134:12:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 13343, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1134:7:57", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "1133:14:57" },