UNPKG

@alpsfinance/core

Version:

This is the official Alps Finance smart contract repository.

1,234 lines (1,233 loc) 68.3 kB
{ "contractName": "Counters", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}", "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122023510280639f1987959a3a3f8fd335c3ebdb9e1a5eec465f08f1e0b67a895eeb64736f6c634300080b0033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122023510280639f1987959a3a3f8fd335c3ebdb9e1a5eec465f08f1e0b67a895eeb64736f6c634300080b0033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "424:971:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:28;;;;;;;;;;;;;;;;;", "deployedSourceMap": "424:971:28:-:0;;;;;;;;", "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n unchecked {\n counter._value += 1;\n }\n }\n\n function decrement(Counter storage counter) internal {\n uint256 value = counter._value;\n require(value > 0, \"Counter: decrement overflow\");\n unchecked {\n counter._value = value - 1;\n }\n }\n\n function reset(Counter storage counter) internal {\n counter._value = 0;\n }\n}\n", "sourcePath": "@openzeppelin/contracts/utils/Counters.sol", "ast": { "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", "exportedSymbols": { "Counters": [ 5371 ] }, "id": 5372, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 5299, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "87:23:28" }, { "abstract": false, "baseContracts": [], "canonicalName": "Counters", "contractDependencies": [], "contractKind": "library", "documentation": { "id": 5300, "nodeType": "StructuredDocumentation", "src": "112:311:28", "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`" }, "fullyImplemented": true, "id": 5371, "linearizedBaseContracts": [ 5371 ], "name": "Counters", "nameLocation": "432:8:28", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Counters.Counter", "id": 5303, "members": [ { "constant": false, "id": 5302, "mutability": "mutable", "name": "_value", "nameLocation": "794:6:28", "nodeType": "VariableDeclaration", "scope": 5303, "src": "786:14:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5301, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "786:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "name": "Counter", "nameLocation": "454:7:28", "nodeType": "StructDefinition", "scope": 5371, "src": "447:374:28", "visibility": "public" }, { "body": { "id": 5314, "nodeType": "Block", "src": "901:38:28", "statements": [ { "expression": { "expression": { "id": 5311, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5306, "src": "918:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5312, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "918:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 5310, "id": 5313, "nodeType": "Return", "src": "911:21:28" } ] }, "id": 5315, "implemented": true, "kind": "function", "modifiers": [], "name": "current", "nameLocation": "836:7:28", "nodeType": "FunctionDefinition", "parameters": { "id": 5307, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5306, "mutability": "mutable", "name": "counter", "nameLocation": "860:7:28", "nodeType": "VariableDeclaration", "scope": 5315, "src": "844:23:28", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "id": 5305, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5304, "name": "Counter", "nodeType": "IdentifierPath", "referencedDeclaration": 5303, "src": "844:7:28" }, "referencedDeclaration": 5303, "src": "844:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "internal" } ], "src": "843:25:28" }, "returnParameters": { "id": 5310, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5309, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5315, "src": "892:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5308, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "892:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "891:9:28" }, "scope": 5371, "src": "827:112:28", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 5328, "nodeType": "Block", "src": "998:70:28", "statements": [ { "id": 5327, "nodeType": "UncheckedBlock", "src": "1008:54:28", "statements": [ { "expression": { "id": 5325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 5321, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5318, "src": "1032:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "1032:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 5324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1050:1:28", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "1032:19:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 5326, "nodeType": "ExpressionStatement", "src": "1032:19:28" } ] } ] }, "id": 5329, "implemented": true, "kind": "function", "modifiers": [], "name": "increment", "nameLocation": "954:9:28", "nodeType": "FunctionDefinition", "parameters": { "id": 5319, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5318, "mutability": "mutable", "name": "counter", "nameLocation": "980:7:28", "nodeType": "VariableDeclaration", "scope": 5329, "src": "964:23:28", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "id": 5317, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5316, "name": "Counter", "nodeType": "IdentifierPath", "referencedDeclaration": 5303, "src": "964:7:28" }, "referencedDeclaration": 5303, "src": "964:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "internal" } ], "src": "963:25:28" }, "returnParameters": { "id": 5320, "nodeType": "ParameterList", "parameters": [], "src": "998:0:28" }, "scope": 5371, "src": "945:123:28", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 5356, "nodeType": "Block", "src": "1127:176:28", "statements": [ { "assignments": [ 5336 ], "declarations": [ { "constant": false, "id": 5336, "mutability": "mutable", "name": "value", "nameLocation": "1145:5:28", "nodeType": "VariableDeclaration", "scope": 5356, "src": "1137:13:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5335, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1137:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 5339, "initialValue": { "expression": { "id": 5337, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5332, "src": "1153:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5338, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "1153:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1137:30:28" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 5343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 5341, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5336, "src": "1185:5:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 5342, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1193:1:28", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1185:9:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "436f756e7465723a2064656372656d656e74206f766572666c6f77", "id": 5344, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1196:29:28", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", "typeString": "literal_string \"Counter: decrement overflow\"" }, "value": "Counter: decrement overflow" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f", "typeString": "literal_string \"Counter: decrement overflow\"" } ], "id": 5340, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "1177:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 5345, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1177:49:28", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 5346, "nodeType": "ExpressionStatement", "src": "1177:49:28" }, { "id": 5355, "nodeType": "UncheckedBlock", "src": "1236:61:28", "statements": [ { "expression": { "id": 5353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 5347, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5332, "src": "1260:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5349, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "1260:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 5352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 5350, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5336, "src": "1277:5:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 5351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1285:1:28", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "1277:9:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1260:26:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 5354, "nodeType": "ExpressionStatement", "src": "1260:26:28" } ] } ] }, "id": 5357, "implemented": true, "kind": "function", "modifiers": [], "name": "decrement", "nameLocation": "1083:9:28", "nodeType": "FunctionDefinition", "parameters": { "id": 5333, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5332, "mutability": "mutable", "name": "counter", "nameLocation": "1109:7:28", "nodeType": "VariableDeclaration", "scope": 5357, "src": "1093:23:28", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "id": 5331, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5330, "name": "Counter", "nodeType": "IdentifierPath", "referencedDeclaration": 5303, "src": "1093:7:28" }, "referencedDeclaration": 5303, "src": "1093:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "internal" } ], "src": "1092:25:28" }, "returnParameters": { "id": 5334, "nodeType": "ParameterList", "parameters": [], "src": "1127:0:28" }, "scope": 5371, "src": "1074:229:28", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 5369, "nodeType": "Block", "src": "1358:35:28", "statements": [ { "expression": { "id": 5367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 5363, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5360, "src": "1368:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5365, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "1368:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "30", "id": 5366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1385:1:28", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1368:18:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 5368, "nodeType": "ExpressionStatement", "src": "1368:18:28" } ] }, "id": 5370, "implemented": true, "kind": "function", "modifiers": [], "name": "reset", "nameLocation": "1318:5:28", "nodeType": "FunctionDefinition", "parameters": { "id": 5361, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5360, "mutability": "mutable", "name": "counter", "nameLocation": "1340:7:28", "nodeType": "VariableDeclaration", "scope": 5370, "src": "1324:23:28", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "id": 5359, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5358, "name": "Counter", "nodeType": "IdentifierPath", "referencedDeclaration": 5303, "src": "1324:7:28" }, "referencedDeclaration": 5303, "src": "1324:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "internal" } ], "src": "1323:25:28" }, "returnParameters": { "id": 5362, "nodeType": "ParameterList", "parameters": [], "src": "1358:0:28" }, "scope": 5371, "src": "1309:84:28", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], "scope": 5372, "src": "424:971:28", "usedErrors": [] } ], "src": "87:1309:28" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/utils/Counters.sol", "exportedSymbols": { "Counters": [ 5371 ] }, "id": 5372, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 5299, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "87:23:28" }, { "abstract": false, "baseContracts": [], "canonicalName": "Counters", "contractDependencies": [], "contractKind": "library", "documentation": { "id": 5300, "nodeType": "StructuredDocumentation", "src": "112:311:28", "text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`" }, "fullyImplemented": true, "id": 5371, "linearizedBaseContracts": [ 5371 ], "name": "Counters", "nameLocation": "432:8:28", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Counters.Counter", "id": 5303, "members": [ { "constant": false, "id": 5302, "mutability": "mutable", "name": "_value", "nameLocation": "794:6:28", "nodeType": "VariableDeclaration", "scope": 5303, "src": "786:14:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5301, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "786:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "name": "Counter", "nameLocation": "454:7:28", "nodeType": "StructDefinition", "scope": 5371, "src": "447:374:28", "visibility": "public" }, { "body": { "id": 5314, "nodeType": "Block", "src": "901:38:28", "statements": [ { "expression": { "expression": { "id": 5311, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5306, "src": "918:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5312, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "918:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 5310, "id": 5313, "nodeType": "Return", "src": "911:21:28" } ] }, "id": 5315, "implemented": true, "kind": "function", "modifiers": [], "name": "current", "nameLocation": "836:7:28", "nodeType": "FunctionDefinition", "parameters": { "id": 5307, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5306, "mutability": "mutable", "name": "counter", "nameLocation": "860:7:28", "nodeType": "VariableDeclaration", "scope": 5315, "src": "844:23:28", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "id": 5305, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5304, "name": "Counter", "nodeType": "IdentifierPath", "referencedDeclaration": 5303, "src": "844:7:28" }, "referencedDeclaration": 5303, "src": "844:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "internal" } ], "src": "843:25:28" }, "returnParameters": { "id": 5310, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5309, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 5315, "src": "892:7:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5308, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "892:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "891:9:28" }, "scope": 5371, "src": "827:112:28", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 5328, "nodeType": "Block", "src": "998:70:28", "statements": [ { "id": 5327, "nodeType": "UncheckedBlock", "src": "1008:54:28", "statements": [ { "expression": { "id": 5325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 5321, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5318, "src": "1032:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter storage pointer" } }, "id": 5323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "_value", "nodeType": "MemberAccess", "referencedDeclaration": 5302, "src": "1032:14:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 5324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1050:1:28", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "1032:19:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 5326, "nodeType": "ExpressionStatement", "src": "1032:19:28" } ] } ] }, "id": 5329, "implemented": true, "kind": "function", "modifiers": [], "name": "increment", "nameLocation": "954:9:28", "nodeType": "FunctionDefinition", "parameters": { "id": 5319, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5318, "mutability": "mutable", "name": "counter", "nameLocation": "980:7:28", "nodeType": "VariableDeclaration", "scope": 5329, "src": "964:23:28", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" }, "typeName": { "id": 5317, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 5316, "name": "Counter", "nodeType": "IdentifierPath", "referencedDeclaration": 5303, "src": "964:7:28" }, "referencedDeclaration": 5303, "src": "964:7:28", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$5303_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "internal" } ], "src": "963:25:28" }, "returnParameters": { "id": 5320, "nodeType": "ParameterList", "parameters": [], "src": "998:0:28" }, "scope": 5371, "src": "945:123:28", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 5356, "nodeType": "Block", "src": "1127:176:28", "statements": [ { "assignments": [ 5336 ], "declarations": [ { "constant": false, "id": 5336, "mutability": "mutable", "name": "value", "nameLocation": "1145:5:28", "nodeType": "VariableDeclaration", "scope": 5356, "src": "1137:13:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5335, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1137:7:28", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 5339, "initialValue": { "expression": { "id": 5337, "name": "counter", "nodeType": "Identifier",