{ "contractName": "StandardTokenData", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Deprecated: Use Open Zeppeling one instead\"}},\"settings\":{\"compilationTarget\":{\"@gnosis.pm/util-contracts/contracts/GnosisStandardToken.sol\":\"StandardTokenData\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":500},\"remappings\":[]},\"sources\":{\"@gnosis.pm/util-contracts/contracts/GnosisStandardToken.sol\":{\"keccak256\":\"0xdec5028208406e811c449a04e2932f7efeae629388cb6124550b8b048a645556\",\"urls\":[\"bzzr://f3d13a708f543b3ce72745cab321e6daf25d935fd12ba55a4152f1113eb6d5e4\"]},\"@gnosis.pm/util-contracts/contracts/Math.sol\":{\"keccak256\":\"0x857768cd0d460e33778dcde29e997b539640bbf37ea23832213b2e5039147ea5\",\"urls\":[\"bzzr://628f7e63a0d6a092aad389b70cc55d6d9c10cd9753f3644d5ea9dc75a3314a8e\"]},\"@gnosis.pm/util-contracts/contracts/Proxy.sol\":{\"keccak256\":\"0x2ff8795110cceafcab1010f157a4dd33e46378bb88fbdc3c313a6f0d62e3444f\",\"urls\":[\"bzzr://66d77feaf648ca17dd620f3e27463b4b6e6031fec7ccd64dfffc4c30bd57b467\"]},\"@gnosis.pm/util-contracts/contracts/Token.sol\":{\"keccak256\":\"0x364778f634c900ed83553e17ef1284bd33fa68a738e668f664b4a0fa675bb586\",\"urls\":[\"bzzr://cb31caaf3364dbf5d688adb10de074284845b142c26d23a47b09ee510dd4a432\"]}},\"version\":1}", "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820a0bd439ac45825ff45fb43e1f564b9f7838fc05cc32bfb75f1cfe35bd13d88370029", "deployedBytecode": "0x6080604052600080fdfea165627a7a72305820a0bd439ac45825ff45fb43e1f564b9f7838fc05cc32bfb75f1cfe35bd13d88370029", "sourceMap": "144:183:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;144:183:4;;;;;;;", "deployedSourceMap": "144:183:4:-;;;;;", "source": "pragma solidity ^0.5.2;\nimport \"./Token.sol\";\nimport \"./Math.sol\";\nimport \"./Proxy.sol\";\n\n/**\n * Deprecated: Use Open Zeppeling one instead\n */\ncontract StandardTokenData {\n /*\n * Storage\n */\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowances;\n uint totalTokens;\n}\n\n/**\n * Deprecated: Use Open Zeppeling one instead\n */\n/// @title Standard token contract with overflow protection\ncontract GnosisStandardToken is Token, StandardTokenData {\n using GnosisMath for *;\n\n /*\n * Public functions\n */\n /// @dev Transfers sender's tokens to a given address. Returns success\n /// @param to Address of token receiver\n /// @param value Number of tokens to transfer\n /// @return Was transfer successful?\n function transfer(address to, uint value) public returns (bool) {\n if (!balances[msg.sender].safeToSub(value) || !balances[to].safeToAdd(value)) {\n return false;\n }\n\n balances[msg.sender] -= value;\n balances[to] += value;\n emit Transfer(msg.sender, to, value);\n return true;\n }\n\n /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success\n /// @param from Address from where tokens are withdrawn\n /// @param to Address to where tokens are sent\n /// @param value Number of tokens to transfer\n /// @return Was transfer successful?\n function transferFrom(address from, address to, uint value) public returns (bool) {\n if (!balances[from].safeToSub(value) || !allowances[from][msg.sender].safeToSub(\n value\n ) || !balances[to].safeToAdd(value)) {\n return false;\n }\n balances[from] -= value;\n allowances[from][msg.sender] -= value;\n balances[to] += value;\n emit Transfer(from, to, value);\n return true;\n }\n\n /// @dev Sets approved amount of tokens for spender. Returns success\n /// @param spender Address of allowed account\n /// @param value Number of approved tokens\n /// @return Was approval successful?\n function approve(address spender, uint value) public returns (bool) {\n allowances[msg.sender][spender] = value;\n emit Approval(msg.sender, spender, value);\n return true;\n }\n\n /// @dev Returns number of allowed tokens for given address\n /// @param owner Address of token owner\n /// @param spender Address of token spender\n /// @return Remaining allowance for spender\n function allowance(address owner, address spender) public view returns (uint) {\n return allowances[owner][spender];\n }\n\n /// @dev Returns number of tokens owned by given address\n /// @param owner Address of token owner\n /// @return Balance of owner\n function balanceOf(address owner) public view returns (uint) {\n return balances[owner];\n }\n\n /// @dev Returns total supply of tokens\n /// @return Total supply\n function totalSupply() public view returns (uint) {\n return totalTokens;\n }\n}\n", "sourcePath": "@gnosis.pm/util-contracts/contracts/GnosisStandardToken.sol", "ast": { "absolutePath": "@gnosis.pm/util-contracts/contracts/GnosisStandardToken.sol", "exportedSymbols": { "GnosisStandardToken": [ 329 ], "StandardTokenData": [ 135 ] }, "id": 330, "nodeType": "SourceUnit", "nodes": [ { "id": 119, "literals": [ "solidity", "^", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "0:23:4" }, { "absolutePath": "@gnosis.pm/util-contracts/contracts/Token.sol", "file": "./Token.sol", "id": 120, "nodeType": "ImportDirective", "scope": 330, "sourceUnit": 1564, "src": "24:21:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@gnosis.pm/util-contracts/contracts/Math.sol", "file": "./Math.sol", "id": 121, "nodeType": "ImportDirective", "scope": 330, "sourceUnit": 1459, "src": "46:20:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@gnosis.pm/util-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", "id": 122, "nodeType": "ImportDirective", "scope": 330, "sourceUnit": 1495, "src": "67:21:4", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "Deprecated: Use Open Zeppeling one instead", "fullyImplemented": true, "id": 135, "linearizedBaseContracts": [ 135 ], "name": "StandardTokenData", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 126, "name": "balances", "nodeType": "VariableDeclaration", "scope": 135, "src": "208:33:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 125, "keyType": { "id": 123, "name": "address", "nodeType": "ElementaryTypeName", "src": "216:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "208:24:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 124, "name": "uint", "nodeType": "ElementaryTypeName", "src": "227:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 132, "name": "allowances", "nodeType": "VariableDeclaration", "scope": 135, "src": "247:55:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 131, "keyType": { "id": 127, "name": "address", "nodeType": "ElementaryTypeName", "src": "255:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "247:44:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 130, "keyType": { "id": 128, "name": "address", "nodeType": "ElementaryTypeName", "src": "274:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "266:24:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 129, "name": "uint", "nodeType": "ElementaryTypeName", "src": "285:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 134, "name": "totalTokens", "nodeType": "VariableDeclaration", "scope": 135, "src": "308:16:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 133, "name": "uint", "nodeType": "ElementaryTypeName", "src": "308:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "scope": 330, "src": "144:183:4" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 136, "name": "Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1563, "src": "475:5:4", "typeDescriptions": { "typeIdentifier": "t_contract$_Token_$1563", "typeString": "contract Token" } }, "id": 137, "nodeType": "InheritanceSpecifier", "src": "475:5:4" }, { "arguments": null, "baseName": { "contractScope": null, "id": 138, "name": "StandardTokenData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 135, "src": "482:17:4", "typeDescriptions": { "typeIdentifier": "t_contract$_StandardTokenData_$135", "typeString": "contract StandardTokenData" } }, "id": 139, "nodeType": "InheritanceSpecifier", "src": "482:17:4" } ], "contractDependencies": [ 135, 1563 ], "contractKind": "contract", "documentation": "@title Standard token contract with overflow protection", "fullyImplemented": true, "id": 329, "linearizedBaseContracts": [ 329, 135, 1563 ], "name": "GnosisStandardToken", "nodeType": "ContractDefinition", "nodes": [ { "id": 141, "libraryName": { "contractScope": null, "id": 140, "name": "GnosisMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1458, "src": "512:10:4", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisMath_$1458", "typeString": "library GnosisMath" } }, "nodeType": "UsingForDirective", "src": "506:23:4", "typeName": null }, { "body": { "id": 192, "nodeType": "Block", "src": "849:269:4", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "863:38:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 155, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "895:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 150, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "864:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 153, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 151, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "873:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "873:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "864:20:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToSub", "nodeType": "MemberAccess", "referencedDeclaration": 1221, "src": "864:30:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 156, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "864:37:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "id": 164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "905:30:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 162, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "929:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 158, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "906:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 160, "indexExpression": { "argumentTypes": null, "id": 159, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 143, "src": "915:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "906:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToAdd", "nodeType": "MemberAccess", "referencedDeclaration": 1207, "src": "906:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 163, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "906:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "863:72:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 169, "nodeType": "IfStatement", "src": "859:115:4", "trueBody": { "id": 168, "nodeType": "Block", "src": "937:37:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "958:5:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 149, "id": 167, "nodeType": "Return", "src": "951:12:4" } ] } }, { "expression": { "argumentTypes": null, "id": 175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 170, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "984:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 173, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 171, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "993:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "993:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "984:20:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "argumentTypes": null, "id": 174, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "1008:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "984:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 176, "nodeType": "ExpressionStatement", "src": "984:29:4" }, { "expression": { "argumentTypes": null, "id": 181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 177, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1023:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 179, "indexExpression": { "argumentTypes": null, "id": 178, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 143, "src": "1032:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1023:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "id": 180, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "1039:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1023:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 182, "nodeType": "ExpressionStatement", "src": "1023:21:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 184, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "1068:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1068:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 186, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 143, "src": "1080:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 187, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "1084:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 183, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1504, "src": "1059:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 188, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1059:31:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 189, "nodeType": "EmitStatement", "src": "1054:36:4" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1107:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 149, "id": 191, "nodeType": "Return", "src": "1100:11:4" } ] }, "documentation": "@dev Transfers sender's tokens to a given address. Returns success\n @param to Address of token receiver\n @param value Number of tokens to transfer\n @return Was transfer successful?", "id": 193, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 146, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 143, "name": "to", "nodeType": "VariableDeclaration", "scope": 193, "src": "803:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 142, "name": "address", "nodeType": "ElementaryTypeName", "src": "803:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 145, "name": "value", "nodeType": "VariableDeclaration", "scope": 193, "src": "815:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 144, "name": "uint", "nodeType": "ElementaryTypeName", "src": "815:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "802:24:4" }, "returnParameters": { "id": 149, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 148, "name": "", "nodeType": "VariableDeclaration", "scope": 193, "src": "843:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 147, "name": "bool", "nodeType": "ElementaryTypeName", "src": "843:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "842:6:4" }, "scope": 329, "src": "785:333:4", "stateMutability": "nonpayable", "superFunction": 1521, "visibility": "public" }, { "body": { "id": 263, "nodeType": "Block", "src": "1512:369:4", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1526:32:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 208, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1552:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 204, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1527:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 206, "indexExpression": { "argumentTypes": null, "id": 205, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1536:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1527:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToSub", "nodeType": "MemberAccess", "referencedDeclaration": 1221, "src": "1527:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 209, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1527:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "id": 220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1562:68:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 218, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1615:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 211, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "1563:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 213, "indexExpression": { "argumentTypes": null, "id": 212, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1574:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1563:16:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 216, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 214, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "1580:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1580:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1563:28:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToSub", "nodeType": "MemberAccess", "referencedDeclaration": 1221, "src": "1563:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1563:67:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1526:104:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "id": 228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1634:30:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 226, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1658:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 222, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1635:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 224, "indexExpression": { "argumentTypes": null, "id": 223, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1644:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1635:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToAdd", "nodeType": "MemberAccess", "referencedDeclaration": 1207, "src": "1635:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1635:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1526:138:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 233, "nodeType": "IfStatement", "src": "1522:181:4", "trueBody": { "id": 232, "nodeType": "Block", "src": "1666:37:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1687:5:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 203, "id": 231, "nodeType": "Return", "src": "1680:12:4" } ] } }, { "expression": { "argumentTypes": null, "id": 238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 234, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1712:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 236, "indexExpression": { "argumentTypes": null, "id": 235, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1721:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1712:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "argumentTypes": null, "id": 237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1730:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1712:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 239, "nodeType": "ExpressionStatement", "src": "1712:23:4" }, { "expression": { "argumentTypes": null, "id": 247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 240, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "1745:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 244, "indexExpression": { "argumentTypes": null, "id": 241, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1756:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1745:16:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 245, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 242, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "1762:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1762:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1745:28:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "argumentTypes": null, "id": 246, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1777:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1745:37:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 248, "nodeType": "ExpressionStatement", "src": "1745:37:4" }, { "expression": { "argumentTypes": null, "id": 253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 249, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1792:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 251, "indexExpression": { "argumentTypes": null, "id": 250, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1801:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1792:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "id": 252, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1808:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1792:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 254, "nodeType": "ExpressionStatement", "src": "1792:21:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 256, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1837:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 257, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1843:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 258, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1847:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 255, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1504, "src": "1828:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1828:25:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 260, "nodeType": "EmitStatement", "src": "1823:30:4" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1870:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 203, "id": 262, "nodeType": "Return", "src": "1863:11:4" } ] }, "documentation": "@dev Allows allowed third party to transfer tokens from one address to another. Returns success\n @param from Address from where tokens are withdrawn\n @param to Address to where tokens are sent\n @param value Number of tokens to transfer\n @return Was transfer successful?", "id": 264, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 200, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 195, "name": "from", "nodeType": "VariableDeclaration", "scope": 264, "src": "1452:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 194, "name": "address", "nodeType": "ElementaryTypeName", "src": "1452:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 197, "name": "to", "nodeType": "VariableDeclaration", "scope": 264, "src": "1466:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 196, "name": "address", "nodeType": "ElementaryTypeName", "src": "1466:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 199, "name": "value", "nodeType": "VariableDeclaration", "scope": 264, "src": "1478:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1478:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1451:38:4" }, "returnParameters": { "id": 203, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 202, "name": "", "nodeType": "VariableDeclaration", "scope": 264, "src": "1506:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 201, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1506:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1505:6:4" }, "scope": 329, "src": "1430:451:4", "stateMutability": "nonpayable", "superFunction": 1532, "visibility": "public" }, { "body": { "id": 291, "nodeType": "Block", "src": "2166:128:4", "statements": [ { "expression": { "argumentTypes": null, "id": 280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 273, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "2176:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 277, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 274, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "2187:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2187:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2176:22:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 278, "indexExpression": { "argumentTypes": null, "id": 276, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 266, "src": "2199:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2176:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 279, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 268, "src": "2210:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2176:39:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 281, "nodeType": "ExpressionStatement", "src": "2176:39:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 283, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "2239:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2239:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 285, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 266, "src": "2251:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 286, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 268, "src": "2260:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 282, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1512, "src": "2230:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2230:36:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 288, "nodeType": "EmitStatement", "src": "2225:41:4" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2283:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 272, "id": 290, "nodeType": "Return", "src": "2276:11:4" } ] }, "documentation": "@dev Sets approved amount of tokens for spender. Returns success\n @param spender Address of allowed account\n @param value Number of approved tokens\n @return Was approval successful?", "id": 292, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 269, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 266, "name": "spender", "nodeType": "VariableDeclaration", "scope": 292, "src": "2115:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 265, "name": "address", "nodeType": "ElementaryTypeName", "src": "2115:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 268, "name": "value", "nodeType": "VariableDeclaration", "scope": 292, "src": "2132:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 267, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2132:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2114:29:4" }, "returnParameters": { "id": 272, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 271, "name": "", "nodeType": "VariableDeclaration", "scope": 292, "src": "2160:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 270, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2160:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "2159:6:4" }, "scope": 329, "src": "2098:196:4", "stateMutability": "nonpayable", "superFunction": 1541, "visibility": "public" }, { "body": { "id": 307, "nodeType": "Block", "src": "2582:50:4", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 301, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "2599:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 303, "indexExpression": { "argumentTypes": null, "id": 302, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 294, "src": "2610:5:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2599:17:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 305, "indexExpression": { "argumentTypes": null, "id": 304, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 296, "src": "2617:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2599:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 300, "id": 306, "nodeType": "Return", "src": "2592:33:4" } ] }, "documentation": "@dev Returns number of allowed tokens for given address\n @param owner Address of token owner\n @param spender Address of token spender\n @return Remaining allowance for spender", "id": 308, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 297, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 294, "name": "owner", "nodeType": "VariableDeclaration", "scope": 308, "src": "2523:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 293, "name": "address", "nodeType": "ElementaryTypeName", "src": "2523:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 296, "name": "spender", "nodeType": "VariableDeclaration", "scope": 308, "src": "2538:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 295, "name": "address", "nodeType": "ElementaryTypeName", "src": "2538:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2522:32:4" }, "returnParameters": { "id": 300, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 299, "name": "", "nodeType": "VariableDeclaration", "scope": 308, "src": "2576:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 298, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2576:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2575:6:4" }, "scope": 329, "src": "2504:128:4", "stateMutability": "view", "superFunction": 1557, "visibility": "public" }, { "body": { "id": 319, "nodeType": "Block", "src": "2837:39:4", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 315, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "2854:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 317, "indexExpression": { "argumentTypes": null, "id": 316, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 310, "src": "2863:5:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2854:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 314, "id": 318, "nodeType": "Return", "src": "2847:22:4" } ] }, "documentation": "@dev Returns number of tokens owned by given address\n @param owner Address of token owner\n @return Balance of owner", "id": 320, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 311, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 310, "name": "owner", "nodeType": "VariableDeclaration", "scope": 320, "src": "2795:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 309, "name": "address", "nodeType": "ElementaryTypeName", "src": "2795:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2794:15:4" }, "returnParameters": { "id": 314, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 313, "name": "", "nodeType": "VariableDeclaration", "scope": 320, "src": "2831:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 312, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2831:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2830:6:4" }, "scope": 329, "src": "2776:100:4", "stateMutability": "view", "superFunction": 1548, "visibility": "public" }, { "body": { "id": 327, "nodeType": "Block", "src": "3005:35:4", "statements": [ { "expression": { "argumentTypes": null, "id": 325, "name": "totalTokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 134, "src": "3022:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 324, "id": 326, "nodeType": "Return", "src": "3015:18:4" } ] }, "documentation": "@dev Returns total supply of tokens\n @return Total supply", "id": 328, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 321, "nodeType": "ParameterList", "parameters": [], "src": "2975:2:4" }, "returnParameters": { "id": 324, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 323, "name": "", "nodeType": "VariableDeclaration", "scope": 328, "src": "2999:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 322, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2999:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2998:6:4" }, "scope": 329, "src": "2955:85:4", "stateMutability": "view", "superFunction": 1562, "visibility": "public" } ], "scope": 330, "src": "443:2599:4" } ], "src": "0:3043:4" }, "legacyAST": { "absolutePath": "@gnosis.pm/util-contracts/contracts/GnosisStandardToken.sol", "exportedSymbols": { "GnosisStandardToken": [ 329 ], "StandardTokenData": [ 135 ] }, "id": 330, "nodeType": "SourceUnit", "nodes": [ { "id": 119, "literals": [ "solidity", "^", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "0:23:4" }, { "absolutePath": "@gnosis.pm/util-contracts/contracts/Token.sol", "file": "./Token.sol", "id": 120, "nodeType": "ImportDirective", "scope": 330, "sourceUnit": 1564, "src": "24:21:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@gnosis.pm/util-contracts/contracts/Math.sol", "file": "./Math.sol", "id": 121, "nodeType": "ImportDirective", "scope": 330, "sourceUnit": 1459, "src": "46:20:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@gnosis.pm/util-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", "id": 122, "nodeType": "ImportDirective", "scope": 330, "sourceUnit": 1495, "src": "67:21:4", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "Deprecated: Use Open Zeppeling one instead", "fullyImplemented": true, "id": 135, "linearizedBaseContracts": [ 135 ], "name": "StandardTokenData", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 126, "name": "balances", "nodeType": "VariableDeclaration", "scope": 135, "src": "208:33:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 125, "keyType": { "id": 123, "name": "address", "nodeType": "ElementaryTypeName", "src": "216:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "208:24:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 124, "name": "uint", "nodeType": "ElementaryTypeName", "src": "227:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 132, "name": "allowances", "nodeType": "VariableDeclaration", "scope": 135, "src": "247:55:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 131, "keyType": { "id": 127, "name": "address", "nodeType": "ElementaryTypeName", "src": "255:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "247:44:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 130, "keyType": { "id": 128, "name": "address", "nodeType": "ElementaryTypeName", "src": "274:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "266:24:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 129, "name": "uint", "nodeType": "ElementaryTypeName", "src": "285:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 134, "name": "totalTokens", "nodeType": "VariableDeclaration", "scope": 135, "src": "308:16:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 133, "name": "uint", "nodeType": "ElementaryTypeName", "src": "308:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "scope": 330, "src": "144:183:4" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 136, "name": "Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1563, "src": "475:5:4", "typeDescriptions": { "typeIdentifier": "t_contract$_Token_$1563", "typeString": "contract Token" } }, "id": 137, "nodeType": "InheritanceSpecifier", "src": "475:5:4" }, { "arguments": null, "baseName": { "contractScope": null, "id": 138, "name": "StandardTokenData", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 135, "src": "482:17:4", "typeDescriptions": { "typeIdentifier": "t_contract$_StandardTokenData_$135", "typeString": "contract StandardTokenData" } }, "id": 139, "nodeType": "InheritanceSpecifier", "src": "482:17:4" } ], "contractDependencies": [ 135, 1563 ], "contractKind": "contract", "documentation": "@title Standard token contract with overflow protection", "fullyImplemented": true, "id": 329, "linearizedBaseContracts": [ 329, 135, 1563 ], "name": "GnosisStandardToken", "nodeType": "ContractDefinition", "nodes": [ { "id": 141, "libraryName": { "contractScope": null, "id": 140, "name": "GnosisMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1458, "src": "512:10:4", "typeDescriptions": { "typeIdentifier": "t_contract$_GnosisMath_$1458", "typeString": "library GnosisMath" } }, "nodeType": "UsingForDirective", "src": "506:23:4", "typeName": null }, { "body": { "id": 192, "nodeType": "Block", "src": "849:269:4", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "863:38:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 155, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "895:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 150, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "864:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 153, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 151, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "873:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "873:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "864:20:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToSub", "nodeType": "MemberAccess", "referencedDeclaration": 1221, "src": "864:30:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 156, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "864:37:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "id": 164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "905:30:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 162, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "929:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 158, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "906:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 160, "indexExpression": { "argumentTypes": null, "id": 159, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 143, "src": "915:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "906:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToAdd", "nodeType": "MemberAccess", "referencedDeclaration": 1207, "src": "906:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 163, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "906:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "863:72:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 169, "nodeType": "IfStatement", "src": "859:115:4", "trueBody": { "id": 168, "nodeType": "Block", "src": "937:37:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "958:5:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 149, "id": 167, "nodeType": "Return", "src": "951:12:4" } ] } }, { "expression": { "argumentTypes": null, "id": 175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 170, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "984:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 173, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 171, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "993:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "993:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "984:20:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "argumentTypes": null, "id": 174, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "1008:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "984:29:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 176, "nodeType": "ExpressionStatement", "src": "984:29:4" }, { "expression": { "argumentTypes": null, "id": 181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 177, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1023:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 179, "indexExpression": { "argumentTypes": null, "id": 178, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 143, "src": "1032:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1023:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "id": 180, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "1039:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1023:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 182, "nodeType": "ExpressionStatement", "src": "1023:21:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 184, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "1068:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1068:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 186, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 143, "src": "1080:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 187, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "1084:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 183, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1504, "src": "1059:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 188, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1059:31:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 189, "nodeType": "EmitStatement", "src": "1054:36:4" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1107:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 149, "id": 191, "nodeType": "Return", "src": "1100:11:4" } ] }, "documentation": "@dev Transfers sender's tokens to a given address. Returns success\n @param to Address of token receiver\n @param value Number of tokens to transfer\n @return Was transfer successful?", "id": 193, "implemented": true, "kind": "function", "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 146, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 143, "name": "to", "nodeType": "VariableDeclaration", "scope": 193, "src": "803:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 142, "name": "address", "nodeType": "ElementaryTypeName", "src": "803:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 145, "name": "value", "nodeType": "VariableDeclaration", "scope": 193, "src": "815:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 144, "name": "uint", "nodeType": "ElementaryTypeName", "src": "815:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "802:24:4" }, "returnParameters": { "id": 149, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 148, "name": "", "nodeType": "VariableDeclaration", "scope": 193, "src": "843:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 147, "name": "bool", "nodeType": "ElementaryTypeName", "src": "843:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "842:6:4" }, "scope": 329, "src": "785:333:4", "stateMutability": "nonpayable", "superFunction": 1521, "visibility": "public" }, { "body": { "id": 263, "nodeType": "Block", "src": "1512:369:4", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1526:32:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 208, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1552:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 204, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1527:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 206, "indexExpression": { "argumentTypes": null, "id": 205, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1536:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1527:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToSub", "nodeType": "MemberAccess", "referencedDeclaration": 1221, "src": "1527:24:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 209, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1527:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "id": 220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1562:68:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 218, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1615:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 211, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "1563:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 213, "indexExpression": { "argumentTypes": null, "id": 212, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1574:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1563:16:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 216, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 214, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "1580:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1580:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1563:28:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToSub", "nodeType": "MemberAccess", "referencedDeclaration": 1221, "src": "1563:38:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 219, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1563:67:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1526:104:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "id": 228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1634:30:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 226, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1658:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 222, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1635:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 224, "indexExpression": { "argumentTypes": null, "id": 223, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1644:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1635:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeToAdd", "nodeType": "MemberAccess", "referencedDeclaration": 1207, "src": "1635:22:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 227, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1635:29:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1526:138:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 233, "nodeType": "IfStatement", "src": "1522:181:4", "trueBody": { "id": 232, "nodeType": "Block", "src": "1666:37:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1687:5:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 203, "id": 231, "nodeType": "Return", "src": "1680:12:4" } ] } }, { "expression": { "argumentTypes": null, "id": 238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 234, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1712:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 236, "indexExpression": { "argumentTypes": null, "id": 235, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1721:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1712:14:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "argumentTypes": null, "id": 237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1730:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1712:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 239, "nodeType": "ExpressionStatement", "src": "1712:23:4" }, { "expression": { "argumentTypes": null, "id": 247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 240, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "1745:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 244, "indexExpression": { "argumentTypes": null, "id": 241, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1756:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1745:16:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 245, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 242, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "1762:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1762:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1745:28:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "argumentTypes": null, "id": 246, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1777:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1745:37:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 248, "nodeType": "ExpressionStatement", "src": "1745:37:4" }, { "expression": { "argumentTypes": null, "id": 253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 249, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "1792:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 251, "indexExpression": { "argumentTypes": null, "id": 250, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1801:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1792:12:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "id": 252, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1808:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1792:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 254, "nodeType": "ExpressionStatement", "src": "1792:21:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 256, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 195, "src": "1837:4:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 257, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1843:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 258, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "1847:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 255, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1504, "src": "1828:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1828:25:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 260, "nodeType": "EmitStatement", "src": "1823:30:4" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1870:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 203, "id": 262, "nodeType": "Return", "src": "1863:11:4" } ] }, "documentation": "@dev Allows allowed third party to transfer tokens from one address to another. Returns success\n @param from Address from where tokens are withdrawn\n @param to Address to where tokens are sent\n @param value Number of tokens to transfer\n @return Was transfer successful?", "id": 264, "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 200, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 195, "name": "from", "nodeType": "VariableDeclaration", "scope": 264, "src": "1452:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 194, "name": "address", "nodeType": "ElementaryTypeName", "src": "1452:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 197, "name": "to", "nodeType": "VariableDeclaration", "scope": 264, "src": "1466:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 196, "name": "address", "nodeType": "ElementaryTypeName", "src": "1466:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 199, "name": "value", "nodeType": "VariableDeclaration", "scope": 264, "src": "1478:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 198, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1478:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1451:38:4" }, "returnParameters": { "id": 203, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 202, "name": "", "nodeType": "VariableDeclaration", "scope": 264, "src": "1506:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 201, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1506:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1505:6:4" }, "scope": 329, "src": "1430:451:4", "stateMutability": "nonpayable", "superFunction": 1532, "visibility": "public" }, { "body": { "id": 291, "nodeType": "Block", "src": "2166:128:4", "statements": [ { "expression": { "argumentTypes": null, "id": 280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 273, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "2176:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 277, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 274, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "2187:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2187:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2176:22:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 278, "indexExpression": { "argumentTypes": null, "id": 276, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 266, "src": "2199:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2176:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 279, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 268, "src": "2210:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2176:39:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 281, "nodeType": "ExpressionStatement", "src": "2176:39:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 283, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1578, "src": "2239:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2239:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 285, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 266, "src": "2251:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 286, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 268, "src": "2260:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 282, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1512, "src": "2230:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2230:36:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 288, "nodeType": "EmitStatement", "src": "2225:41:4" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2283:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 272, "id": 290, "nodeType": "Return", "src": "2276:11:4" } ] }, "documentation": "@dev Sets approved amount of tokens for spender. Returns success\n @param spender Address of allowed account\n @param value Number of approved tokens\n @return Was approval successful?", "id": 292, "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 269, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 266, "name": "spender", "nodeType": "VariableDeclaration", "scope": 292, "src": "2115:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 265, "name": "address", "nodeType": "ElementaryTypeName", "src": "2115:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 268, "name": "value", "nodeType": "VariableDeclaration", "scope": 292, "src": "2132:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 267, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2132:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2114:29:4" }, "returnParameters": { "id": 272, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 271, "name": "", "nodeType": "VariableDeclaration", "scope": 292, "src": "2160:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 270, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2160:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "2159:6:4" }, "scope": 329, "src": "2098:196:4", "stateMutability": "nonpayable", "superFunction": 1541, "visibility": "public" }, { "body": { "id": 307, "nodeType": "Block", "src": "2582:50:4", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 301, "name": "allowances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 132, "src": "2599:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 303, "indexExpression": { "argumentTypes": null, "id": 302, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 294, "src": "2610:5:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2599:17:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 305, "indexExpression": { "argumentTypes": null, "id": 304, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 296, "src": "2617:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2599:26:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 300, "id": 306, "nodeType": "Return", "src": "2592:33:4" } ] }, "documentation": "@dev Returns number of allowed tokens for given address\n @param owner Address of token owner\n @param spender Address of token spender\n @return Remaining allowance for spender", "id": 308, "implemented": true, "kind": "function", "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 297, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 294, "name": "owner", "nodeType": "VariableDeclaration", "scope": 308, "src": "2523:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 293, "name": "address", "nodeType": "ElementaryTypeName", "src": "2523:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 296, "name": "spender", "nodeType": "VariableDeclaration", "scope": 308, "src": "2538:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 295, "name": "address", "nodeType": "ElementaryTypeName", "src": "2538:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2522:32:4" }, "returnParameters": { "id": 300, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 299, "name": "", "nodeType": "VariableDeclaration", "scope": 308, "src": "2576:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 298, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2576:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2575:6:4" }, "scope": 329, "src": "2504:128:4", "stateMutability": "view", "superFunction": 1557, "visibility": "public" }, { "body": { "id": 319, "nodeType": "Block", "src": "2837:39:4", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 315, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, "src": "2854:8:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 317, "indexExpression": { "argumentTypes": null, "id": 316, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 310, "src": "2863:5:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2854:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 314, "id": 318, "nodeType": "Return", "src": "2847:22:4" } ] }, "documentation": "@dev Returns number of tokens owned by given address\n @param owner Address of token owner\n @return Balance of owner", "id": 320, "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 311, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 310, "name": "owner", "nodeType": "VariableDeclaration", "scope": 320, "src": "2795:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 309, "name": "address", "nodeType": "ElementaryTypeName", "src": "2795:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2794:15:4" }, "returnParameters": { "id": 314, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 313, "name": "", "nodeType": "VariableDeclaration", "scope": 320, "src": "2831:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 312, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2831:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2830:6:4" }, "scope": 329, "src": "2776:100:4", "stateMutability": "view", "superFunction": 1548, "visibility": "public" }, { "body": { "id": 327, "nodeType": "Block", "src": "3005:35:4", "statements": [ { "expression": { "argumentTypes": null, "id": 325, "name": "totalTokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 134, "src": "3022:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 324, "id": 326, "nodeType": "Return", "src": "3015:18:4" } ] }, "documentation": "@dev Returns total supply of tokens\n @return Total supply", "id": 328, "implemented": true, "kind": "function", "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 321, "nodeType": "ParameterList", "parameters": [], "src": "2975:2:4" }, "returnParameters": { "id": 324, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 323, "name": "", "nodeType": "VariableDeclaration", "scope": 328, "src": "2999:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 322, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2999:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2998:6:4" }, "scope": 329, "src": "2955:85:4", "stateMutability": "view", "superFunction": 1562, "visibility": "public" } ], "scope": 330, "src": "443:2599:4" } ], "src": "0:3043:4" }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.10", "updatedAt": "2019-05-31T13:47:05.347Z", "devdoc": { "methods": {} }, "userdoc": { "methods": {}, "notice": "Deprecated: Use Open Zeppeling one instead" } }