{ "contractName": "GnosisStandardToken", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "spender", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "from", "type": "address" }, { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "owner", "type": "address" }, { "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns number of allowed tokens for given address\",\"params\":{\"owner\":\"Address of token owner\",\"spender\":\"Address of token spender\"},\"return\":\"Remaining allowance for spender\"},\"approve(address,uint256)\":{\"details\":\"Sets approved amount of tokens for spender. Returns success\",\"params\":{\"spender\":\"Address of allowed account\",\"value\":\"Number of approved tokens\"},\"return\":\"Was approval successful?\"},\"balanceOf(address)\":{\"details\":\"Returns number of tokens owned by given address\",\"params\":{\"owner\":\"Address of token owner\"},\"return\":\"Balance of owner\"},\"totalSupply()\":{\"details\":\"Returns total supply of tokens\",\"return\":\"Total supply\"},\"transfer(address,uint256)\":{\"details\":\"Transfers sender's tokens to a given address. Returns success\",\"params\":{\"to\":\"Address of token receiver\",\"value\":\"Number of tokens to transfer\"},\"return\":\"Was transfer successful?\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Allows allowed third party to transfer tokens from one address to another. Returns success\",\"params\":{\"from\":\"Address from where tokens are withdrawn\",\"to\":\"Address to where tokens are sent\",\"value\":\"Number of tokens to transfer\"},\"return\":\"Was transfer successful?\"}},\"title\":\"Standard token contract with overflow protection\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@gnosis.pm/util-contracts/contracts/GnosisStandardToken.sol\":\"GnosisStandardToken\"},\"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": "0x608060405234801561001057600080fd5b5061046a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806370a082311161005057806370a0823114610107578063a9059cbb1461012d578063dd62ed3e1461015957610072565b8063095ea7b31461007757806318160ddd146100b757806323b872dd146100d1575b600080fd5b6100a36004803603604081101561008d57600080fd5b506001600160a01b038135169060200135610187565b604080519115158252519081900360200190f35b6100bf6101ee565b60408051918252519081900360200190f35b6100a3600480360360608110156100e757600080fd5b506001600160a01b038135811691602081013590911690604001356101f4565b6100bf6004803603602081101561011d57600080fd5b50356001600160a01b0316610321565b6100a36004803603604081101561014357600080fd5b506001600160a01b03813516906020013561033c565b6100bf6004803603604081101561016f57600080fd5b506001600160a01b0381358116916020013516610407565b3360008181526001602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60025490565b6001600160a01b03831660009081526020819052604081205461021d908363ffffffff61043216565b158061025a57506001600160a01b0384166000908152600160209081526040808320338452909152902054610258908363ffffffff61043216565b155b8061028b57506001600160a01b038316600090815260208190526040902054610289908363ffffffff61043716565b155b156102985750600061031a565b6001600160a01b038085166000818152602081815260408083208054889003905560018252808320338452825280832080548890039055938716808352828252918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060015b9392505050565b6001600160a01b031660009081526020819052604090205490565b3360009081526020819052604081205461035c908363ffffffff61043216565b158061038e57506001600160a01b03831660009081526020819052604090205461038c908363ffffffff61043716565b155b1561039b575060006101e8565b33600081815260208181526040808320805487900390556001600160a01b03871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b111590565b810110159056fea165627a7a72305820ff1365cba5e4da22531e778b7eb65ead37c9fffc75a05077592ef24d319a85850029", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c806370a082311161005057806370a0823114610107578063a9059cbb1461012d578063dd62ed3e1461015957610072565b8063095ea7b31461007757806318160ddd146100b757806323b872dd146100d1575b600080fd5b6100a36004803603604081101561008d57600080fd5b506001600160a01b038135169060200135610187565b604080519115158252519081900360200190f35b6100bf6101ee565b60408051918252519081900360200190f35b6100a3600480360360608110156100e757600080fd5b506001600160a01b038135811691602081013590911690604001356101f4565b6100bf6004803603602081101561011d57600080fd5b50356001600160a01b0316610321565b6100a36004803603604081101561014357600080fd5b506001600160a01b03813516906020013561033c565b6100bf6004803603604081101561016f57600080fd5b506001600160a01b0381358116916020013516610407565b3360008181526001602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60025490565b6001600160a01b03831660009081526020819052604081205461021d908363ffffffff61043216565b158061025a57506001600160a01b0384166000908152600160209081526040808320338452909152902054610258908363ffffffff61043216565b155b8061028b57506001600160a01b038316600090815260208190526040902054610289908363ffffffff61043716565b155b156102985750600061031a565b6001600160a01b038085166000818152602081815260408083208054889003905560018252808320338452825280832080548890039055938716808352828252918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060015b9392505050565b6001600160a01b031660009081526020819052604090205490565b3360009081526020819052604081205461035c908363ffffffff61043216565b158061038e57506001600160a01b03831660009081526020819052604090205461038c908363ffffffff61043716565b155b1561039b575060006101e8565b33600081815260208181526040808320805487900390556001600160a01b03871680845292819020805487019055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600192915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b111590565b810110159056fea165627a7a72305820ff1365cba5e4da22531e778b7eb65ead37c9fffc75a05077592ef24d319a85850029", "sourceMap": "443:2599:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;443:2599:4;;;;;;;", "deployedSourceMap": "443:2599:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;443:2599:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2098:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2098:196:4;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2955:85;;;:::i;:::-;;;;;;;;;;;;;;;;1430:451;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1430:451:4;;;;;;;;;;;;;;;;;:::i;2776:100::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2776:100:4;-1:-1:-1;;;;;2776:100:4;;:::i;785:333::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;785:333:4;;;;;;;;:::i;2504:128::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2504:128:4;;;;;;;;;;:::i;2098:196::-;2187:10;2160:4;2176:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;2176:31:4;;;;;;;;;;;:39;;;2230:36;;;;;;;2160:4;;2176:31;;2187:10;;2230:36;;;;;;;;-1:-1:-1;2283:4:4;2098:196;;;;;:::o;2955:85::-;3022:11;;2955:85;:::o;1430:451::-;-1:-1:-1;;;;;1527:14:4;;1506:4;1527:14;;;;;;;;;;;:31;;1552:5;1527:31;:24;:31;:::i;:::-;1526:32;:104;;;-1:-1:-1;;;;;;1563:16:4;;;;;;:10;:16;;;;;;;;1580:10;1563:28;;;;;;;;:67;;1615:5;1563:67;:38;:67;:::i;:::-;1562:68;1526:104;:138;;;-1:-1:-1;;;;;;1635:12:4;;:8;:12;;;;;;;;;;;:29;;1658:5;1635:29;:22;:29;:::i;:::-;1634:30;1526:138;1522:181;;;-1:-1:-1;1687:5:4;1680:12;;1522:181;-1:-1:-1;;;;;1712:14:4;;;:8;:14;;;;;;;;;;;:23;;;;;;;-1:-1:-1;1745:16:4;;;;;1762:10;1745:28;;;;;;;:37;;;;;;;1792:12;;;;;;;;;;;;;:21;;;;;;1828:25;;;;;;;1792:12;;1828:25;;;;;;;;;;;-1:-1:-1;1870:4:4;1430:451;;;;;;:::o;2776:100::-;-1:-1:-1;;;;;2854:15:4;2831:4;2854:15;;;;;;;;;;;;2776:100::o;785:333::-;873:10;843:4;864:20;;;;;;;;;;;:37;;895:5;864:37;:30;:37;:::i;:::-;863:38;:72;;;-1:-1:-1;;;;;;906:12:4;;:8;:12;;;;;;;;;;;:29;;929:5;906:29;:22;:29;:::i;:::-;905:30;863:72;859:115;;;-1:-1:-1;958:5:4;951:12;;859:115;993:10;984:8;:20;;;;;;;;;;;:29;;;;;;;-1:-1:-1;;;;;1023:12:4;;;;;;;;;:21;;;;;;1059:31;;;;;;;1023:12;;993:10;1059:31;;;;;;;;;;;-1:-1:-1;1107:4:4;785:333;;;;:::o;2504:128::-;-1:-1:-1;;;;;2599:17:4;;;2576:4;2599:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;2504:128::o;6580:94:5:-;-1:-1:-1;6661:6:5;;6580:94::o;6310:98::-;6391:5;;-1:-1:-1;6391:10:5;;6310:98::o", "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-06-03T08:59:02.084Z", "devdoc": { "methods": { "allowance(address,address)": { "details": "Returns number of allowed tokens for given address", "params": { "owner": "Address of token owner", "spender": "Address of token spender" }, "return": "Remaining allowance for spender" }, "approve(address,uint256)": { "details": "Sets approved amount of tokens for spender. Returns success", "params": { "spender": "Address of allowed account", "value": "Number of approved tokens" }, "return": "Was approval successful?" }, "balanceOf(address)": { "details": "Returns number of tokens owned by given address", "params": { "owner": "Address of token owner" }, "return": "Balance of owner" }, "totalSupply()": { "details": "Returns total supply of tokens", "return": "Total supply" }, "transfer(address,uint256)": { "details": "Transfers sender's tokens to a given address. Returns success", "params": { "to": "Address of token receiver", "value": "Number of tokens to transfer" }, "return": "Was transfer successful?" }, "transferFrom(address,address,uint256)": { "details": "Allows allowed third party to transfer tokens from one address to another. Returns success", "params": { "from": "Address from where tokens are withdrawn", "to": "Address to where tokens are sent", "value": "Number of tokens to transfer" }, "return": "Was transfer successful?" } }, "title": "Standard token contract with overflow protection" }, "userdoc": { "methods": {} } }