{ "contractName": "SafeMath", "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058209e1e56f5f0896062f33eb9193460f9fb161caacd95054924da85c1b5c29746320029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058209e1e56f5f0896062f33eb9193460f9fb161caacd95054924da85c1b5c29746320029", "sourceMap": "636:497:0:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "636:497:0:-;;;;;;;;", "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract FixedSupplyToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/MyToken.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/MyToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ 175 ], "ERC20Interface": [ 163 ], "FixedSupplyToken": [ 551 ], "Owned": [ 244 ], "SafeMath": [ 96 ] }, "id": 552, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 96, "linearizedBaseContracts": [ 96 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 22, "nodeType": "Block", "src": "719:51:0", "statements": [ { "expression": { "argumentTypes": null, "id": 14, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 10, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "729:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 11, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "733:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 12, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "737:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "733:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "729:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 15, "nodeType": "ExpressionStatement", "src": "729:9:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 17, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "756:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 18, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "761:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "756:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 16, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "748:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "748:15:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21, "nodeType": "ExpressionStatement", "src": "748:15:0" } ] }, "documentation": null, "id": 23, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 6, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3, "name": "a", "nodeType": "VariableDeclaration", "scope": 23, "src": "672:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2, "name": "uint", "nodeType": "ElementaryTypeName", "src": "672:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5, "name": "b", "nodeType": "VariableDeclaration", "scope": 23, "src": "680:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", "src": "680:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "671:16:0" }, "payable": false, "returnParameters": { "id": 9, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 8, "name": "c", "nodeType": "VariableDeclaration", "scope": 23, "src": "711:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 7, "name": "uint", "nodeType": "ElementaryTypeName", "src": "711:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "710:8:0" }, "scope": 96, "src": "659:111:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 44, "nodeType": "Block", "src": "835:51:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 35, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 33, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27, "src": "853:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 34, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "858:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "853:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 32, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "845:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 36, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "845:15:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 37, "nodeType": "ExpressionStatement", "src": "845:15:0" }, { "expression": { "argumentTypes": null, "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 38, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "870:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 41, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 39, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "874:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 40, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27, "src": "878:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "874:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "870:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 43, "nodeType": "ExpressionStatement", "src": "870:9:0" } ] }, "documentation": null, "id": 45, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 28, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25, "name": "a", "nodeType": "VariableDeclaration", "scope": 45, "src": "788:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", "src": "788:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 27, "name": "b", "nodeType": "VariableDeclaration", "scope": 45, "src": "796:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26, "name": "uint", "nodeType": "ElementaryTypeName", "src": "796:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "787:16:0" }, "payable": false, "returnParameters": { "id": 31, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 30, "name": "c", "nodeType": "VariableDeclaration", "scope": 45, "src": "827:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 29, "name": "uint", "nodeType": "ElementaryTypeName", "src": "827:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "826:8:0" }, "scope": 96, "src": "775:111:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 72, "nodeType": "Block", "src": "951:65:0", "statements": [ { "expression": { "argumentTypes": null, "id": 58, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 54, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, "src": "961:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 55, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "965:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 56, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "969:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "965:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "961:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 59, "nodeType": "ExpressionStatement", "src": "961:9:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 69, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 63, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 61, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "988:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 62, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "993:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "988:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 66, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 64, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, "src": "998:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 65, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "1002:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 67, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "1007:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "988:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 60, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "980:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 70, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "980:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 71, "nodeType": "ExpressionStatement", "src": "980:29:0" } ] }, "documentation": null, "id": 73, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 50, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 47, "name": "a", "nodeType": "VariableDeclaration", "scope": 73, "src": "904:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 46, "name": "uint", "nodeType": "ElementaryTypeName", "src": "904:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 49, "name": "b", "nodeType": "VariableDeclaration", "scope": 73, "src": "912:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 48, "name": "uint", "nodeType": "ElementaryTypeName", "src": "912:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "903:16:0" }, "payable": false, "returnParameters": { "id": 53, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 52, "name": "c", "nodeType": "VariableDeclaration", "scope": 73, "src": "943:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 51, "name": "uint", "nodeType": "ElementaryTypeName", "src": "943:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "942:8:0" }, "scope": 96, "src": "891:125:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 94, "nodeType": "Block", "src": "1081:50:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 85, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 83, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, "src": "1099:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 84, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1103:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1099:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 82, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "1091:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 86, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1091:14:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 87, "nodeType": "ExpressionStatement", "src": "1091:14:0" }, { "expression": { "argumentTypes": null, "id": 92, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 88, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 80, "src": "1115:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 91, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 89, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 75, "src": "1119:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 90, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, "src": "1123:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1119:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1115:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 93, "nodeType": "ExpressionStatement", "src": "1115:9:0" } ] }, "documentation": null, "id": 95, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 78, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 75, "name": "a", "nodeType": "VariableDeclaration", "scope": 95, "src": "1034:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 74, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1034:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 77, "name": "b", "nodeType": "VariableDeclaration", "scope": 95, "src": "1042:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 76, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1042:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1033:16:0" }, "payable": false, "returnParameters": { "id": 81, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 80, "name": "c", "nodeType": "VariableDeclaration", "scope": 95, "src": "1073:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 79, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1073:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1072:8:0" }, "scope": 96, "src": "1021:110:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 552, "src": "636:497:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 163, "linearizedBaseContracts": [ 163 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 101, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 97, "nodeType": "ParameterList", "parameters": [], "src": "1445:2:0" }, "payable": false, "returnParameters": { "id": 100, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 99, "name": "", "nodeType": "VariableDeclaration", "scope": 101, "src": "1473:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1473:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1472:6:0" }, "scope": 163, "src": "1425:54:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 108, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 104, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 103, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 108, "src": "1503:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 102, "name": "address", "nodeType": "ElementaryTypeName", "src": "1503:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1502:20:0" }, "payable": false, "returnParameters": { "id": 107, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 106, "name": "balance", "nodeType": "VariableDeclaration", "scope": 108, "src": "1548:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 105, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1548:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1547:14:0" }, "scope": 163, "src": "1484:78:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 117, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 113, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 110, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 117, "src": "1586:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 109, "name": "address", "nodeType": "ElementaryTypeName", "src": "1586:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 112, "name": "spender", "nodeType": "VariableDeclaration", "scope": 117, "src": "1606:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 111, "name": "address", "nodeType": "ElementaryTypeName", "src": "1606:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1585:37:0" }, "payable": false, "returnParameters": { "id": 116, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 115, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 117, "src": "1648:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 114, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1648:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1647:16:0" }, "scope": 163, "src": "1567:97:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 126, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 122, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 119, "name": "to", "nodeType": "VariableDeclaration", "scope": 126, "src": "1687:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 118, "name": "address", "nodeType": "ElementaryTypeName", "src": "1687:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 121, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 126, "src": "1699:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 120, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1699:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1686:25:0" }, "payable": false, "returnParameters": { "id": 125, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 124, "name": "success", "nodeType": "VariableDeclaration", "scope": 126, "src": "1728:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 123, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1728:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1727:14:0" }, "scope": 163, "src": "1669:73:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 135, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 131, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 128, "name": "spender", "nodeType": "VariableDeclaration", "scope": 135, "src": "1764:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 127, "name": "address", "nodeType": "ElementaryTypeName", "src": "1764:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 130, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 135, "src": "1781:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1781:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1763:30:0" }, "payable": false, "returnParameters": { "id": 134, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 133, "name": "success", "nodeType": "VariableDeclaration", "scope": 135, "src": "1810:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 132, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1810:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1809:14:0" }, "scope": 163, "src": "1747:77:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 146, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 142, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 137, "name": "from", "nodeType": "VariableDeclaration", "scope": 146, "src": "1851:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 136, "name": "address", "nodeType": "ElementaryTypeName", "src": "1851:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 139, "name": "to", "nodeType": "VariableDeclaration", "scope": 146, "src": "1865:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 138, "name": "address", "nodeType": "ElementaryTypeName", "src": "1865:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 141, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 146, "src": "1877:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1877:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1850:39:0" }, "payable": false, "returnParameters": { "id": 145, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 144, "name": "success", "nodeType": "VariableDeclaration", "scope": 146, "src": "1906:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 143, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1906:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1905:14:0" }, "scope": 163, "src": "1829:91:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 154, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { "id": 153, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 148, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", "scope": 154, "src": "1941:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 147, "name": "address", "nodeType": "ElementaryTypeName", "src": "1941:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 150, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", "scope": 154, "src": "1963:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 149, "name": "address", "nodeType": "ElementaryTypeName", "src": "1963:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 152, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 154, "src": "1983:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 151, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1983:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1940:55:0" }, "src": "1926:70:0" }, { "anonymous": false, "documentation": null, "id": 162, "name": "Approval", "nodeType": "EventDefinition", "parameters": { "id": 161, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 156, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 162, "src": "2016:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 155, "name": "address", "nodeType": "ElementaryTypeName", "src": "2016:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 158, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", "scope": 162, "src": "2044:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 157, "name": "address", "nodeType": "ElementaryTypeName", "src": "2044:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 160, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 162, "src": "2069:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 159, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2069:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2015:66:0" }, "src": "2001:81:0" } ], "scope": 552, "src": "1395:689:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 175, "linearizedBaseContracts": [ 175 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 174, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 172, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 165, "name": "from", "nodeType": "VariableDeclaration", "scope": 174, "src": "2416:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 164, "name": "address", "nodeType": "ElementaryTypeName", "src": "2416:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 167, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 174, "src": "2430:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 166, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2430:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 169, "name": "token", "nodeType": "VariableDeclaration", "scope": 174, "src": "2446:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 168, "name": "address", "nodeType": "ElementaryTypeName", "src": "2446:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 171, "name": "data", "nodeType": "VariableDeclaration", "scope": 174, "src": "2461:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 170, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2461:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2415:57:0" }, "payable": false, "returnParameters": { "id": 173, "nodeType": "ParameterList", "parameters": [], "src": "2479:0:0" }, "scope": 175, "src": "2391:89:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 552, "src": "2353:129:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 244, "linearizedBaseContracts": [ 244 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 177, "name": "owner", "nodeType": "VariableDeclaration", "scope": 244, "src": "2684:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 176, "name": "address", "nodeType": "ElementaryTypeName", "src": "2684:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 179, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 244, "src": "2710:23:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 178, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 185, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 184, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 181, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", "scope": 185, "src": "2767:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 180, "name": "address", "nodeType": "ElementaryTypeName", "src": "2767:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 183, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", "scope": 185, "src": "2790:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 182, "name": "address", "nodeType": "ElementaryTypeName", "src": "2790:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2766:44:0" }, "src": "2740:71:0" }, { "body": { "id": 193, "nodeType": "Block", "src": "2838:35:0", "statements": [ { "expression": { "argumentTypes": null, "id": 191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 188, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "2848:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 189, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "2856:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2856:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2848:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 192, "nodeType": "ExpressionStatement", "src": "2848:18:0" } ] }, "documentation": null, "id": 194, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 186, "nodeType": "ParameterList", "parameters": [], "src": "2828:2:0" }, "payable": false, "returnParameters": { "id": 187, "nodeType": "ParameterList", "parameters": [], "src": "2838:0:0" }, "scope": 244, "src": "2817:56:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 204, "nodeType": "Block", "src": "2898:56:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 197, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "2916:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2916:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 199, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "2930:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2916:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "2908:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2908:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 202, "nodeType": "ExpressionStatement", "src": "2908:28:0" }, { "id": 203, "nodeType": "PlaceholderStatement", "src": "2946:1:0" } ] }, "documentation": null, "id": 205, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 195, "nodeType": "ParameterList", "parameters": [], "src": "2898:0:0" }, "src": "2879:75:0", "visibility": "internal" }, { "body": { "id": 216, "nodeType": "Block", "src": "3023:37:0", "statements": [ { "expression": { "argumentTypes": null, "id": 214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 212, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3033:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 213, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 207, "src": "3044:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3033:20:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 215, "nodeType": "ExpressionStatement", "src": "3033:20:0" } ] }, "documentation": null, "id": 217, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 210, "modifierName": { "argumentTypes": null, "id": 209, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "3013:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3013:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 208, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 207, "name": "_newOwner", "nodeType": "VariableDeclaration", "scope": 217, "src": "2987:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 206, "name": "address", "nodeType": "ElementaryTypeName", "src": "2987:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2986:19:0" }, "payable": false, "returnParameters": { "id": 211, "nodeType": "ParameterList", "parameters": [], "src": "3023:0:0" }, "scope": 244, "src": "2960:100:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 242, "nodeType": "Block", "src": "3099:157:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 221, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "3117:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3117:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 223, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3131:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3117:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 220, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "3109:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 225, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3109:31:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 226, "nodeType": "ExpressionStatement", "src": "3109:31:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 228, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "3176:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 229, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3183:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 227, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 185, "src": "3155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3155:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 231, "nodeType": "EmitStatement", "src": "3150:42:0" }, { "expression": { "argumentTypes": null, "id": 234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 232, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "3202:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 233, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3210:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3202:16:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 235, "nodeType": "ExpressionStatement", "src": "3202:16:0" }, { "expression": { "argumentTypes": null, "id": 240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 236, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3228:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3247:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 237, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3239:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3239:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3228:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 241, "nodeType": "ExpressionStatement", "src": "3228:21:0" } ] }, "documentation": null, "id": 243, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 218, "nodeType": "ParameterList", "parameters": [], "src": "3089:2:0" }, "payable": false, "returnParameters": { "id": 219, "nodeType": "ParameterList", "parameters": [], "src": "3099:0:0" }, "scope": 244, "src": "3065:191:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 552, "src": "2663:595:0" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 245, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 163, "src": "3535:14:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$163", "typeString": "contract ERC20Interface" } }, "id": 246, "nodeType": "InheritanceSpecifier", "src": "3535:14:0" }, { "arguments": null, "baseName": { "contractScope": null, "id": 247, "name": "Owned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 244, "src": "3551:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Owned_$244", "typeString": "contract Owned" } }, "id": 248, "nodeType": "InheritanceSpecifier", "src": "3551:5:0" } ], "contractDependencies": [ 244, 163 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 551, "linearizedBaseContracts": [ 551, 244, 163 ], "name": "FixedSupplyToken", "nodeType": "ContractDefinition", "nodes": [ { "id": 251, "libraryName": { "contractScope": null, "id": 249, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 96, "src": "3569:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$96", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "3563:24:0", "typeName": { "id": 250, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3582:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": false, "id": 253, "name": "symbol", "nodeType": "VariableDeclaration", "scope": 551, "src": "3593:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 252, "name": "string", "nodeType": "ElementaryTypeName", "src": "3593:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 255, "name": "name", "nodeType": "VariableDeclaration", "scope": 551, "src": "3619:19:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 254, "name": "string", "nodeType": "ElementaryTypeName", "src": "3619:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 257, "name": "decimals", "nodeType": "VariableDeclaration", "scope": 551, "src": "3644:21:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 256, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3644:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 259, "name": "_totalSupply", "nodeType": "VariableDeclaration", "scope": 551, "src": "3671:17:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 258, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3671:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 263, "name": "balances", "nodeType": "VariableDeclaration", "scope": 551, "src": "3695:33:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 262, "keyType": { "id": 260, "name": "address", "nodeType": "ElementaryTypeName", "src": "3703:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3695:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 261, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3714:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 269, "name": "allowed", "nodeType": "VariableDeclaration", "scope": 551, "src": "3734:52:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 268, "keyType": { "id": 264, "name": "address", "nodeType": "ElementaryTypeName", "src": "3742:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3734:44:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 267, "keyType": { "id": 265, "name": "address", "nodeType": "ElementaryTypeName", "src": "3761:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3753:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 266, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3772:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "body": { "id": 308, "nodeType": "Block", "src": "3994:235:0", "statements": [ { "expression": { "argumentTypes": null, "id": 274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 272, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 253, "src": "4004:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", "id": 273, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4013:5:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", "typeString": "literal_string \"TKN\"" }, "value": "TKN" }, "src": "4004:14:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 275, "nodeType": "ExpressionStatement", "src": "4004:14:0" }, { "expression": { "argumentTypes": null, "id": 278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 276, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, "src": "4028:4:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", "id": 277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4035:15:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", "typeString": "literal_string \"Token Example\"" }, "value": "Token Example" }, "src": "4028:22:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 279, "nodeType": "ExpressionStatement", "src": "4028:22:0" }, { "expression": { "argumentTypes": null, "id": 282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 280, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "4060:8:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "3138", "id": 281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4071:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "4060:13:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 283, "nodeType": "ExpressionStatement", "src": "4060:13:0" }, { "expression": { "argumentTypes": null, "id": 292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 284, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4083:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", "id": 285, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4098:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" }, "value": "1000000" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 286, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4108:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 288, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "4117:8:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4112:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4112:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4108:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4098:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4083:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 293, "nodeType": "ExpressionStatement", "src": "4083:43:0" }, { "expression": { "argumentTypes": null, "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 294, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "4136:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 296, "indexExpression": { "argumentTypes": null, "id": 295, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "4145:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4136:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 297, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4154:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4136:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 299, "nodeType": "ExpressionStatement", "src": "4136:30:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4198:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 301, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4190:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4190:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 304, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "4202:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 305, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4209:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 300, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "4181:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4181:41:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 307, "nodeType": "EmitStatement", "src": "4176:46:0" } ] }, "documentation": null, "id": 309, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 270, "nodeType": "ParameterList", "parameters": [], "src": "3984:2:0" }, "payable": false, "returnParameters": { "id": 271, "nodeType": "ParameterList", "parameters": [], "src": "3994:0:0" }, "scope": 551, "src": "3973:256:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 323, "nodeType": "Block", "src": "4466:62:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 316, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "4500:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 320, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4517:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 317, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4509:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4509:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4500:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 314, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4483:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "4483:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4483:38:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 313, "id": 322, "nodeType": "Return", "src": "4476:45:0" } ] }, "documentation": null, "id": 324, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 310, "nodeType": "ParameterList", "parameters": [], "src": "4436:2:0" }, "payable": false, "returnParameters": { "id": 313, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 312, "name": "", "nodeType": "VariableDeclaration", "scope": 324, "src": "4460:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 311, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4460:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4459:6:0" }, "scope": 551, "src": "4416:112:0", "stateMutability": "view", "superFunction": 101, "visibility": "public" }, { "body": { "id": 335, "nodeType": "Block", "src": "4823:44:0", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 331, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "4840:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 333, "indexExpression": { "argumentTypes": null, "id": 332, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 326, "src": "4849:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4840:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 330, "id": 334, "nodeType": "Return", "src": "4833:27:0" } ] }, "documentation": null, "id": 336, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 327, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 326, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 336, "src": "4768:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 325, "name": "address", "nodeType": "ElementaryTypeName", "src": "4768:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4767:20:0" }, "payable": false, "returnParameters": { "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 329, "name": "balance", "nodeType": "VariableDeclaration", "scope": 336, "src": "4809:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 328, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4809:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4808:14:0" }, "scope": 551, "src": "4749:118:0", "stateMutability": "view", "superFunction": 108, "visibility": "public" }, { "body": { "id": 378, "nodeType": "Block", "src": "5283:189:0", "statements": [ { "expression": { "argumentTypes": null, "id": 356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 345, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5293:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 348, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 346, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5302:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5302:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5293:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 354, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5341:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 349, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5316:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 352, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5325:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5325:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5316:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "5316:24:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 355, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5316:32:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5293:55:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 357, "nodeType": "ExpressionStatement", "src": "5293:55:0" }, { "expression": { "argumentTypes": null, "id": 367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 358, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5358:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 360, "indexExpression": { "argumentTypes": null, "id": 359, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 338, "src": "5367:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5358:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 365, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5390:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 361, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5373:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 363, "indexExpression": { "argumentTypes": null, "id": 362, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 338, "src": "5382:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5373:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 23, "src": "5373:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 366, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5373:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5358:39:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 368, "nodeType": "ExpressionStatement", "src": "5358:39:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 370, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5421:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5421:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 372, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 338, "src": "5433:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 373, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5437:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 369, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "5412:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 374, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5412:32:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 375, "nodeType": "EmitStatement", "src": "5407:37:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5461:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 344, "id": 377, "nodeType": "Return", "src": "5454:11:0" } ] }, "documentation": null, "id": 379, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 341, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 338, "name": "to", "nodeType": "VariableDeclaration", "scope": 379, "src": "5228:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 337, "name": "address", "nodeType": "ElementaryTypeName", "src": "5228:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 340, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 379, "src": "5240:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 339, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5240:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5227:25:0" }, "payable": false, "returnParameters": { "id": 344, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 343, "name": "success", "nodeType": "VariableDeclaration", "scope": 379, "src": "5269:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 342, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5269:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "5268:14:0" }, "scope": 551, "src": "5210:262:0", "stateMutability": "nonpayable", "superFunction": 126, "visibility": "public" }, { "body": { "id": 406, "nodeType": "Block", "src": "6055:127:0", "statements": [ { "expression": { "argumentTypes": null, "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 388, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "6065:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 392, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 389, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6073:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6073:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6065:19:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 393, "indexExpression": { "argumentTypes": null, "id": 391, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 381, "src": "6085:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6065:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 394, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 383, "src": "6096:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6065:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 396, "nodeType": "ExpressionStatement", "src": "6065:37:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 398, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6126:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6126:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 400, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 381, "src": "6138:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 401, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 383, "src": "6147:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 397, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 162, "src": "6117:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6117:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 403, "nodeType": "EmitStatement", "src": "6112:42:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6171:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 387, "id": 405, "nodeType": "Return", "src": "6164:11:0" } ] }, "documentation": null, "id": 407, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 384, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 381, "name": "spender", "nodeType": "VariableDeclaration", "scope": 407, "src": "5995:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 380, "name": "address", "nodeType": "ElementaryTypeName", "src": "5995:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 383, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 407, "src": "6012:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 382, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6012:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5994:30:0" }, "payable": false, "returnParameters": { "id": 387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 386, "name": "success", "nodeType": "VariableDeclaration", "scope": 407, "src": "6041:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 385, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6041:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6040:14:0" }, "scope": 551, "src": "5978:204:0", "stateMutability": "nonpayable", "superFunction": 135, "visibility": "public" }, { "body": { "id": 465, "nodeType": "Block", "src": "6805:246:0", "statements": [ { "expression": { "argumentTypes": null, "id": 427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 418, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6815:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 420, "indexExpression": { "argumentTypes": null, "id": 419, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6824:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6815:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 425, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "6851:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 421, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6832:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 423, "indexExpression": { "argumentTypes": null, "id": 422, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6841:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6832:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "6832:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6832:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6815:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 428, "nodeType": "ExpressionStatement", "src": "6815:43:0" }, { "expression": { "argumentTypes": null, "id": 444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 429, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "6868:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 433, "indexExpression": { "argumentTypes": null, "id": 430, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6876:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6868:13:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 434, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 431, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6882:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6882:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6868:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 442, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "6926:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 435, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "6896:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 437, "indexExpression": { "argumentTypes": null, "id": 436, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6904:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6896:13:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 440, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 438, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6910:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6910:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6896:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "6896:29:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 443, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6896:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6868:65:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 445, "nodeType": "ExpressionStatement", "src": "6868:65:0" }, { "expression": { "argumentTypes": null, "id": 455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 446, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6943:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 448, "indexExpression": { "argumentTypes": null, "id": 447, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 411, "src": "6952:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6943:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 453, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "6975:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 449, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6958:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 451, "indexExpression": { "argumentTypes": null, "id": 450, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 411, "src": "6967:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6958:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 23, "src": "6958:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 454, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6958:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6943:39:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 456, "nodeType": "ExpressionStatement", "src": "6943:39:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 458, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "7006:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 459, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 411, "src": "7012:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 460, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "7016:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 457, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "6997:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 461, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6997:26:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 462, "nodeType": "EmitStatement", "src": "6992:31:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7040:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 417, "id": 464, "nodeType": "Return", "src": "7033:11:0" } ] }, "documentation": null, "id": 466, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 414, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 409, "name": "from", "nodeType": "VariableDeclaration", "scope": 466, "src": "6736:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 408, "name": "address", "nodeType": "ElementaryTypeName", "src": "6736:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 411, "name": "to", "nodeType": "VariableDeclaration", "scope": 466, "src": "6750:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 410, "name": "address", "nodeType": "ElementaryTypeName", "src": "6750:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 413, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 466, "src": "6762:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 412, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6762:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6735:39:0" }, "payable": false, "returnParameters": { "id": 417, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 416, "name": "success", "nodeType": "VariableDeclaration", "scope": 466, "src": "6791:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 415, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6791:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6790:14:0" }, "scope": 551, "src": "6714:337:0", "stateMutability": "nonpayable", "superFunction": 146, "visibility": "public" }, { "body": { "id": 481, "nodeType": "Block", "src": "7425:52:0", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 475, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "7442:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 477, "indexExpression": { "argumentTypes": null, "id": 476, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 468, "src": "7450:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7442:19:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 479, "indexExpression": { "argumentTypes": null, "id": 478, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 470, "src": "7462:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7442:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 474, "id": 480, "nodeType": "Return", "src": "7435:35:0" } ] }, "documentation": null, "id": 482, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 471, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 468, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 482, "src": "7351:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 467, "name": "address", "nodeType": "ElementaryTypeName", "src": "7351:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 470, "name": "spender", "nodeType": "VariableDeclaration", "scope": 482, "src": "7371:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 469, "name": "address", "nodeType": "ElementaryTypeName", "src": "7371:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7350:37:0" }, "payable": false, "returnParameters": { "id": 474, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 473, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 482, "src": "7409:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 472, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7409:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7408:16:0" }, "scope": 551, "src": "7332:145:0", "stateMutability": "view", "superFunction": 117, "visibility": "public" }, { "body": { "id": 522, "nodeType": "Block", "src": "7933:216:0", "statements": [ { "expression": { "argumentTypes": null, "id": 500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 493, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "7943:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 497, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 494, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "7951:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7951:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7943:19:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 498, "indexExpression": { "argumentTypes": null, "id": 496, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 484, "src": "7963:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7943:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 499, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "7974:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7943:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 501, "nodeType": "ExpressionStatement", "src": "7943:37:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 503, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "8004:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8004:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 505, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 484, "src": "8016:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 506, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "8025:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 502, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 162, "src": "7995:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7995:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 508, "nodeType": "EmitStatement", "src": "7990:42:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 513, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "8090:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8090:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 515, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "8102:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 516, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 587, "src": "8110:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_FixedSupplyToken_$551", "typeString": "contract FixedSupplyToken" } }, { "argumentTypes": null, "id": 517, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 488, "src": "8116:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_contract$_FixedSupplyToken_$551", "typeString": "contract FixedSupplyToken" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 510, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 484, "src": "8065:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 509, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 175, "src": "8042:22:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$175_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8042:31:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$175", "typeString": "contract ApproveAndCallFallBack" } }, "id": 512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", "referencedDeclaration": 174, "src": "8042:47:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, "id": 518, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8042:79:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 519, "nodeType": "ExpressionStatement", "src": "8042:79:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8138:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 492, "id": 521, "nodeType": "Return", "src": "8131:11:0" } ] }, "documentation": null, "id": 523, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { "id": 489, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 484, "name": "spender", "nodeType": "VariableDeclaration", "scope": 523, "src": "7861:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 483, "name": "address", "nodeType": "ElementaryTypeName", "src": "7861:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 486, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 523, "src": "7878:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 485, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7878:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 488, "name": "data", "nodeType": "VariableDeclaration", "scope": 523, "src": "7891:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 487, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7891:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7860:42:0" }, "payable": false, "returnParameters": { "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 491, "name": "success", "nodeType": "VariableDeclaration", "scope": 523, "src": "7919:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 490, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7919:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "7918:14:0" }, "scope": 551, "src": "7837:312:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 529, "nodeType": "Block", "src": "8367:25:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 526, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 571, 572 ], "referencedDeclaration": 571, "src": "8377:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8377:8:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 528, "nodeType": "ExpressionStatement", "src": "8377:8:0" } ] }, "documentation": null, "id": 530, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 524, "nodeType": "ParameterList", "parameters": [], "src": "8349:2:0" }, "payable": true, "returnParameters": { "id": 525, "nodeType": "ParameterList", "parameters": [], "src": "8367:0:0" }, "scope": 551, "src": "8340:52:0", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { "id": 549, "nodeType": "Block", "src": "8730:76:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 545, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "8785:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 546, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 534, "src": "8792:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 542, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 532, "src": "8762:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 541, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 163, "src": "8747:14:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$163_$", "typeString": "type(contract ERC20Interface)" } }, "id": 543, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8747:28:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$163", "typeString": "contract ERC20Interface" } }, "id": 544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 126, "src": "8747:37:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8747:52:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 540, "id": 548, "nodeType": "Return", "src": "8740:59:0" } ] }, "documentation": null, "id": 550, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 537, "modifierName": { "argumentTypes": null, "id": 536, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "8697:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8697:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { "id": 535, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 532, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 550, "src": "8655:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 531, "name": "address", "nodeType": "ElementaryTypeName", "src": "8655:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 534, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 550, "src": "8677:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 533, "name": "uint", "nodeType": "ElementaryTypeName", "src": "8677:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8654:35:0" }, "payable": false, "returnParameters": { "id": 540, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 539, "name": "success", "nodeType": "VariableDeclaration", "scope": 550, "src": "8716:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 538, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8716:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8715:14:0" }, "scope": 551, "src": "8624:182:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 552, "src": "3506:5302:0" } ], "src": "0:8808:0" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/MyToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ 175 ], "ERC20Interface": [ 163 ], "FixedSupplyToken": [ 551 ], "Owned": [ 244 ], "SafeMath": [ 96 ] }, "id": 552, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 96, "linearizedBaseContracts": [ 96 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 22, "nodeType": "Block", "src": "719:51:0", "statements": [ { "expression": { "argumentTypes": null, "id": 14, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 10, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "729:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 13, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 11, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "733:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 12, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "737:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "733:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "729:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 15, "nodeType": "ExpressionStatement", "src": "729:9:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 17, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "756:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 18, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "761:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "756:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 16, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "748:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "748:15:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21, "nodeType": "ExpressionStatement", "src": "748:15:0" } ] }, "documentation": null, "id": 23, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 6, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3, "name": "a", "nodeType": "VariableDeclaration", "scope": 23, "src": "672:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2, "name": "uint", "nodeType": "ElementaryTypeName", "src": "672:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5, "name": "b", "nodeType": "VariableDeclaration", "scope": 23, "src": "680:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", "src": "680:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "671:16:0" }, "payable": false, "returnParameters": { "id": 9, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 8, "name": "c", "nodeType": "VariableDeclaration", "scope": 23, "src": "711:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 7, "name": "uint", "nodeType": "ElementaryTypeName", "src": "711:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "710:8:0" }, "scope": 96, "src": "659:111:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 44, "nodeType": "Block", "src": "835:51:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 35, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 33, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27, "src": "853:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 34, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "858:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "853:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 32, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "845:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 36, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "845:15:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 37, "nodeType": "ExpressionStatement", "src": "845:15:0" }, { "expression": { "argumentTypes": null, "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 38, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "870:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 41, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 39, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "874:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 40, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27, "src": "878:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "874:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "870:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 43, "nodeType": "ExpressionStatement", "src": "870:9:0" } ] }, "documentation": null, "id": 45, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 28, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25, "name": "a", "nodeType": "VariableDeclaration", "scope": 45, "src": "788:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", "src": "788:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 27, "name": "b", "nodeType": "VariableDeclaration", "scope": 45, "src": "796:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26, "name": "uint", "nodeType": "ElementaryTypeName", "src": "796:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "787:16:0" }, "payable": false, "returnParameters": { "id": 31, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 30, "name": "c", "nodeType": "VariableDeclaration", "scope": 45, "src": "827:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 29, "name": "uint", "nodeType": "ElementaryTypeName", "src": "827:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "826:8:0" }, "scope": 96, "src": "775:111:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 72, "nodeType": "Block", "src": "951:65:0", "statements": [ { "expression": { "argumentTypes": null, "id": 58, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 54, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, "src": "961:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 55, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "965:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 56, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "969:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "965:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "961:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 59, "nodeType": "ExpressionStatement", "src": "961:9:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 69, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 63, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 61, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "988:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 62, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "993:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "988:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 66, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 64, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, "src": "998:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 65, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "1002:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 67, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "1007:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "988:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 60, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "980:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 70, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "980:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 71, "nodeType": "ExpressionStatement", "src": "980:29:0" } ] }, "documentation": null, "id": 73, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 50, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 47, "name": "a", "nodeType": "VariableDeclaration", "scope": 73, "src": "904:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 46, "name": "uint", "nodeType": "ElementaryTypeName", "src": "904:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 49, "name": "b", "nodeType": "VariableDeclaration", "scope": 73, "src": "912:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 48, "name": "uint", "nodeType": "ElementaryTypeName", "src": "912:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "903:16:0" }, "payable": false, "returnParameters": { "id": 53, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 52, "name": "c", "nodeType": "VariableDeclaration", "scope": 73, "src": "943:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 51, "name": "uint", "nodeType": "ElementaryTypeName", "src": "943:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "942:8:0" }, "scope": 96, "src": "891:125:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 94, "nodeType": "Block", "src": "1081:50:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 85, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 83, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, "src": "1099:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 84, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1103:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1099:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 82, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "1091:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 86, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1091:14:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 87, "nodeType": "ExpressionStatement", "src": "1091:14:0" }, { "expression": { "argumentTypes": null, "id": 92, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 88, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 80, "src": "1115:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 91, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 89, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 75, "src": "1119:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 90, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, "src": "1123:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1119:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1115:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 93, "nodeType": "ExpressionStatement", "src": "1115:9:0" } ] }, "documentation": null, "id": 95, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 78, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 75, "name": "a", "nodeType": "VariableDeclaration", "scope": 95, "src": "1034:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 74, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1034:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 77, "name": "b", "nodeType": "VariableDeclaration", "scope": 95, "src": "1042:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 76, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1042:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1033:16:0" }, "payable": false, "returnParameters": { "id": 81, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 80, "name": "c", "nodeType": "VariableDeclaration", "scope": 95, "src": "1073:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 79, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1073:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1072:8:0" }, "scope": 96, "src": "1021:110:0", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 552, "src": "636:497:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 163, "linearizedBaseContracts": [ 163 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 101, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 97, "nodeType": "ParameterList", "parameters": [], "src": "1445:2:0" }, "payable": false, "returnParameters": { "id": 100, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 99, "name": "", "nodeType": "VariableDeclaration", "scope": 101, "src": "1473:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1473:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1472:6:0" }, "scope": 163, "src": "1425:54:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 108, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 104, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 103, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 108, "src": "1503:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 102, "name": "address", "nodeType": "ElementaryTypeName", "src": "1503:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1502:20:0" }, "payable": false, "returnParameters": { "id": 107, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 106, "name": "balance", "nodeType": "VariableDeclaration", "scope": 108, "src": "1548:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 105, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1548:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1547:14:0" }, "scope": 163, "src": "1484:78:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 117, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 113, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 110, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 117, "src": "1586:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 109, "name": "address", "nodeType": "ElementaryTypeName", "src": "1586:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 112, "name": "spender", "nodeType": "VariableDeclaration", "scope": 117, "src": "1606:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 111, "name": "address", "nodeType": "ElementaryTypeName", "src": "1606:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1585:37:0" }, "payable": false, "returnParameters": { "id": 116, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 115, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 117, "src": "1648:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 114, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1648:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1647:16:0" }, "scope": 163, "src": "1567:97:0", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 126, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 122, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 119, "name": "to", "nodeType": "VariableDeclaration", "scope": 126, "src": "1687:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 118, "name": "address", "nodeType": "ElementaryTypeName", "src": "1687:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 121, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 126, "src": "1699:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 120, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1699:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1686:25:0" }, "payable": false, "returnParameters": { "id": 125, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 124, "name": "success", "nodeType": "VariableDeclaration", "scope": 126, "src": "1728:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 123, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1728:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1727:14:0" }, "scope": 163, "src": "1669:73:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 135, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 131, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 128, "name": "spender", "nodeType": "VariableDeclaration", "scope": 135, "src": "1764:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 127, "name": "address", "nodeType": "ElementaryTypeName", "src": "1764:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 130, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 135, "src": "1781:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1781:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1763:30:0" }, "payable": false, "returnParameters": { "id": 134, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 133, "name": "success", "nodeType": "VariableDeclaration", "scope": 135, "src": "1810:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 132, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1810:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1809:14:0" }, "scope": 163, "src": "1747:77:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 146, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 142, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 137, "name": "from", "nodeType": "VariableDeclaration", "scope": 146, "src": "1851:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 136, "name": "address", "nodeType": "ElementaryTypeName", "src": "1851:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 139, "name": "to", "nodeType": "VariableDeclaration", "scope": 146, "src": "1865:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 138, "name": "address", "nodeType": "ElementaryTypeName", "src": "1865:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 141, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 146, "src": "1877:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 140, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1877:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1850:39:0" }, "payable": false, "returnParameters": { "id": 145, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 144, "name": "success", "nodeType": "VariableDeclaration", "scope": 146, "src": "1906:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 143, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1906:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1905:14:0" }, "scope": 163, "src": "1829:91:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 154, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { "id": 153, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 148, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", "scope": 154, "src": "1941:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 147, "name": "address", "nodeType": "ElementaryTypeName", "src": "1941:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 150, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", "scope": 154, "src": "1963:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 149, "name": "address", "nodeType": "ElementaryTypeName", "src": "1963:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 152, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 154, "src": "1983:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 151, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1983:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1940:55:0" }, "src": "1926:70:0" }, { "anonymous": false, "documentation": null, "id": 162, "name": "Approval", "nodeType": "EventDefinition", "parameters": { "id": 161, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 156, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 162, "src": "2016:26:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 155, "name": "address", "nodeType": "ElementaryTypeName", "src": "2016:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 158, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", "scope": 162, "src": "2044:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 157, "name": "address", "nodeType": "ElementaryTypeName", "src": "2044:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 160, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 162, "src": "2069:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 159, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2069:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2015:66:0" }, "src": "2001:81:0" } ], "scope": 552, "src": "1395:689:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 175, "linearizedBaseContracts": [ 175 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 174, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 172, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 165, "name": "from", "nodeType": "VariableDeclaration", "scope": 174, "src": "2416:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 164, "name": "address", "nodeType": "ElementaryTypeName", "src": "2416:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 167, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 174, "src": "2430:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 166, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2430:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 169, "name": "token", "nodeType": "VariableDeclaration", "scope": 174, "src": "2446:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 168, "name": "address", "nodeType": "ElementaryTypeName", "src": "2446:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 171, "name": "data", "nodeType": "VariableDeclaration", "scope": 174, "src": "2461:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 170, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2461:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2415:57:0" }, "payable": false, "returnParameters": { "id": 173, "nodeType": "ParameterList", "parameters": [], "src": "2479:0:0" }, "scope": 175, "src": "2391:89:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 552, "src": "2353:129:0" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 244, "linearizedBaseContracts": [ 244 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 177, "name": "owner", "nodeType": "VariableDeclaration", "scope": 244, "src": "2684:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 176, "name": "address", "nodeType": "ElementaryTypeName", "src": "2684:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 179, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 244, "src": "2710:23:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 178, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 185, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 184, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 181, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", "scope": 185, "src": "2767:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 180, "name": "address", "nodeType": "ElementaryTypeName", "src": "2767:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 183, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", "scope": 185, "src": "2790:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 182, "name": "address", "nodeType": "ElementaryTypeName", "src": "2790:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2766:44:0" }, "src": "2740:71:0" }, { "body": { "id": 193, "nodeType": "Block", "src": "2838:35:0", "statements": [ { "expression": { "argumentTypes": null, "id": 191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 188, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "2848:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 189, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "2856:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2856:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2848:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 192, "nodeType": "ExpressionStatement", "src": "2848:18:0" } ] }, "documentation": null, "id": 194, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 186, "nodeType": "ParameterList", "parameters": [], "src": "2828:2:0" }, "payable": false, "returnParameters": { "id": 187, "nodeType": "ParameterList", "parameters": [], "src": "2838:0:0" }, "scope": 244, "src": "2817:56:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 204, "nodeType": "Block", "src": "2898:56:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 197, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "2916:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2916:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 199, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "2930:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2916:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "2908:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2908:28:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 202, "nodeType": "ExpressionStatement", "src": "2908:28:0" }, { "id": 203, "nodeType": "PlaceholderStatement", "src": "2946:1:0" } ] }, "documentation": null, "id": 205, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 195, "nodeType": "ParameterList", "parameters": [], "src": "2898:0:0" }, "src": "2879:75:0", "visibility": "internal" }, { "body": { "id": 216, "nodeType": "Block", "src": "3023:37:0", "statements": [ { "expression": { "argumentTypes": null, "id": 214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 212, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3033:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 213, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 207, "src": "3044:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3033:20:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 215, "nodeType": "ExpressionStatement", "src": "3033:20:0" } ] }, "documentation": null, "id": 217, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 210, "modifierName": { "argumentTypes": null, "id": 209, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "3013:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3013:9:0" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 208, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 207, "name": "_newOwner", "nodeType": "VariableDeclaration", "scope": 217, "src": "2987:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 206, "name": "address", "nodeType": "ElementaryTypeName", "src": "2987:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2986:19:0" }, "payable": false, "returnParameters": { "id": 211, "nodeType": "ParameterList", "parameters": [], "src": "3023:0:0" }, "scope": 244, "src": "2960:100:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 242, "nodeType": "Block", "src": "3099:157:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 221, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "3117:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3117:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 223, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3131:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3117:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 220, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 569, 570 ], "referencedDeclaration": 569, "src": "3109:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 225, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3109:31:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 226, "nodeType": "ExpressionStatement", "src": "3109:31:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 228, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "3176:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 229, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3183:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 227, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 185, "src": "3155:20:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 230, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3155:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 231, "nodeType": "EmitStatement", "src": "3150:42:0" }, { "expression": { "argumentTypes": null, "id": 234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 232, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "3202:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 233, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3210:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3202:16:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 235, "nodeType": "ExpressionStatement", "src": "3202:16:0" }, { "expression": { "argumentTypes": null, "id": 240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 236, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, "src": "3228:8:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3247:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 237, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3239:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3239:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3228:21:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 241, "nodeType": "ExpressionStatement", "src": "3228:21:0" } ] }, "documentation": null, "id": 243, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 218, "nodeType": "ParameterList", "parameters": [], "src": "3089:2:0" }, "payable": false, "returnParameters": { "id": 219, "nodeType": "ParameterList", "parameters": [], "src": "3099:0:0" }, "scope": 244, "src": "3065:191:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 552, "src": "2663:595:0" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 245, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 163, "src": "3535:14:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$163", "typeString": "contract ERC20Interface" } }, "id": 246, "nodeType": "InheritanceSpecifier", "src": "3535:14:0" }, { "arguments": null, "baseName": { "contractScope": null, "id": 247, "name": "Owned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 244, "src": "3551:5:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Owned_$244", "typeString": "contract Owned" } }, "id": 248, "nodeType": "InheritanceSpecifier", "src": "3551:5:0" } ], "contractDependencies": [ 244, 163 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 551, "linearizedBaseContracts": [ 551, 244, 163 ], "name": "FixedSupplyToken", "nodeType": "ContractDefinition", "nodes": [ { "id": 251, "libraryName": { "contractScope": null, "id": 249, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 96, "src": "3569:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$96", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "3563:24:0", "typeName": { "id": 250, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3582:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": false, "id": 253, "name": "symbol", "nodeType": "VariableDeclaration", "scope": 551, "src": "3593:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 252, "name": "string", "nodeType": "ElementaryTypeName", "src": "3593:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 255, "name": "name", "nodeType": "VariableDeclaration", "scope": 551, "src": "3619:19:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 254, "name": "string", "nodeType": "ElementaryTypeName", "src": "3619:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 257, "name": "decimals", "nodeType": "VariableDeclaration", "scope": 551, "src": "3644:21:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 256, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3644:5:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 259, "name": "_totalSupply", "nodeType": "VariableDeclaration", "scope": 551, "src": "3671:17:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 258, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3671:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 263, "name": "balances", "nodeType": "VariableDeclaration", "scope": 551, "src": "3695:33:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 262, "keyType": { "id": 260, "name": "address", "nodeType": "ElementaryTypeName", "src": "3703:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3695:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 261, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3714:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 269, "name": "allowed", "nodeType": "VariableDeclaration", "scope": 551, "src": "3734:52:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 268, "keyType": { "id": 264, "name": "address", "nodeType": "ElementaryTypeName", "src": "3742:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3734:44:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 267, "keyType": { "id": 265, "name": "address", "nodeType": "ElementaryTypeName", "src": "3761:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3753:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 266, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3772:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "body": { "id": 308, "nodeType": "Block", "src": "3994:235:0", "statements": [ { "expression": { "argumentTypes": null, "id": 274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 272, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 253, "src": "4004:6:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", "id": 273, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4013:5:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", "typeString": "literal_string \"TKN\"" }, "value": "TKN" }, "src": "4004:14:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 275, "nodeType": "ExpressionStatement", "src": "4004:14:0" }, { "expression": { "argumentTypes": null, "id": 278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 276, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, "src": "4028:4:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", "id": 277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4035:15:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", "typeString": "literal_string \"Token Example\"" }, "value": "Token Example" }, "src": "4028:22:0", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 279, "nodeType": "ExpressionStatement", "src": "4028:22:0" }, { "expression": { "argumentTypes": null, "id": 282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 280, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "4060:8:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "3138", "id": 281, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4071:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "4060:13:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 283, "nodeType": "ExpressionStatement", "src": "4060:13:0" }, { "expression": { "argumentTypes": null, "id": 292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 284, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4083:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", "id": 285, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4098:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", "typeString": "int_const 1000000" }, "value": "1000000" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 286, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4108:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 288, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "4117:8:0", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4112:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4112:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4108:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4098:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4083:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 293, "nodeType": "ExpressionStatement", "src": "4083:43:0" }, { "expression": { "argumentTypes": null, "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 294, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "4136:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 296, "indexExpression": { "argumentTypes": null, "id": 295, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "4145:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4136:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 297, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4154:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4136:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 299, "nodeType": "ExpressionStatement", "src": "4136:30:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4198:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 301, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4190:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4190:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 304, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "4202:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 305, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4209:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 300, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "4181:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4181:41:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 307, "nodeType": "EmitStatement", "src": "4176:46:0" } ] }, "documentation": null, "id": 309, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 270, "nodeType": "ParameterList", "parameters": [], "src": "3984:2:0" }, "payable": false, "returnParameters": { "id": 271, "nodeType": "ParameterList", "parameters": [], "src": "3994:0:0" }, "scope": 551, "src": "3973:256:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 323, "nodeType": "Block", "src": "4466:62:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 316, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "4500:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 320, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 318, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4517:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 317, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4509:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4509:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4500:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 314, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 259, "src": "4483:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "4483:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 321, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4483:38:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 313, "id": 322, "nodeType": "Return", "src": "4476:45:0" } ] }, "documentation": null, "id": 324, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 310, "nodeType": "ParameterList", "parameters": [], "src": "4436:2:0" }, "payable": false, "returnParameters": { "id": 313, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 312, "name": "", "nodeType": "VariableDeclaration", "scope": 324, "src": "4460:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 311, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4460:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4459:6:0" }, "scope": 551, "src": "4416:112:0", "stateMutability": "view", "superFunction": 101, "visibility": "public" }, { "body": { "id": 335, "nodeType": "Block", "src": "4823:44:0", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 331, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "4840:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 333, "indexExpression": { "argumentTypes": null, "id": 332, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 326, "src": "4849:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4840:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 330, "id": 334, "nodeType": "Return", "src": "4833:27:0" } ] }, "documentation": null, "id": 336, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 327, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 326, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 336, "src": "4768:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 325, "name": "address", "nodeType": "ElementaryTypeName", "src": "4768:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4767:20:0" }, "payable": false, "returnParameters": { "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 329, "name": "balance", "nodeType": "VariableDeclaration", "scope": 336, "src": "4809:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 328, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4809:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4808:14:0" }, "scope": 551, "src": "4749:118:0", "stateMutability": "view", "superFunction": 108, "visibility": "public" }, { "body": { "id": 378, "nodeType": "Block", "src": "5283:189:0", "statements": [ { "expression": { "argumentTypes": null, "id": 356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 345, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5293:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 348, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 346, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5302:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5302:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5293:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 354, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5341:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 349, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5316:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 352, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5325:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5325:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5316:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "5316:24:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 355, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5316:32:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5293:55:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 357, "nodeType": "ExpressionStatement", "src": "5293:55:0" }, { "expression": { "argumentTypes": null, "id": 367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 358, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5358:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 360, "indexExpression": { "argumentTypes": null, "id": 359, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 338, "src": "5367:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5358:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 365, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5390:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 361, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "5373:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 363, "indexExpression": { "argumentTypes": null, "id": 362, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 338, "src": "5382:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5373:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 23, "src": "5373:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 366, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5373:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5358:39:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 368, "nodeType": "ExpressionStatement", "src": "5358:39:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 370, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "5421:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5421:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 372, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 338, "src": "5433:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 373, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5437:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 369, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "5412:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 374, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5412:32:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 375, "nodeType": "EmitStatement", "src": "5407:37:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5461:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 344, "id": 377, "nodeType": "Return", "src": "5454:11:0" } ] }, "documentation": null, "id": 379, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 341, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 338, "name": "to", "nodeType": "VariableDeclaration", "scope": 379, "src": "5228:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 337, "name": "address", "nodeType": "ElementaryTypeName", "src": "5228:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 340, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 379, "src": "5240:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 339, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5240:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5227:25:0" }, "payable": false, "returnParameters": { "id": 344, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 343, "name": "success", "nodeType": "VariableDeclaration", "scope": 379, "src": "5269:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 342, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5269:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "5268:14:0" }, "scope": 551, "src": "5210:262:0", "stateMutability": "nonpayable", "superFunction": 126, "visibility": "public" }, { "body": { "id": 406, "nodeType": "Block", "src": "6055:127:0", "statements": [ { "expression": { "argumentTypes": null, "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 388, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "6065:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 392, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 389, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6073:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6073:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6065:19:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 393, "indexExpression": { "argumentTypes": null, "id": 391, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 381, "src": "6085:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6065:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 394, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 383, "src": "6096:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6065:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 396, "nodeType": "ExpressionStatement", "src": "6065:37:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 398, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6126:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6126:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 400, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 381, "src": "6138:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 401, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 383, "src": "6147:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 397, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 162, "src": "6117:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6117:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 403, "nodeType": "EmitStatement", "src": "6112:42:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6171:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 387, "id": 405, "nodeType": "Return", "src": "6164:11:0" } ] }, "documentation": null, "id": 407, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 384, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 381, "name": "spender", "nodeType": "VariableDeclaration", "scope": 407, "src": "5995:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 380, "name": "address", "nodeType": "ElementaryTypeName", "src": "5995:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 383, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 407, "src": "6012:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 382, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6012:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5994:30:0" }, "payable": false, "returnParameters": { "id": 387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 386, "name": "success", "nodeType": "VariableDeclaration", "scope": 407, "src": "6041:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 385, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6041:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6040:14:0" }, "scope": 551, "src": "5978:204:0", "stateMutability": "nonpayable", "superFunction": 135, "visibility": "public" }, { "body": { "id": 465, "nodeType": "Block", "src": "6805:246:0", "statements": [ { "expression": { "argumentTypes": null, "id": 427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 418, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6815:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 420, "indexExpression": { "argumentTypes": null, "id": 419, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6824:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6815:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 425, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "6851:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 421, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6832:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 423, "indexExpression": { "argumentTypes": null, "id": 422, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6841:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6832:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "6832:18:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6832:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6815:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 428, "nodeType": "ExpressionStatement", "src": "6815:43:0" }, { "expression": { "argumentTypes": null, "id": 444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 429, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "6868:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 433, "indexExpression": { "argumentTypes": null, "id": 430, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6876:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6868:13:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 434, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 431, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6882:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6882:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6868:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 442, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "6926:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 435, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "6896:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 437, "indexExpression": { "argumentTypes": null, "id": 436, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "6904:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6896:13:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 440, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 438, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "6910:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6910:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6896:25:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 45, "src": "6896:29:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 443, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6896:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6868:65:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 445, "nodeType": "ExpressionStatement", "src": "6868:65:0" }, { "expression": { "argumentTypes": null, "id": 455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 446, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6943:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 448, "indexExpression": { "argumentTypes": null, "id": 447, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 411, "src": "6952:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6943:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 453, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "6975:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 449, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 263, "src": "6958:8:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 451, "indexExpression": { "argumentTypes": null, "id": 450, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 411, "src": "6967:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6958:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 23, "src": "6958:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 454, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6958:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6943:39:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 456, "nodeType": "ExpressionStatement", "src": "6943:39:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 458, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 409, "src": "7006:4:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 459, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 411, "src": "7012:2:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 460, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "7016:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 457, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 154, "src": "6997:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 461, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6997:26:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 462, "nodeType": "EmitStatement", "src": "6992:31:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7040:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 417, "id": 464, "nodeType": "Return", "src": "7033:11:0" } ] }, "documentation": null, "id": 466, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 414, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 409, "name": "from", "nodeType": "VariableDeclaration", "scope": 466, "src": "6736:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 408, "name": "address", "nodeType": "ElementaryTypeName", "src": "6736:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 411, "name": "to", "nodeType": "VariableDeclaration", "scope": 466, "src": "6750:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 410, "name": "address", "nodeType": "ElementaryTypeName", "src": "6750:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 413, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 466, "src": "6762:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 412, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6762:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6735:39:0" }, "payable": false, "returnParameters": { "id": 417, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 416, "name": "success", "nodeType": "VariableDeclaration", "scope": 466, "src": "6791:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 415, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6791:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6790:14:0" }, "scope": 551, "src": "6714:337:0", "stateMutability": "nonpayable", "superFunction": 146, "visibility": "public" }, { "body": { "id": 481, "nodeType": "Block", "src": "7425:52:0", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 475, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "7442:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 477, "indexExpression": { "argumentTypes": null, "id": 476, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 468, "src": "7450:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7442:19:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 479, "indexExpression": { "argumentTypes": null, "id": 478, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 470, "src": "7462:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7442:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 474, "id": 480, "nodeType": "Return", "src": "7435:35:0" } ] }, "documentation": null, "id": 482, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 471, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 468, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 482, "src": "7351:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 467, "name": "address", "nodeType": "ElementaryTypeName", "src": "7351:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 470, "name": "spender", "nodeType": "VariableDeclaration", "scope": 482, "src": "7371:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 469, "name": "address", "nodeType": "ElementaryTypeName", "src": "7371:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7350:37:0" }, "payable": false, "returnParameters": { "id": 474, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 473, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 482, "src": "7409:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 472, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7409:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7408:16:0" }, "scope": 551, "src": "7332:145:0", "stateMutability": "view", "superFunction": 117, "visibility": "public" }, { "body": { "id": 522, "nodeType": "Block", "src": "7933:216:0", "statements": [ { "expression": { "argumentTypes": null, "id": 500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 493, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 269, "src": "7943:7:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 497, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 494, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "7951:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7951:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7943:19:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 498, "indexExpression": { "argumentTypes": null, "id": 496, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 484, "src": "7963:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7943:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 499, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "7974:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7943:37:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 501, "nodeType": "ExpressionStatement", "src": "7943:37:0" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 503, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "8004:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8004:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 505, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 484, "src": "8016:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 506, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "8025:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 502, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 162, "src": "7995:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7995:37:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 508, "nodeType": "EmitStatement", "src": "7990:42:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 513, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 566, "src": "8090:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8090:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 515, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "8102:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 516, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 587, "src": "8110:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_FixedSupplyToken_$551", "typeString": "contract FixedSupplyToken" } }, { "argumentTypes": null, "id": 517, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 488, "src": "8116:4:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_contract$_FixedSupplyToken_$551", "typeString": "contract FixedSupplyToken" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 510, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 484, "src": "8065:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 509, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 175, "src": "8042:22:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$175_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8042:31:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$175", "typeString": "contract ApproveAndCallFallBack" } }, "id": 512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", "referencedDeclaration": 174, "src": "8042:47:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,address,bytes memory) external" } }, "id": 518, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8042:79:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 519, "nodeType": "ExpressionStatement", "src": "8042:79:0" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8138:4:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 492, "id": 521, "nodeType": "Return", "src": "8131:11:0" } ] }, "documentation": null, "id": 523, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { "id": 489, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 484, "name": "spender", "nodeType": "VariableDeclaration", "scope": 523, "src": "7861:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 483, "name": "address", "nodeType": "ElementaryTypeName", "src": "7861:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 486, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 523, "src": "7878:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 485, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7878:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 488, "name": "data", "nodeType": "VariableDeclaration", "scope": 523, "src": "7891:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 487, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7891:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7860:42:0" }, "payable": false, "returnParameters": { "id": 492, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 491, "name": "success", "nodeType": "VariableDeclaration", "scope": 523, "src": "7919:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 490, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7919:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "7918:14:0" }, "scope": 551, "src": "7837:312:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 529, "nodeType": "Block", "src": "8367:25:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 526, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 571, 572 ], "referencedDeclaration": 571, "src": "8377:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8377:8:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 528, "nodeType": "ExpressionStatement", "src": "8377:8:0" } ] }, "documentation": null, "id": 530, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 524, "nodeType": "ParameterList", "parameters": [], "src": "8349:2:0" }, "payable": true, "returnParameters": { "id": 525, "nodeType": "ParameterList", "parameters": [], "src": "8367:0:0" }, "scope": 551, "src": "8340:52:0", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { "id": 549, "nodeType": "Block", "src": "8730:76:0", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 545, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "8785:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 546, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 534, "src": "8792:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 542, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 532, "src": "8762:12:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 541, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 163, "src": "8747:14:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$163_$", "typeString": "type(contract ERC20Interface)" } }, "id": 543, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8747:28:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$163", "typeString": "contract ERC20Interface" } }, "id": 544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 126, "src": "8747:37:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8747:52:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 540, "id": 548, "nodeType": "Return", "src": "8740:59:0" } ] }, "documentation": null, "id": 550, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 537, "modifierName": { "argumentTypes": null, "id": 536, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 205, "src": "8697:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8697:9:0" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { "id": 535, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 532, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 550, "src": "8655:20:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 531, "name": "address", "nodeType": "ElementaryTypeName", "src": "8655:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 534, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 550, "src": "8677:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 533, "name": "uint", "nodeType": "ElementaryTypeName", "src": "8677:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8654:35:0" }, "payable": false, "returnParameters": { "id": 540, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 539, "name": "success", "nodeType": "VariableDeclaration", "scope": 550, "src": "8716:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 538, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8716:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8715:14:0" }, "scope": 551, "src": "8624:182:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 552, "src": "3506:5302:0" } ], "src": "0:8808:0" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", "updatedAt": "2018-07-03T10:29:51.540Z" }