{ "contractName": "SafeMath", "abi": [], "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820c0bfb3cbee4dda6c9ad5d0a060222964e40f6d38d2560af507f78ceb43bf4c860029", "deployedBytecode": "0x6060604052600080fd00a165627a7a72305820c0bfb3cbee4dda6c9ad5d0a060222964e40f6d38d2560af507f78ceb43bf4c860029", "sourceMap": "117:1021:3:-;;;;;;;;;;;;;;;;;", "deployedSourceMap": "117:1021:3:-;;;;;", "source": "pragma solidity ^0.4.18;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that throw on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, throws on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n uint256 c = a * b;\n assert(c / a == b);\n return c;\n }\n\n /**\n * @dev Integer division of two numbers, truncating the quotient.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // assert(b > 0); // Solidity automatically throws when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n return c;\n }\n\n /**\n * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n /**\n * @dev Adds two numbers, throws on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n}", "sourcePath": "/Users/ted/Github/Team-H/Lesson-7/assignment/contracts/SafeMath.sol", "ast": { "absolutePath": "/Users/ted/Github/Team-H/Lesson-7/assignment/contracts/SafeMath.sol", "exportedSymbols": { "SafeMath": [ 785 ] }, "id": 786, "nodeType": "SourceUnit", "nodes": [ { "id": 689, "literals": [ "solidity", "^", "0.4", ".18" ], "nodeType": "PragmaDirective", "src": "0:24:3" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, "id": 785, "linearizedBaseContracts": [ 785 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 721, "nodeType": "Block", "src": "270:106:3", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 698, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 691, "src": "280:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 699, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "285:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "280:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 704, "nodeType": "IfStatement", "src": "276:35:3", "trueBody": { "id": 703, "nodeType": "Block", "src": "288:23:3", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", "id": 701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "303:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 697, "id": 702, "nodeType": "Return", "src": "296:8:3" } ] } }, { "assignments": [ 706 ], "declarations": [ { "constant": false, "id": 706, "name": "c", "nodeType": "VariableDeclaration", "scope": 722, "src": "316:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 705, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "316:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 710, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 707, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 691, "src": "328:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 708, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 693, "src": "332:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "328:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "316:17:3" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 712, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "346:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 713, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 691, "src": "350:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "346:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 715, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 693, "src": "355:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "346:10:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 711, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "339:6:3", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 717, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "339:18:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 718, "nodeType": "ExpressionStatement", "src": "339:18:3" }, { "expression": { "argumentTypes": null, "id": 719, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "370:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 697, "id": 720, "nodeType": "Return", "src": "363:8:3" } ] }, "id": 722, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 694, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 691, "name": "a", "nodeType": "VariableDeclaration", "scope": 722, "src": "216:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 690, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "216:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 693, "name": "b", "nodeType": "VariableDeclaration", "scope": 722, "src": "227:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 692, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "227:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "215:22:3" }, "payable": false, "returnParameters": { "id": 697, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 696, "name": "", "nodeType": "VariableDeclaration", "scope": 722, "src": "261:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 695, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "261:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "260:9:3" }, "scope": 785, "src": "203:173:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 739, "nodeType": "Block", "src": "525:198:3", "statements": [ { "assignments": [ 732 ], "declarations": [ { "constant": false, "id": 732, "name": "c", "nodeType": "VariableDeclaration", "scope": 740, "src": "605:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "605:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 736, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 733, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 724, "src": "617:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 734, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 726, "src": "621:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "617:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "605:17:3" }, { "expression": { "argumentTypes": null, "id": 737, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 732, "src": "717:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 730, "id": 738, "nodeType": "Return", "src": "710:8:3" } ] }, "id": 740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 727, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 724, "name": "a", "nodeType": "VariableDeclaration", "scope": 740, "src": "471:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "471:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 726, "name": "b", "nodeType": "VariableDeclaration", "scope": 740, "src": "482:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 725, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "482:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "470:22:3" }, "payable": false, "returnParameters": { "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 729, "name": "", "nodeType": "VariableDeclaration", "scope": 740, "src": "516:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 728, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "516:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "515:9:3" }, "scope": 785, "src": "458:265:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 759, "nodeType": "Block", "src": "902:43:3", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 750, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 744, "src": "915:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 751, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 742, "src": "920:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "915:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 749, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "908:6:3", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 753, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "908:14:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 754, "nodeType": "ExpressionStatement", "src": "908:14:3" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 755, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 742, "src": "935:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 756, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 744, "src": "939:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "935:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 748, "id": 758, "nodeType": "Return", "src": "928:12:3" } ] }, "id": 760, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 745, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 742, "name": "a", "nodeType": "VariableDeclaration", "scope": 760, "src": "848:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 741, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "848:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 744, "name": "b", "nodeType": "VariableDeclaration", "scope": 760, "src": "859:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 743, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "859:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "847:22:3" }, "payable": false, "returnParameters": { "id": 748, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 747, "name": "", "nodeType": "VariableDeclaration", "scope": 760, "src": "893:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 746, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "893:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "892:9:3" }, "scope": 785, "src": "835:110:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 783, "nodeType": "Block", "src": "1074:62:3", "statements": [ { "assignments": [ 770 ], "declarations": [ { "constant": false, "id": 770, "name": "c", "nodeType": "VariableDeclaration", "scope": 784, "src": "1080:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 769, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1080:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 774, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 773, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 771, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 762, "src": "1092:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 772, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 764, "src": "1096:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1092:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1080:17:3" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 776, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 770, "src": "1110:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 777, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 762, "src": "1115:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1110:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 775, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "1103:6:3", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 779, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1103:14:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 780, "nodeType": "ExpressionStatement", "src": "1103:14:3" }, { "expression": { "argumentTypes": null, "id": 781, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 770, "src": "1130:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 768, "id": 782, "nodeType": "Return", "src": "1123:8:3" } ] }, "id": 784, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 765, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 762, "name": "a", "nodeType": "VariableDeclaration", "scope": 784, "src": "1020:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 761, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1020:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 764, "name": "b", "nodeType": "VariableDeclaration", "scope": 784, "src": "1031:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1019:22:3" }, "payable": false, "returnParameters": { "id": 768, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 767, "name": "", "nodeType": "VariableDeclaration", "scope": 784, "src": "1065:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 766, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1065:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1064:9:3" }, "scope": 785, "src": "1007:129:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 786, "src": "117:1021:3" } ], "src": "0:1138:3" }, "legacyAST": { "absolutePath": "/Users/ted/Github/Team-H/Lesson-7/assignment/contracts/SafeMath.sol", "exportedSymbols": { "SafeMath": [ 785 ] }, "id": 786, "nodeType": "SourceUnit", "nodes": [ { "id": 689, "literals": [ "solidity", "^", "0.4", ".18" ], "nodeType": "PragmaDirective", "src": "0:24:3" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, "id": 785, "linearizedBaseContracts": [ 785 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 721, "nodeType": "Block", "src": "270:106:3", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 698, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 691, "src": "280:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 699, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "285:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "280:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 704, "nodeType": "IfStatement", "src": "276:35:3", "trueBody": { "id": 703, "nodeType": "Block", "src": "288:23:3", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", "id": 701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "303:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 697, "id": 702, "nodeType": "Return", "src": "296:8:3" } ] } }, { "assignments": [ 706 ], "declarations": [ { "constant": false, "id": 706, "name": "c", "nodeType": "VariableDeclaration", "scope": 722, "src": "316:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 705, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "316:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 710, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 707, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 691, "src": "328:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 708, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 693, "src": "332:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "328:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "316:17:3" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 712, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "346:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 713, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 691, "src": "350:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "346:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 715, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 693, "src": "355:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "346:10:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 711, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "339:6:3", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 717, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "339:18:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 718, "nodeType": "ExpressionStatement", "src": "339:18:3" }, { "expression": { "argumentTypes": null, "id": 719, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 706, "src": "370:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 697, "id": 720, "nodeType": "Return", "src": "363:8:3" } ] }, "id": 722, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 694, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 691, "name": "a", "nodeType": "VariableDeclaration", "scope": 722, "src": "216:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 690, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "216:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 693, "name": "b", "nodeType": "VariableDeclaration", "scope": 722, "src": "227:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 692, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "227:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "215:22:3" }, "payable": false, "returnParameters": { "id": 697, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 696, "name": "", "nodeType": "VariableDeclaration", "scope": 722, "src": "261:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 695, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "261:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "260:9:3" }, "scope": 785, "src": "203:173:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 739, "nodeType": "Block", "src": "525:198:3", "statements": [ { "assignments": [ 732 ], "declarations": [ { "constant": false, "id": 732, "name": "c", "nodeType": "VariableDeclaration", "scope": 740, "src": "605:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 731, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "605:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 736, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 733, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 724, "src": "617:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 734, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 726, "src": "621:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "617:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "605:17:3" }, { "expression": { "argumentTypes": null, "id": 737, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 732, "src": "717:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 730, "id": 738, "nodeType": "Return", "src": "710:8:3" } ] }, "id": 740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 727, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 724, "name": "a", "nodeType": "VariableDeclaration", "scope": 740, "src": "471:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 723, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "471:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 726, "name": "b", "nodeType": "VariableDeclaration", "scope": 740, "src": "482:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 725, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "482:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "470:22:3" }, "payable": false, "returnParameters": { "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 729, "name": "", "nodeType": "VariableDeclaration", "scope": 740, "src": "516:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 728, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "516:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "515:9:3" }, "scope": 785, "src": "458:265:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 759, "nodeType": "Block", "src": "902:43:3", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 750, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 744, "src": "915:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 751, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 742, "src": "920:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "915:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 749, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "908:6:3", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 753, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "908:14:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 754, "nodeType": "ExpressionStatement", "src": "908:14:3" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 755, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 742, "src": "935:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 756, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 744, "src": "939:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "935:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 748, "id": 758, "nodeType": "Return", "src": "928:12:3" } ] }, "id": 760, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 745, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 742, "name": "a", "nodeType": "VariableDeclaration", "scope": 760, "src": "848:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 741, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "848:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 744, "name": "b", "nodeType": "VariableDeclaration", "scope": 760, "src": "859:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 743, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "859:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "847:22:3" }, "payable": false, "returnParameters": { "id": 748, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 747, "name": "", "nodeType": "VariableDeclaration", "scope": 760, "src": "893:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 746, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "893:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "892:9:3" }, "scope": 785, "src": "835:110:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 783, "nodeType": "Block", "src": "1074:62:3", "statements": [ { "assignments": [ 770 ], "declarations": [ { "constant": false, "id": 770, "name": "c", "nodeType": "VariableDeclaration", "scope": 784, "src": "1080:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 769, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1080:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 774, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 773, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 771, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 762, "src": "1092:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 772, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 764, "src": "1096:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1092:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1080:17:3" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 776, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 770, "src": "1110:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 777, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 762, "src": "1115:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1110:6:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 775, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 811, "src": "1103:6:3", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 779, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1103:14:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 780, "nodeType": "ExpressionStatement", "src": "1103:14:3" }, { "expression": { "argumentTypes": null, "id": 781, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 770, "src": "1130:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 768, "id": 782, "nodeType": "Return", "src": "1123:8:3" } ] }, "id": 784, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 765, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 762, "name": "a", "nodeType": "VariableDeclaration", "scope": 784, "src": "1020:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 761, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1020:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 764, "name": "b", "nodeType": "VariableDeclaration", "scope": 784, "src": "1031:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1019:22:3" }, "payable": false, "returnParameters": { "id": 768, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 767, "name": "", "nodeType": "VariableDeclaration", "scope": 784, "src": "1065:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 766, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1065:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1064:9:3" }, "scope": 785, "src": "1007:129:3", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 786, "src": "117:1021:3" } ], "src": "0:1138:3" }, "compiler": { "name": "solc", "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", "updatedAt": "2018-04-02T07:08:50.943Z" }