UNPKG

@gooddollar/goodcontracts

Version:
1,215 lines 129 kB
{ "contractName": "SafeMath", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Unsigned math operations with safety checks that revert on error\",\"methods\":{},\"title\":\"SafeMath\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzz-raw://1eb493553b27efd46c231a836a83ce50d215639feb97b4aac9f301d0fd034ff5\",\"dweb:/ipfs/QmbMdvSXcqGKxeeYvzF3VrWpoHQyVzMXBhzhAokF2Gdymv\"]}},\"version\":1}", "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158206c99229033f6b4627039863ef64a03ec61b4e11f5d57679f9d15c516e710ae2c64736f6c63430005100032", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158206c99229033f6b4627039863ef64a03ec61b4e11f5d57679f9d15c516e710ae2c64736f6c63430005100032", "sourceMap": "125:1726:76:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", "deployedSourceMap": "125:1726:76:-;;;;;;;;", "source": "pragma solidity ^0.5.0;\n\n/**\n * @title SafeMath\n * @dev Unsigned math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n /**\n * @dev Multiplies two unsigned integers, reverts on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b);\n\n return c;\n }\n\n /**\n * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Adds two unsigned integers, reverts on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a);\n\n return c;\n }\n\n /**\n * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),\n * reverts when dividing by zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0);\n return a % b;\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ 21308 ] }, "id": 21309, "nodeType": "SourceUnit", "nodes": [ { "id": 21182, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:76" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title SafeMath\n@dev Unsigned math operations with safety checks that revert on error", "fullyImplemented": true, "id": 21308, "linearizedBaseContracts": [ 21308 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 21214, "nodeType": "Block", "src": "296:354:76", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21191, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21184, "src": "527:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 21192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "532:1:76", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "527:6:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 21197, "nodeType": "IfStatement", "src": "523:45:76", "trueBody": { "id": 21196, "nodeType": "Block", "src": "535:33:76", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", "id": 21194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "556:1:76", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 21190, "id": 21195, "nodeType": "Return", "src": "549:8:76" } ] } }, { "assignments": [ 21199 ], "declarations": [ { "constant": false, "id": 21199, "name": "c", "nodeType": "VariableDeclaration", "scope": 21214, "src": "578:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21198, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "578:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 21203, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21200, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21184, "src": "590:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 21201, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21186, "src": "594:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "590:5:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "578:17:76" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21205, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21199, "src": "613:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 21206, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21184, "src": "617:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "613:5:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 21208, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21186, "src": "622:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "613:10:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21204, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 22174, 22175 ], "referencedDeclaration": 22174, "src": "605:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21210, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "605:19:76", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21211, "nodeType": "ExpressionStatement", "src": "605:19:76" }, { "expression": { "argumentTypes": null, "id": 21212, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21199, "src": "642:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 21190, "id": 21213, "nodeType": "Return", "src": "635:8:76" } ] }, "documentation": "@dev Multiplies two unsigned integers, reverts on overflow.", "id": 21215, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 21187, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21184, "name": "a", "nodeType": "VariableDeclaration", "scope": 21215, "src": "242:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21183, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "242:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21186, "name": "b", "nodeType": "VariableDeclaration", "scope": 21215, "src": "253:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21185, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "253:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "241:22:76" }, "returnParameters": { "id": 21190, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21189, "name": "", "nodeType": "VariableDeclaration", "scope": 21215, "src": "287:7:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21188, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "287:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "286:9:76" }, "scope": 21308, "src": "229:421:76", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 21238, "nodeType": "Block", "src": "845:229:76", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21225, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21219, "src": "929:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 21226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "933:1:76", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "929:5:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21224, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 22174, 22175 ], "referencedDeclaration": 22174, "src": "921:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21228, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "921:14:76", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21229, "nodeType": "ExpressionStatement", "src": "921:14:76" }, { "assignments": [ 21231 ], "declarations": [ { "constant": false, "id": 21231, "name": "c", "nodeType": "VariableDeclaration", "scope": 21238, "src": "945:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21230, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "945:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 21235, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21232, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21217, "src": "957:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 21233, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21219, "src": "961:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "957:5:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "945:17:76" }, { "expression": { "argumentTypes": null, "id": 21236, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21231, "src": "1066:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 21223, "id": 21237, "nodeType": "Return", "src": "1059:8:76" } ] }, "documentation": "@dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.", "id": 21239, "implemented": true, "kind": "function", "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 21220, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21217, "name": "a", "nodeType": "VariableDeclaration", "scope": 21239, "src": "791:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21216, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "791:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21219, "name": "b", "nodeType": "VariableDeclaration", "scope": 21239, "src": "802:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21218, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "802:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "790:22:76" }, "returnParameters": { "id": 21223, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21222, "name": "", "nodeType": "VariableDeclaration", "scope": 21239, "src": "836:7:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "836:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "835:9:76" }, "scope": 21308, "src": "778:296:76", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 21262, "nodeType": "Block", "src": "1272:78:76", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21249, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21243, "src": "1290:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 21250, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21241, "src": "1295:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1290:6:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21248, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 22174, 22175 ], "referencedDeclaration": 22174, "src": "1282:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21252, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1282:15:76", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21253, "nodeType": "ExpressionStatement", "src": "1282:15:76" }, { "assignments": [ 21255 ], "declarations": [ { "constant": false, "id": 21255, "name": "c", "nodeType": "VariableDeclaration", "scope": 21262, "src": "1307:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21254, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1307:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 21259, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21256, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21241, "src": "1319:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 21257, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21243, "src": "1323:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1319:5:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1307:17:76" }, { "expression": { "argumentTypes": null, "id": 21260, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21255, "src": "1342:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 21247, "id": 21261, "nodeType": "Return", "src": "1335:8:76" } ] }, "documentation": "@dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).", "id": 21263, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 21244, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21241, "name": "a", "nodeType": "VariableDeclaration", "scope": 21263, "src": "1218:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21240, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1218:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21243, "name": "b", "nodeType": "VariableDeclaration", "scope": 21263, "src": "1229:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21242, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1229:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1217:22:76" }, "returnParameters": { "id": 21247, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21246, "name": "", "nodeType": "VariableDeclaration", "scope": 21263, "src": "1263:7:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21245, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1263:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1262:9:76" }, "scope": 21308, "src": "1205:145:76", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 21286, "nodeType": "Block", "src": "1498:78:76", "statements": [ { "assignments": [ 21273 ], "declarations": [ { "constant": false, "id": 21273, "name": "c", "nodeType": "VariableDeclaration", "scope": 21286, "src": "1508:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21272, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1508:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 21277, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21274, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21265, "src": "1520:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 21275, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21267, "src": "1524:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1520:5:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1508:17:76" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 21281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21279, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21273, "src": "1543:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 21280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21265, "src": "1548:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1543:6:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifi