@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
JSON
{
"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"
},