@aragon/apps-payroll
Version:
_**Code in Github:**_ [aragon-apps/apps/payroll](https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll)
1,087 lines • 41.4 kB
JSON
{
"contractName": "TimeHelpers",
"abi": [],
"bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a45591a005ad8a3b7e83474bb53feb29a1e731fe70048d21674a9064546805f50029",
"deployedBytecode": "0x6080604052600080fd00a165627a7a72305820a45591a005ad8a3b7e83474bb53feb29a1e731fe70048d21674a9064546805f50029",
"sourceMap": "103:1266:37:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;103:1266:37;;;;;;;",
"deployedSourceMap": "103:1266:37:-;;;;;",
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"./Uint256Helpers.sol\";\n\n\ncontract TimeHelpers {\n using Uint256Helpers for uint256;\n\n /**\n * @dev Returns the current block number.\n * Using a function rather than `block.number` allows us to easily mock the block number in\n * tests.\n */\n function getBlockNumber() internal view returns (uint256) {\n return block.number;\n }\n\n /**\n * @dev Returns the current block number, converted to uint64.\n * Using a function rather than `block.number` allows us to easily mock the block number in\n * tests.\n */\n function getBlockNumber64() internal view returns (uint64) {\n return getBlockNumber().toUint64();\n }\n\n /**\n * @dev Returns the current timestamp.\n * Using a function rather than `block.timestamp` allows us to easily mock it in\n * tests.\n */\n function getTimestamp() internal view returns (uint256) {\n return block.timestamp; // solium-disable-line security/no-block-members\n }\n\n /**\n * @dev Returns the current timestamp, converted to uint64.\n * Using a function rather than `block.timestamp` allows us to easily mock it in\n * tests.\n */\n function getTimestamp64() internal view returns (uint64) {\n return getTimestamp().toUint64();\n }\n}\n",
"sourcePath": "@aragon/os/contracts/common/TimeHelpers.sol",
"ast": {
"absolutePath": "@aragon/os/contracts/common/TimeHelpers.sol",
"exportedSymbols": {
"TimeHelpers": [
11200
]
},
"id": 11201,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 11155,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:37"
},
{
"absolutePath": "@aragon/os/contracts/common/Uint256Helpers.sol",
"file": "./Uint256Helpers.sol",
"id": 11156,
"nodeType": "ImportDirective",
"scope": 11201,
"sourceUnit": 11232,
"src": "70:30:37",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 11200,
"linearizedBaseContracts": [
11200
],
"name": "TimeHelpers",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 11159,
"libraryName": {
"contractScope": null,
"id": 11157,
"name": "Uint256Helpers",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 11231,
"src": "136:14:37",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Uint256Helpers_$11231",
"typeString": "library Uint256Helpers"
}
},
"nodeType": "UsingForDirective",
"src": "130:33:37",
"typeName": {
"id": 11158,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "155:7:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"body": {
"id": 11167,
"nodeType": "Block",
"src": "405:36:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 11164,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15143,
"src": "422:5:37",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 11165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "number",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "422:12:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 11163,
"id": 11166,
"nodeType": "Return",
"src": "415:19:37"
}
]
},
"documentation": "@dev Returns the current block number.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"id": 11168,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBlockNumber",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11160,
"nodeType": "ParameterList",
"parameters": [],
"src": "370:2:37"
},
"payable": false,
"returnParameters": {
"id": 11163,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11162,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11168,
"src": "396:7:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 11161,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "396:7:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "395:9:37"
},
"scope": 11200,
"src": "347:94:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 11178,
"nodeType": "Block",
"src": "705:51:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 11173,
"name": "getBlockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11168,
"src": "722:14:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 11174,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "722:16:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11175,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint64",
"nodeType": "MemberAccess",
"referencedDeclaration": 11230,
"src": "722:25:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$",
"typeString": "function (uint256) pure returns (uint64)"
}
},
"id": 11176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "722:27:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 11172,
"id": 11177,
"nodeType": "Return",
"src": "715:34:37"
}
]
},
"documentation": "@dev Returns the current block number, converted to uint64.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"id": 11179,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBlockNumber64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11169,
"nodeType": "ParameterList",
"parameters": [],
"src": "671:2:37"
},
"payable": false,
"returnParameters": {
"id": 11172,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11171,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11179,
"src": "697:6:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 11170,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "697:6:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "696:8:37"
},
"scope": 11200,
"src": "646:110:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 11187,
"nodeType": "Block",
"src": "982:88:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 11184,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15143,
"src": "999:5:37",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 11185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "999:15:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 11183,
"id": 11186,
"nodeType": "Return",
"src": "992:22:37"
}
]
},
"documentation": "@dev Returns the current timestamp.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"id": 11188,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTimestamp",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11180,
"nodeType": "ParameterList",
"parameters": [],
"src": "947:2:37"
},
"payable": false,
"returnParameters": {
"id": 11183,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11182,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11188,
"src": "973:7:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 11181,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "973:7:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "972:9:37"
},
"scope": 11200,
"src": "926:144:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 11198,
"nodeType": "Block",
"src": "1318:49:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 11193,
"name": "getTimestamp",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11188,
"src": "1335:12:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 11194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1335:14:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11195,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint64",
"nodeType": "MemberAccess",
"referencedDeclaration": 11230,
"src": "1335:23:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$",
"typeString": "function (uint256) pure returns (uint64)"
}
},
"id": 11196,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1335:25:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 11192,
"id": 11197,
"nodeType": "Return",
"src": "1328:32:37"
}
]
},
"documentation": "@dev Returns the current timestamp, converted to uint64.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"id": 11199,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTimestamp64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11189,
"nodeType": "ParameterList",
"parameters": [],
"src": "1284:2:37"
},
"payable": false,
"returnParameters": {
"id": 11192,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11191,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11199,
"src": "1310:6:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 11190,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "1310:6:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1309:8:37"
},
"scope": 11200,
"src": "1261:106:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 11201,
"src": "103:1266:37"
}
],
"src": "44:1326:37"
},
"legacyAST": {
"absolutePath": "@aragon/os/contracts/common/TimeHelpers.sol",
"exportedSymbols": {
"TimeHelpers": [
11200
]
},
"id": 11201,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 11155,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:37"
},
{
"absolutePath": "@aragon/os/contracts/common/Uint256Helpers.sol",
"file": "./Uint256Helpers.sol",
"id": 11156,
"nodeType": "ImportDirective",
"scope": 11201,
"sourceUnit": 11232,
"src": "70:30:37",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 11200,
"linearizedBaseContracts": [
11200
],
"name": "TimeHelpers",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 11159,
"libraryName": {
"contractScope": null,
"id": 11157,
"name": "Uint256Helpers",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 11231,
"src": "136:14:37",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Uint256Helpers_$11231",
"typeString": "library Uint256Helpers"
}
},
"nodeType": "UsingForDirective",
"src": "130:33:37",
"typeName": {
"id": 11158,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "155:7:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"body": {
"id": 11167,
"nodeType": "Block",
"src": "405:36:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 11164,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15143,
"src": "422:5:37",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 11165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "number",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "422:12:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 11163,
"id": 11166,
"nodeType": "Return",
"src": "415:19:37"
}
]
},
"documentation": "@dev Returns the current block number.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"id": 11168,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBlockNumber",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11160,
"nodeType": "ParameterList",
"parameters": [],
"src": "370:2:37"
},
"payable": false,
"returnParameters": {
"id": 11163,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11162,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11168,
"src": "396:7:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 11161,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "396:7:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "395:9:37"
},
"scope": 11200,
"src": "347:94:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 11178,
"nodeType": "Block",
"src": "705:51:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 11173,
"name": "getBlockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11168,
"src": "722:14:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 11174,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "722:16:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11175,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint64",
"nodeType": "MemberAccess",
"referencedDeclaration": 11230,
"src": "722:25:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$",
"typeString": "function (uint256) pure returns (uint64)"
}
},
"id": 11176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "722:27:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 11172,
"id": 11177,
"nodeType": "Return",
"src": "715:34:37"
}
]
},
"documentation": "@dev Returns the current block number, converted to uint64.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"id": 11179,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBlockNumber64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11169,
"nodeType": "ParameterList",
"parameters": [],
"src": "671:2:37"
},
"payable": false,
"returnParameters": {
"id": 11172,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11171,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11179,
"src": "697:6:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 11170,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "697:6:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "696:8:37"
},
"scope": 11200,
"src": "646:110:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 11187,
"nodeType": "Block",
"src": "982:88:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 11184,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15143,
"src": "999:5:37",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 11185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "999:15:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 11183,
"id": 11186,
"nodeType": "Return",
"src": "992:22:37"
}
]
},
"documentation": "@dev Returns the current timestamp.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"id": 11188,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTimestamp",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11180,
"nodeType": "ParameterList",
"parameters": [],
"src": "947:2:37"
},
"payable": false,
"returnParameters": {
"id": 11183,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11182,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11188,
"src": "973:7:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 11181,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "973:7:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "972:9:37"
},
"scope": 11200,
"src": "926:144:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 11198,
"nodeType": "Block",
"src": "1318:49:37",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 11193,
"name": "getTimestamp",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11188,
"src": "1335:12:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 11194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1335:14:37",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11195,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint64",
"nodeType": "MemberAccess",
"referencedDeclaration": 11230,
"src": "1335:23:37",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$",
"typeString": "function (uint256) pure returns (uint64)"
}
},
"id": 11196,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1335:25:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 11192,
"id": 11197,
"nodeType": "Return",
"src": "1328:32:37"
}
]
},
"documentation": "@dev Returns the current timestamp, converted to uint64.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"id": 11199,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTimestamp64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11189,
"nodeType": "ParameterList",
"parameters": [],
"src": "1284:2:37"
},
"payable": false,
"returnParameters": {
"id": 11192,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11191,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 11199,
"src": "1310:6:37",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 11190,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "1310:6:37",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1309:8:37"
},
"scope": 11200,
"src": "1261:106:37",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 11201,
"src": "103:1266:37"
}
],
"src": "44:1326:37"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.1",
"updatedAt": "2019-09-04T11:02:55.763Z"
}