{ "contractName": "Owned", "abi": [ { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "newOwner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_from", "type": "address" }, { "indexed": true, "name": "_to", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": false, "inputs": [ { "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "acceptOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610424806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", "sourceMap": "2663:595:25:-;;;2817:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:56:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;2663:595;;;;;;", "deployedSourceMap": "2663:595:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:25;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o", "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 TestToken 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/TestToken.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ 3437 ], "ERC20Interface": [ 3425 ], "Owned": [ 3506 ], "SafeMath": [ 3358 ], "TestToken": [ 3813 ] }, "id": 3814, "nodeType": "SourceUnit", "nodes": [ { "id": 3263, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 3358, "linearizedBaseContracts": [ 3358 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3284, "nodeType": "Block", "src": "719:51:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3272, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3270, "src": "729:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3273, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "733:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 3274, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3267, "src": "737:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "733:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "729:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3277, "nodeType": "ExpressionStatement", "src": "729:9:25" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3279, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3270, "src": "756:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "761:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "756:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3278, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "748:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3282, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "748:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3283, "nodeType": "ExpressionStatement", "src": "748:15:25" } ] }, "documentation": null, "id": 3285, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 3268, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3265, "name": "a", "nodeType": "VariableDeclaration", "scope": 3285, "src": "672:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3264, "name": "uint", "nodeType": "ElementaryTypeName", "src": "672:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3267, "name": "b", "nodeType": "VariableDeclaration", "scope": 3285, "src": "680:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3266, "name": "uint", "nodeType": "ElementaryTypeName", "src": "680:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "671:16:25" }, "payable": false, "returnParameters": { "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3270, "name": "c", "nodeType": "VariableDeclaration", "scope": 3285, "src": "711:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3269, "name": "uint", "nodeType": "ElementaryTypeName", "src": "711:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "710:8:25" }, "scope": 3358, "src": "659:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3306, "nodeType": "Block", "src": "835:51:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3295, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "853:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 3296, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3287, "src": "858:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "853:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "845:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "845:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3299, "nodeType": "ExpressionStatement", "src": "845:15:25" }, { "expression": { "argumentTypes": null, "id": 3304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3300, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3292, "src": "870:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3301, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3287, "src": "874:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 3302, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "878:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "874:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "870:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3305, "nodeType": "ExpressionStatement", "src": "870:9:25" } ] }, "documentation": null, "id": 3307, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 3290, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3287, "name": "a", "nodeType": "VariableDeclaration", "scope": 3307, "src": "788:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3286, "name": "uint", "nodeType": "ElementaryTypeName", "src": "788:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3289, "name": "b", "nodeType": "VariableDeclaration", "scope": 3307, "src": "796:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3288, "name": "uint", "nodeType": "ElementaryTypeName", "src": "796:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "787:16:25" }, "payable": false, "returnParameters": { "id": 3293, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3292, "name": "c", "nodeType": "VariableDeclaration", "scope": 3307, "src": "827:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3291, "name": "uint", "nodeType": "ElementaryTypeName", "src": "827:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "826:8:25" }, "scope": 3358, "src": "775:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3334, "nodeType": "Block", "src": "951:65:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3316, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3314, "src": "961:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3317, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "965:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 3318, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "969:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "965:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "961:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3321, "nodeType": "ExpressionStatement", "src": "961:9:25" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3323, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "988:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "993:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "988:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3326, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3314, "src": "998:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 3327, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "1002:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 3329, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "1007:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:10:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "988:20:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3322, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "980:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3332, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "980:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3333, "nodeType": "ExpressionStatement", "src": "980:29:25" } ] }, "documentation": null, "id": 3335, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 3312, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3309, "name": "a", "nodeType": "VariableDeclaration", "scope": 3335, "src": "904:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3308, "name": "uint", "nodeType": "ElementaryTypeName", "src": "904:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3311, "name": "b", "nodeType": "VariableDeclaration", "scope": 3335, "src": "912:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3310, "name": "uint", "nodeType": "ElementaryTypeName", "src": "912:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "903:16:25" }, "payable": false, "returnParameters": { "id": 3315, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3314, "name": "c", "nodeType": "VariableDeclaration", "scope": 3335, "src": "943:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3313, "name": "uint", "nodeType": "ElementaryTypeName", "src": "943:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "942:8:25" }, "scope": 3358, "src": "891:125:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3356, "nodeType": "Block", "src": "1081:50:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3345, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3339, "src": "1099:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1103:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1099:5:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3344, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "1091:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1091:14:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3349, "nodeType": "ExpressionStatement", "src": "1091:14:25" }, { "expression": { "argumentTypes": null, "id": 3354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3350, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3342, "src": "1115:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3351, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3337, "src": "1119:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 3352, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3339, "src": "1123:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1119:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1115:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3355, "nodeType": "ExpressionStatement", "src": "1115:9:25" } ] }, "documentation": null, "id": 3357, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 3340, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3337, "name": "a", "nodeType": "VariableDeclaration", "scope": 3357, "src": "1034:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1034:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3339, "name": "b", "nodeType": "VariableDeclaration", "scope": 3357, "src": "1042:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3338, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1042:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1033:16:25" }, "payable": false, "returnParameters": { "id": 3343, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3342, "name": "c", "nodeType": "VariableDeclaration", "scope": 3357, "src": "1073:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3341, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1073:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1072:8:25" }, "scope": 3358, "src": "1021:110:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 3814, "src": "636:497:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 3425, "linearizedBaseContracts": [ 3425 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 3363, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 3359, "nodeType": "ParameterList", "parameters": [], "src": "1445:2:25" }, "payable": false, "returnParameters": { "id": 3362, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3361, "name": "", "nodeType": "VariableDeclaration", "scope": 3363, "src": "1473:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3360, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1473:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1472:6:25" }, "scope": 3425, "src": "1425:54:25", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3370, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 3366, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3365, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1503:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3364, "name": "address", "nodeType": "ElementaryTypeName", "src": "1503:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1502:20:25" }, "payable": false, "returnParameters": { "id": 3369, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3368, "name": "balance", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1548:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3367, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1548:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1547:14:25" }, "scope": 3425, "src": "1484:78:25", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3379, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 3375, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3372, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3379, "src": "1586:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3371, "name": "address", "nodeType": "ElementaryTypeName", "src": "1586:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3374, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3379, "src": "1606:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3373, "name": "address", "nodeType": "ElementaryTypeName", "src": "1606:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1585:37:25" }, "payable": false, "returnParameters": { "id": 3378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3377, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 3379, "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3376, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1648:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1647:16:25" }, "scope": 3425, "src": "1567:97:25", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3388, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3381, "name": "to", "nodeType": "VariableDeclaration", "scope": 3388, "src": "1687:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3380, "name": "address", "nodeType": "ElementaryTypeName", "src": "1687:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3383, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3388, "src": "1699:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3382, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1699:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1686:25:25" }, "payable": false, "returnParameters": { "id": 3387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3386, "name": "success", "nodeType": "VariableDeclaration", "scope": 3388, "src": "1728:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3385, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1728:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1727:14:25" }, "scope": 3425, "src": "1669:73:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3397, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 3393, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3390, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1764:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3389, "name": "address", "nodeType": "ElementaryTypeName", "src": "1764:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3392, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1781:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3391, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1781:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1763:30:25" }, "payable": false, "returnParameters": { "id": 3396, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3395, "name": "success", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1810:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3394, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1810:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1809:14:25" }, "scope": 3425, "src": "1747:77:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3408, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 3404, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3399, "name": "from", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1851:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3398, "name": "address", "nodeType": "ElementaryTypeName", "src": "1851:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3401, "name": "to", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1865:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3400, "name": "address", "nodeType": "ElementaryTypeName", "src": "1865:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3403, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1877:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3402, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1877:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1850:39:25" }, "payable": false, "returnParameters": { "id": 3407, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3406, "name": "success", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1906:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3405, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1906:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1905:14:25" }, "scope": 3425, "src": "1829:91:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 3416, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { "id": 3415, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3410, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", "scope": 3416, "src": "1941:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3409, "name": "address", "nodeType": "ElementaryTypeName", "src": "1941:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3412, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", "scope": 3416, "src": "1963:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3411, "name": "address", "nodeType": "ElementaryTypeName", "src": "1963:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3414, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3416, "src": "1983:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3413, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1983:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1940:55:25" }, "src": "1926:70:25" }, { "anonymous": false, "documentation": null, "id": 3424, "name": "Approval", "nodeType": "EventDefinition", "parameters": { "id": 3423, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3418, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3424, "src": "2016:26:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3417, "name": "address", "nodeType": "ElementaryTypeName", "src": "2016:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3420, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3424, "src": "2044:23:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3419, "name": "address", "nodeType": "ElementaryTypeName", "src": "2044:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3422, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3424, "src": "2069:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3421, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2069:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2015:66:25" }, "src": "2001:81:25" } ], "scope": 3814, "src": "1395:689:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 3437, "linearizedBaseContracts": [ 3437 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 3436, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 3434, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3427, "name": "from", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2416:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3426, "name": "address", "nodeType": "ElementaryTypeName", "src": "2416:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3429, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2430:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3428, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2430:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3431, "name": "token", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2446:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3430, "name": "address", "nodeType": "ElementaryTypeName", "src": "2446:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3433, "name": "data", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2461:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3432, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2461:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2415:57:25" }, "payable": false, "returnParameters": { "id": 3435, "nodeType": "ParameterList", "parameters": [], "src": "2479:0:25" }, "scope": 3437, "src": "2391:89:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3814, "src": "2353:129:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3506, "linearizedBaseContracts": [ 3506 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 3439, "name": "owner", "nodeType": "VariableDeclaration", "scope": 3506, "src": "2684:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3438, "name": "address", "nodeType": "ElementaryTypeName", "src": "2684:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3441, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 3506, "src": "2710:23:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3440, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 3447, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 3446, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3443, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", "scope": 3447, "src": "2767:21:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3442, "name": "address", "nodeType": "ElementaryTypeName", "src": "2767:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3445, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", "scope": 3447, "src": "2790:19:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3444, "name": "address", "nodeType": "ElementaryTypeName", "src": "2790:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2766:44:25" }, "src": "2740:71:25" }, { "body": { "id": 3455, "nodeType": "Block", "src": "2838:35:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3450, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "2848:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3451, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "2856:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2856:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2848:18:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3454, "nodeType": "ExpressionStatement", "src": "2848:18:25" } ] }, "documentation": null, "id": 3456, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3448, "nodeType": "ParameterList", "parameters": [], "src": "2828:2:25" }, "payable": false, "returnParameters": { "id": 3449, "nodeType": "ParameterList", "parameters": [], "src": "2838:0:25" }, "scope": 3506, "src": "2817:56:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3466, "nodeType": "Block", "src": "2898:56:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3459, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "2916:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2916:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 3461, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "2930:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2916:19:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3458, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "2908:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3463, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2908:28:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3464, "nodeType": "ExpressionStatement", "src": "2908:28:25" }, { "id": 3465, "nodeType": "PlaceholderStatement", "src": "2946:1:25" } ] }, "documentation": null, "id": 3467, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 3457, "nodeType": "ParameterList", "parameters": [], "src": "2898:0:25" }, "src": "2879:75:25", "visibility": "internal" }, { "body": { "id": 3478, "nodeType": "Block", "src": "3023:37:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3474, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3033:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3475, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3469, "src": "3044:9:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3033:20:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3477, "nodeType": "ExpressionStatement", "src": "3033:20:25" } ] }, "documentation": null, "id": 3479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 3472, "modifierName": { "argumentTypes": null, "id": 3471, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3467, "src": "3013:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3013:9:25" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 3470, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3469, "name": "_newOwner", "nodeType": "VariableDeclaration", "scope": 3479, "src": "2987:17:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3468, "name": "address", "nodeType": "ElementaryTypeName", "src": "2987:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2986:19:25" }, "payable": false, "returnParameters": { "id": 3473, "nodeType": "ParameterList", "parameters": [], "src": "3023:0:25" }, "scope": 3506, "src": "2960:100:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3504, "nodeType": "Block", "src": "3099:157:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3483, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "3117:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3117:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 3485, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3131:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3117:22:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3482, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "3109:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3109:31:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3488, "nodeType": "ExpressionStatement", "src": "3109:31:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3490, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "3176:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3491, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3183:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3489, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3447, "src": "3155:20:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 3492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3155:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3493, "nodeType": "EmitStatement", "src": "3150:42:25" }, { "expression": { "argumentTypes": null, "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3494, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "3202:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3495, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3210:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3202:16:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3497, "nodeType": "ExpressionStatement", "src": "3202:16:25" }, { "expression": { "argumentTypes": null, "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3498, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3228:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3247:1:25", "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": 3499, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3239:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3239:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3228:21:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3503, "nodeType": "ExpressionStatement", "src": "3228:21:25" } ] }, "documentation": null, "id": 3505, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 3480, "nodeType": "ParameterList", "parameters": [], "src": "3089:2:25" }, "payable": false, "returnParameters": { "id": 3481, "nodeType": "ParameterList", "parameters": [], "src": "3099:0:25" }, "scope": 3506, "src": "3065:191:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3814, "src": "2663:595:25" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3507, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3425, "src": "3528:14:25", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, "id": 3508, "nodeType": "InheritanceSpecifier", "src": "3528:14:25" }, { "arguments": null, "baseName": { "contractScope": null, "id": 3509, "name": "Owned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3506, "src": "3544:5:25", "typeDescriptions": { "typeIdentifier": "t_contract$_Owned_$3506", "typeString": "contract Owned" } }, "id": 3510, "nodeType": "InheritanceSpecifier", "src": "3544:5:25" } ], "contractDependencies": [ 3425, 3506 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3813, "linearizedBaseContracts": [ 3813, 3506, 3425 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { "id": 3513, "libraryName": { "contractScope": null, "id": 3511, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3358, "src": "3562:8:25", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$3358", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "3556:24:25", "typeName": { "id": 3512, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3575:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": false, "id": 3515, "name": "symbol", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3586:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3514, "name": "string", "nodeType": "ElementaryTypeName", "src": "3586:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3517, "name": "name", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3612:19:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3516, "name": "string", "nodeType": "ElementaryTypeName", "src": "3612:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3519, "name": "decimals", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3637:21:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 3518, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3637:5:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3521, "name": "_totalSupply", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3664:17:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3520, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3664:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3525, "name": "balances", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3688:33:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 3524, "keyType": { "id": 3522, "name": "address", "nodeType": "ElementaryTypeName", "src": "3696:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3688:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3523, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3707:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3531, "name": "allowed", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3727:52:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 3530, "keyType": { "id": 3526, "name": "address", "nodeType": "ElementaryTypeName", "src": "3735:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3727:44:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 3529, "keyType": { "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", "src": "3754:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3746:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3528, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3765:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "body": { "id": 3570, "nodeType": "Block", "src": "3987:235:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3536, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3534, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3515, "src": "3997:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", "id": 3535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4006:5:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", "typeString": "literal_string \"TKN\"" }, "value": "TKN" }, "src": "3997:14:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 3537, "nodeType": "ExpressionStatement", "src": "3997:14:25" }, { "expression": { "argumentTypes": null, "id": 3540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3538, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3517, "src": "4021:4:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4028:15:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", "typeString": "literal_string \"Token Example\"" }, "value": "Token Example" }, "src": "4021:22:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 3541, "nodeType": "ExpressionStatement", "src": "4021:22:25" }, { "expression": { "argumentTypes": null, "id": 3544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3542, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3519, "src": "4053:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "3138", "id": 3543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4064:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "4053:13:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 3545, "nodeType": "ExpressionStatement", "src": "4053:13:25" }, { "expression": { "argumentTypes": null, "id": 3554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3546, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4076:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", "id": 3547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4091:7:25", "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": 3552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4101:2:25", "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": 3550, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3519, "src": "4110:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 3549, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4105:4:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 3551, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4105:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4101:18:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4091:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4076:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3555, "nodeType": "ExpressionStatement", "src": "4076:43:25" }, { "expression": { "argumentTypes": null, "id": 3560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3556, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "4129:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3558, "indexExpression": { "argumentTypes": null, "id": 3557, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "4138:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4129:15:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3559, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4147:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4129:30:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3561, "nodeType": "ExpressionStatement", "src": "4129:30:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4191:1:25", "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": 3563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4183:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4183:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3566, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "4195:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3567, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4202:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3562, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3416, "src": "4174:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3568, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4174:41:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3569, "nodeType": "EmitStatement", "src": "4169:46:25" } ] }, "documentation": null, "id": 3571, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3532, "nodeType": "ParameterList", "parameters": [], "src": "3977:2:25" }, "payable": false, "returnParameters": { "id": 3533, "nodeType": "ParameterList", "parameters": [], "src": "3987:0:25" }, "scope": 3813, "src": "3966:256:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3585, "nodeType": "Block", "src": "4459:62:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3578, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "4493:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3582, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3580, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4510:1:25", "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": 3579, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4502:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4502:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4493:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 3576, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4476:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "4476:16:25", "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": 3583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4476:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3575, "id": 3584, "nodeType": "Return", "src": "4469:45:25" } ] }, "documentation": null, "id": 3586, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 3572, "nodeType": "ParameterList", "parameters": [], "src": "4429:2:25" }, "payable": false, "returnParameters": { "id": 3575, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3574, "name": "", "nodeType": "VariableDeclaration", "scope": 3586, "src": "4453:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3573, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4453:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4452:6:25" }, "scope": 3813, "src": "4409:112:25", "stateMutability": "view", "superFunction": 3363, "visibility": "public" }, { "body": { "id": 3597, "nodeType": "Block", "src": "4816:44:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3593, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "4833:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3595, "indexExpression": { "argumentTypes": null, "id": 3594, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3588, "src": "4842:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4833:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3592, "id": 3596, "nodeType": "Return", "src": "4826:27:25" } ] }, "documentation": null, "id": 3598, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 3589, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3588, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3598, "src": "4761:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3587, "name": "address", "nodeType": "ElementaryTypeName", "src": "4761:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4760:20:25" }, "payable": false, "returnParameters": { "id": 3592, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3591, "name": "balance", "nodeType": "VariableDeclaration", "scope": 3598, "src": "4802:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3590, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4802:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4801:14:25" }, "scope": 3813, "src": "4742:118:25", "stateMutability": "view", "superFunction": 3370, "visibility": "public" }, { "body": { "id": 3640, "nodeType": "Block", "src": "5276:189:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3607, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5286:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3610, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3608, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "5295:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5295:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5286:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3616, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3602, "src": "5334:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3611, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5309:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3614, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3612, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "5318:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5318:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5309:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "5309:24:25", "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": 3617, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5309:32:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5286:55:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3619, "nodeType": "ExpressionStatement", "src": "5286:55:25" }, { "expression": { "argumentTypes": null, "id": 3629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3620, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5351:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3622, "indexExpression": { "argumentTypes": null, "id": 3621, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3600, "src": "5360:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5351:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3627, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3602, "src": "5383:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3623, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5366:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3625, "indexExpression": { "argumentTypes": null, "id": 3624, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3600, "src": "5375:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5366:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 3285, "src": "5366:16:25", "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": 3628, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5366:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5351:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3630, "nodeType": "ExpressionStatement", "src": "5351:39:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3632, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "5414:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5414:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3634, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3600, "src": "5426:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3635, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3602, "src": "5430:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3631, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3416, "src": "5405:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5405:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3637, "nodeType": "EmitStatement", "src": "5400:37:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5454:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3606, "id": 3639, "nodeType": "Return", "src": "5447:11:25" } ] }, "documentation": null, "id": 3641, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 3603, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3600, "name": "to", "nodeType": "VariableDeclaration", "scope": 3641, "src": "5221:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3599, "name": "address", "nodeType": "ElementaryTypeName", "src": "5221:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3602, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3641, "src": "5233:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3601, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5233:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5220:25:25" }, "payable": false, "returnParameters": { "id": 3606, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3605, "name": "success", "nodeType": "VariableDeclaration", "scope": 3641, "src": "5262:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3604, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5262:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "5261:14:25" }, "scope": 3813, "src": "5203:262:25", "stateMutability": "nonpayable", "superFunction": 3388, "visibility": "public" }, { "body": { "id": 3668, "nodeType": "Block", "src": "6048:127:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3650, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "6058:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3654, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3651, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6066:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6066:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6058:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3655, "indexExpression": { "argumentTypes": null, "id": 3653, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "6078:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6058:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3656, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3645, "src": "6089:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6058:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3658, "nodeType": "ExpressionStatement", "src": "6058:37:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3660, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6119:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6119:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3662, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "6131:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3663, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3645, "src": "6140:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3659, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "6110:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3664, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6110:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3665, "nodeType": "EmitStatement", "src": "6105:42:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6164:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3649, "id": 3667, "nodeType": "Return", "src": "6157:11:25" } ] }, "documentation": null, "id": 3669, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 3646, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3643, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3669, "src": "5988:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3642, "name": "address", "nodeType": "ElementaryTypeName", "src": "5988:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3645, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3669, "src": "6005:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3644, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6005:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5987:30:25" }, "payable": false, "returnParameters": { "id": 3649, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3648, "name": "success", "nodeType": "VariableDeclaration", "scope": 3669, "src": "6034:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3647, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6034:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6033:14:25" }, "scope": 3813, "src": "5971:204:25", "stateMutability": "nonpayable", "superFunction": 3397, "visibility": "public" }, { "body": { "id": 3727, "nodeType": "Block", "src": "6798:246:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3680, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6808:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3682, "indexExpression": { "argumentTypes": null, "id": 3681, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6817:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6808:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3687, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "6844:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3683, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6825:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3685, "indexExpression": { "argumentTypes": null, "id": 3684, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6834:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6825:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "6825:18:25", "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": 3688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6825:26:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6808:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3690, "nodeType": "ExpressionStatement", "src": "6808:43:25" }, { "expression": { "argumentTypes": null, "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3691, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "6861:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3695, "indexExpression": { "argumentTypes": null, "id": 3692, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6869:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6861:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3696, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6875:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6875:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6861:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3704, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "6919:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3697, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "6889:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3699, "indexExpression": { "argumentTypes": null, "id": 3698, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6897:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6889:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3702, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6903:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6903:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6889:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "6889:29:25", "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": 3705, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6889:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6861:65:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3707, "nodeType": "ExpressionStatement", "src": "6861:65:25" }, { "expression": { "argumentTypes": null, "id": 3717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3708, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6936:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3710, "indexExpression": { "argumentTypes": null, "id": 3709, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3673, "src": "6945:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6936:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3715, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "6968:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3711, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6951:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3713, "indexExpression": { "argumentTypes": null, "id": 3712, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3673, "src": "6960:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6951:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 3285, "src": "6951:16:25", "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": 3716, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6951:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6936:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3718, "nodeType": "ExpressionStatement", "src": "6936:39:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3720, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6999:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3721, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3673, "src": "7005:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3722, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "7009:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3719, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3416, "src": "6990:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6990:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3724, "nodeType": "EmitStatement", "src": "6985:31:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7033:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3679, "id": 3726, "nodeType": "Return", "src": "7026:11:25" } ] }, "documentation": null, "id": 3728, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 3676, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3671, "name": "from", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6729:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3670, "name": "address", "nodeType": "ElementaryTypeName", "src": "6729:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3673, "name": "to", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6743:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3672, "name": "address", "nodeType": "ElementaryTypeName", "src": "6743:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3675, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6755:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6755:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6728:39:25" }, "payable": false, "returnParameters": { "id": 3679, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3678, "name": "success", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6784:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3677, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6784:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6783:14:25" }, "scope": 3813, "src": "6707:337:25", "stateMutability": "nonpayable", "superFunction": 3408, "visibility": "public" }, { "body": { "id": 3743, "nodeType": "Block", "src": "7418:52:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3737, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "7435:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3739, "indexExpression": { "argumentTypes": null, "id": 3738, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3730, "src": "7443:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7435:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3741, "indexExpression": { "argumentTypes": null, "id": 3740, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3732, "src": "7455:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7435:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3736, "id": 3742, "nodeType": "Return", "src": "7428:35:25" } ] }, "documentation": null, "id": 3744, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 3733, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3730, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3744, "src": "7344:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3729, "name": "address", "nodeType": "ElementaryTypeName", "src": "7344:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3732, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3744, "src": "7364:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3731, "name": "address", "nodeType": "ElementaryTypeName", "src": "7364:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7343:37:25" }, "payable": false, "returnParameters": { "id": 3736, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3735, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 3744, "src": "7402:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3734, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7402:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7401:16:25" }, "scope": 3813, "src": "7325:145:25", "stateMutability": "view", "superFunction": 3379, "visibility": "public" }, { "body": { "id": 3784, "nodeType": "Block", "src": "7926:216:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3755, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "7936:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3759, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3756, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "7944:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7944:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7936:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3760, "indexExpression": { "argumentTypes": null, "id": 3758, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "7956:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7936:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3761, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "7967:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7936:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3763, "nodeType": "ExpressionStatement", "src": "7936:37:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3765, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "7997:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7997:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3767, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "8009:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3768, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "8018:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3764, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "7988:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7988:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3770, "nodeType": "EmitStatement", "src": "7983:42:25" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3775, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "8083:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8083:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3777, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "8095:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3778, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3907, "src": "8103:4:25", "typeDescriptions": { "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" } }, { "argumentTypes": null, "id": 3779, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "8109:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3772, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "8058:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3771, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3437, "src": "8035:22:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, "id": 3773, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8035:31:25", "typeDescriptions": { "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", "typeString": "contract ApproveAndCallFallBack" } }, "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", "referencedDeclaration": 3436, "src": "8035:47:25", "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": 3780, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8035:79:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3781, "nodeType": "ExpressionStatement", "src": "8035:79:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8131:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3754, "id": 3783, "nodeType": "Return", "src": "8124:11:25" } ] }, "documentation": null, "id": 3785, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { "id": 3751, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3746, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7854:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3745, "name": "address", "nodeType": "ElementaryTypeName", "src": "7854:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3748, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7871:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3747, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7871:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3750, "name": "data", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7884:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3749, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7884:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7853:42:25" }, "payable": false, "returnParameters": { "id": 3754, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3753, "name": "success", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7912:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3752, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7912:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "7911:14:25" }, "scope": 3813, "src": "7830:312:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3791, "nodeType": "Block", "src": "8360:25:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 3788, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 3833, 3834 ], "referencedDeclaration": 3833, "src": "8370:6:25", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 3789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8370:8:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3790, "nodeType": "ExpressionStatement", "src": "8370:8:25" } ] }, "documentation": null, "id": 3792, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3786, "nodeType": "ParameterList", "parameters": [], "src": "8342:2:25" }, "payable": true, "returnParameters": { "id": 3787, "nodeType": "ParameterList", "parameters": [], "src": "8360:0:25" }, "scope": 3813, "src": "8333:52:25", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3811, "nodeType": "Block", "src": "8723:76:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3807, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "8778:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3808, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "8785:6:25", "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": 3804, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "8755:12:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3803, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3425, "src": "8740:14:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", "typeString": "type(contract ERC20Interface)" } }, "id": 3805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8740:28:25", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 3388, "src": "8740:37:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 3809, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8740:52:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 3802, "id": 3810, "nodeType": "Return", "src": "8733:59:25" } ] }, "documentation": null, "id": 3812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 3799, "modifierName": { "argumentTypes": null, "id": 3798, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3467, "src": "8690:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8690:9:25" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { "id": 3797, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3794, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 3812, "src": "8648:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3793, "name": "address", "nodeType": "ElementaryTypeName", "src": "8648:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3796, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3812, "src": "8670:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3795, "name": "uint", "nodeType": "ElementaryTypeName", "src": "8670:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8647:35:25" }, "payable": false, "returnParameters": { "id": 3802, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3801, "name": "success", "nodeType": "VariableDeclaration", "scope": 3812, "src": "8709:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3800, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8709:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8708:14:25" }, "scope": 3813, "src": "8617:182:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3814, "src": "3506:5295:25" } ], "src": "0:8801:25" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", "exportedSymbols": { "ApproveAndCallFallBack": [ 3437 ], "ERC20Interface": [ 3425 ], "Owned": [ 3506 ], "SafeMath": [ 3358 ], "TestToken": [ 3813 ] }, "id": 3814, "nodeType": "SourceUnit", "nodes": [ { "id": 3263, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 3358, "linearizedBaseContracts": [ 3358 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3284, "nodeType": "Block", "src": "719:51:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3272, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3270, "src": "729:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3273, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "733:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 3274, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3267, "src": "737:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "733:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "729:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3277, "nodeType": "ExpressionStatement", "src": "729:9:25" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3279, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3270, "src": "756:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 3280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3265, "src": "761:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "756:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3278, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "748:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3282, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "748:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3283, "nodeType": "ExpressionStatement", "src": "748:15:25" } ] }, "documentation": null, "id": 3285, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 3268, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3265, "name": "a", "nodeType": "VariableDeclaration", "scope": 3285, "src": "672:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3264, "name": "uint", "nodeType": "ElementaryTypeName", "src": "672:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3267, "name": "b", "nodeType": "VariableDeclaration", "scope": 3285, "src": "680:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3266, "name": "uint", "nodeType": "ElementaryTypeName", "src": "680:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "671:16:25" }, "payable": false, "returnParameters": { "id": 3271, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3270, "name": "c", "nodeType": "VariableDeclaration", "scope": 3285, "src": "711:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3269, "name": "uint", "nodeType": "ElementaryTypeName", "src": "711:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "710:8:25" }, "scope": 3358, "src": "659:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3306, "nodeType": "Block", "src": "835:51:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3295, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "853:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 3296, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3287, "src": "858:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "853:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "845:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "845:15:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3299, "nodeType": "ExpressionStatement", "src": "845:15:25" }, { "expression": { "argumentTypes": null, "id": 3304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3300, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3292, "src": "870:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3301, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3287, "src": "874:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 3302, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "878:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "874:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "870:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3305, "nodeType": "ExpressionStatement", "src": "870:9:25" } ] }, "documentation": null, "id": 3307, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 3290, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3287, "name": "a", "nodeType": "VariableDeclaration", "scope": 3307, "src": "788:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3286, "name": "uint", "nodeType": "ElementaryTypeName", "src": "788:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3289, "name": "b", "nodeType": "VariableDeclaration", "scope": 3307, "src": "796:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3288, "name": "uint", "nodeType": "ElementaryTypeName", "src": "796:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "787:16:25" }, "payable": false, "returnParameters": { "id": 3293, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3292, "name": "c", "nodeType": "VariableDeclaration", "scope": 3307, "src": "827:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3291, "name": "uint", "nodeType": "ElementaryTypeName", "src": "827:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "826:8:25" }, "scope": 3358, "src": "775:111:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3334, "nodeType": "Block", "src": "951:65:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3316, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3314, "src": "961:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3317, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "965:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 3318, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "969:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "965:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "961:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3321, "nodeType": "ExpressionStatement", "src": "961:9:25" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3323, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "988:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "993:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "988:6:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3326, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3314, "src": "998:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 3327, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3309, "src": "1002:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 3329, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3311, "src": "1007:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "998:10:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "988:20:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3322, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "980:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3332, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "980:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3333, "nodeType": "ExpressionStatement", "src": "980:29:25" } ] }, "documentation": null, "id": 3335, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 3312, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3309, "name": "a", "nodeType": "VariableDeclaration", "scope": 3335, "src": "904:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3308, "name": "uint", "nodeType": "ElementaryTypeName", "src": "904:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3311, "name": "b", "nodeType": "VariableDeclaration", "scope": 3335, "src": "912:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3310, "name": "uint", "nodeType": "ElementaryTypeName", "src": "912:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "903:16:25" }, "payable": false, "returnParameters": { "id": 3315, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3314, "name": "c", "nodeType": "VariableDeclaration", "scope": 3335, "src": "943:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3313, "name": "uint", "nodeType": "ElementaryTypeName", "src": "943:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "942:8:25" }, "scope": 3358, "src": "891:125:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 3356, "nodeType": "Block", "src": "1081:50:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3345, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3339, "src": "1099:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1103:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1099:5:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3344, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "1091:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1091:14:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3349, "nodeType": "ExpressionStatement", "src": "1091:14:25" }, { "expression": { "argumentTypes": null, "id": 3354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3350, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3342, "src": "1115:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3351, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3337, "src": "1119:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 3352, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3339, "src": "1123:1:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1119:5:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1115:9:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3355, "nodeType": "ExpressionStatement", "src": "1115:9:25" } ] }, "documentation": null, "id": 3357, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { "id": 3340, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3337, "name": "a", "nodeType": "VariableDeclaration", "scope": 3357, "src": "1034:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3336, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1034:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3339, "name": "b", "nodeType": "VariableDeclaration", "scope": 3357, "src": "1042:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3338, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1042:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1033:16:25" }, "payable": false, "returnParameters": { "id": 3343, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3342, "name": "c", "nodeType": "VariableDeclaration", "scope": 3357, "src": "1073:6:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3341, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1073:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1072:8:25" }, "scope": 3358, "src": "1021:110:25", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 3814, "src": "636:497:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 3425, "linearizedBaseContracts": [ 3425 ], "name": "ERC20Interface", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 3363, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 3359, "nodeType": "ParameterList", "parameters": [], "src": "1445:2:25" }, "payable": false, "returnParameters": { "id": 3362, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3361, "name": "", "nodeType": "VariableDeclaration", "scope": 3363, "src": "1473:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3360, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1473:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1472:6:25" }, "scope": 3425, "src": "1425:54:25", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3370, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 3366, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3365, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1503:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3364, "name": "address", "nodeType": "ElementaryTypeName", "src": "1503:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1502:20:25" }, "payable": false, "returnParameters": { "id": 3369, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3368, "name": "balance", "nodeType": "VariableDeclaration", "scope": 3370, "src": "1548:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3367, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1548:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1547:14:25" }, "scope": 3425, "src": "1484:78:25", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3379, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 3375, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3372, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3379, "src": "1586:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3371, "name": "address", "nodeType": "ElementaryTypeName", "src": "1586:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3374, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3379, "src": "1606:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3373, "name": "address", "nodeType": "ElementaryTypeName", "src": "1606:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1585:37:25" }, "payable": false, "returnParameters": { "id": 3378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3377, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 3379, "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3376, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1648:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1647:16:25" }, "scope": 3425, "src": "1567:97:25", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3388, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3381, "name": "to", "nodeType": "VariableDeclaration", "scope": 3388, "src": "1687:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3380, "name": "address", "nodeType": "ElementaryTypeName", "src": "1687:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3383, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3388, "src": "1699:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3382, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1699:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1686:25:25" }, "payable": false, "returnParameters": { "id": 3387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3386, "name": "success", "nodeType": "VariableDeclaration", "scope": 3388, "src": "1728:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3385, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1728:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1727:14:25" }, "scope": 3425, "src": "1669:73:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3397, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 3393, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3390, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1764:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3389, "name": "address", "nodeType": "ElementaryTypeName", "src": "1764:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3392, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1781:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3391, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1781:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1763:30:25" }, "payable": false, "returnParameters": { "id": 3396, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3395, "name": "success", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1810:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3394, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1810:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1809:14:25" }, "scope": 3425, "src": "1747:77:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": null, "id": 3408, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 3404, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3399, "name": "from", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1851:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3398, "name": "address", "nodeType": "ElementaryTypeName", "src": "1851:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3401, "name": "to", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1865:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3400, "name": "address", "nodeType": "ElementaryTypeName", "src": "1865:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3403, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1877:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3402, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1877:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1850:39:25" }, "payable": false, "returnParameters": { "id": 3407, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3406, "name": "success", "nodeType": "VariableDeclaration", "scope": 3408, "src": "1906:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3405, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1906:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "1905:14:25" }, "scope": 3425, "src": "1829:91:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 3416, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { "id": 3415, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3410, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", "scope": 3416, "src": "1941:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3409, "name": "address", "nodeType": "ElementaryTypeName", "src": "1941:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3412, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", "scope": 3416, "src": "1963:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3411, "name": "address", "nodeType": "ElementaryTypeName", "src": "1963:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3414, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3416, "src": "1983:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3413, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1983:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1940:55:25" }, "src": "1926:70:25" }, { "anonymous": false, "documentation": null, "id": 3424, "name": "Approval", "nodeType": "EventDefinition", "parameters": { "id": 3423, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3418, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3424, "src": "2016:26:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3417, "name": "address", "nodeType": "ElementaryTypeName", "src": "2016:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3420, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3424, "src": "2044:23:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3419, "name": "address", "nodeType": "ElementaryTypeName", "src": "2044:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3422, "indexed": false, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3424, "src": "2069:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3421, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2069:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2015:66:25" }, "src": "2001:81:25" } ], "scope": 3814, "src": "1395:689:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 3437, "linearizedBaseContracts": [ 3437 ], "name": "ApproveAndCallFallBack", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": null, "id": 3436, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "receiveApproval", "nodeType": "FunctionDefinition", "parameters": { "id": 3434, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3427, "name": "from", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2416:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3426, "name": "address", "nodeType": "ElementaryTypeName", "src": "2416:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3429, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2430:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3428, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2430:7:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3431, "name": "token", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2446:13:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3430, "name": "address", "nodeType": "ElementaryTypeName", "src": "2446:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3433, "name": "data", "nodeType": "VariableDeclaration", "scope": 3436, "src": "2461:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3432, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2461:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2415:57:25" }, "payable": false, "returnParameters": { "id": 3435, "nodeType": "ParameterList", "parameters": [], "src": "2479:0:25" }, "scope": 3437, "src": "2391:89:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3814, "src": "2353:129:25" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3506, "linearizedBaseContracts": [ 3506 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 3439, "name": "owner", "nodeType": "VariableDeclaration", "scope": 3506, "src": "2684:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3438, "name": "address", "nodeType": "ElementaryTypeName", "src": "2684:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3441, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 3506, "src": "2710:23:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3440, "name": "address", "nodeType": "ElementaryTypeName", "src": "2710:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 3447, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 3446, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3443, "indexed": true, "name": "_from", "nodeType": "VariableDeclaration", "scope": 3447, "src": "2767:21:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3442, "name": "address", "nodeType": "ElementaryTypeName", "src": "2767:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3445, "indexed": true, "name": "_to", "nodeType": "VariableDeclaration", "scope": 3447, "src": "2790:19:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3444, "name": "address", "nodeType": "ElementaryTypeName", "src": "2790:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2766:44:25" }, "src": "2740:71:25" }, { "body": { "id": 3455, "nodeType": "Block", "src": "2838:35:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3450, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "2848:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3451, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "2856:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2856:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2848:18:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3454, "nodeType": "ExpressionStatement", "src": "2848:18:25" } ] }, "documentation": null, "id": 3456, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3448, "nodeType": "ParameterList", "parameters": [], "src": "2828:2:25" }, "payable": false, "returnParameters": { "id": 3449, "nodeType": "ParameterList", "parameters": [], "src": "2838:0:25" }, "scope": 3506, "src": "2817:56:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3466, "nodeType": "Block", "src": "2898:56:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3459, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "2916:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2916:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 3461, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "2930:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2916:19:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3458, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "2908:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3463, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2908:28:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3464, "nodeType": "ExpressionStatement", "src": "2908:28:25" }, { "id": 3465, "nodeType": "PlaceholderStatement", "src": "2946:1:25" } ] }, "documentation": null, "id": 3467, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 3457, "nodeType": "ParameterList", "parameters": [], "src": "2898:0:25" }, "src": "2879:75:25", "visibility": "internal" }, { "body": { "id": 3478, "nodeType": "Block", "src": "3023:37:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3474, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3033:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3475, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3469, "src": "3044:9:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3033:20:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3477, "nodeType": "ExpressionStatement", "src": "3033:20:25" } ] }, "documentation": null, "id": 3479, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 3472, "modifierName": { "argumentTypes": null, "id": 3471, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3467, "src": "3013:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "3013:9:25" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 3470, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3469, "name": "_newOwner", "nodeType": "VariableDeclaration", "scope": 3479, "src": "2987:17:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3468, "name": "address", "nodeType": "ElementaryTypeName", "src": "2987:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2986:19:25" }, "payable": false, "returnParameters": { "id": 3473, "nodeType": "ParameterList", "parameters": [], "src": "3023:0:25" }, "scope": 3506, "src": "2960:100:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3504, "nodeType": "Block", "src": "3099:157:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3483, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "3117:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3117:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 3485, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3131:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3117:22:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3482, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3831, 3832 ], "referencedDeclaration": 3831, "src": "3109:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3109:31:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3488, "nodeType": "ExpressionStatement", "src": "3109:31:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3490, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "3176:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3491, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3183:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3489, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3447, "src": "3155:20:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 3492, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3155:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3493, "nodeType": "EmitStatement", "src": "3150:42:25" }, { "expression": { "argumentTypes": null, "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3494, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "3202:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3495, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3210:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3202:16:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3497, "nodeType": "ExpressionStatement", "src": "3202:16:25" }, { "expression": { "argumentTypes": null, "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3498, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3441, "src": "3228:8:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3500, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3247:1:25", "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": 3499, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3239:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3239:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3228:21:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3503, "nodeType": "ExpressionStatement", "src": "3228:21:25" } ] }, "documentation": null, "id": 3505, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "acceptOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 3480, "nodeType": "ParameterList", "parameters": [], "src": "3089:2:25" }, "payable": false, "returnParameters": { "id": 3481, "nodeType": "ParameterList", "parameters": [], "src": "3099:0:25" }, "scope": 3506, "src": "3065:191:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3814, "src": "2663:595:25" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3507, "name": "ERC20Interface", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3425, "src": "3528:14:25", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, "id": 3508, "nodeType": "InheritanceSpecifier", "src": "3528:14:25" }, { "arguments": null, "baseName": { "contractScope": null, "id": 3509, "name": "Owned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3506, "src": "3544:5:25", "typeDescriptions": { "typeIdentifier": "t_contract$_Owned_$3506", "typeString": "contract Owned" } }, "id": 3510, "nodeType": "InheritanceSpecifier", "src": "3544:5:25" } ], "contractDependencies": [ 3425, 3506 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 3813, "linearizedBaseContracts": [ 3813, 3506, 3425 ], "name": "TestToken", "nodeType": "ContractDefinition", "nodes": [ { "id": 3513, "libraryName": { "contractScope": null, "id": 3511, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3358, "src": "3562:8:25", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$3358", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "3556:24:25", "typeName": { "id": 3512, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3575:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": false, "id": 3515, "name": "symbol", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3586:20:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3514, "name": "string", "nodeType": "ElementaryTypeName", "src": "3586:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3517, "name": "name", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3612:19:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3516, "name": "string", "nodeType": "ElementaryTypeName", "src": "3612:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3519, "name": "decimals", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3637:21:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 3518, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3637:5:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3521, "name": "_totalSupply", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3664:17:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3520, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3664:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3525, "name": "balances", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3688:33:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 3524, "keyType": { "id": 3522, "name": "address", "nodeType": "ElementaryTypeName", "src": "3696:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3688:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3523, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3707:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3531, "name": "allowed", "nodeType": "VariableDeclaration", "scope": 3813, "src": "3727:52:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { "id": 3530, "keyType": { "id": 3526, "name": "address", "nodeType": "ElementaryTypeName", "src": "3735:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3727:44:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { "id": 3529, "keyType": { "id": 3527, "name": "address", "nodeType": "ElementaryTypeName", "src": "3754:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3746:24:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 3528, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3765:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } } }, "value": null, "visibility": "internal" }, { "body": { "id": 3570, "nodeType": "Block", "src": "3987:235:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3536, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3534, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3515, "src": "3997:6:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "544b4e", "id": 3535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4006:5:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", "typeString": "literal_string \"TKN\"" }, "value": "TKN" }, "src": "3997:14:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 3537, "nodeType": "ExpressionStatement", "src": "3997:14:25" }, { "expression": { "argumentTypes": null, "id": 3540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3538, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3517, "src": "4021:4:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "546f6b656e204578616d706c65", "id": 3539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4028:15:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", "typeString": "literal_string \"Token Example\"" }, "value": "Token Example" }, "src": "4021:22:25", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 3541, "nodeType": "ExpressionStatement", "src": "4021:22:25" }, { "expression": { "argumentTypes": null, "id": 3544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3542, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3519, "src": "4053:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "3138", "id": 3543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4064:2:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "4053:13:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 3545, "nodeType": "ExpressionStatement", "src": "4053:13:25" }, { "expression": { "argumentTypes": null, "id": 3554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3546, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4076:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", "id": 3547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4091:7:25", "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": 3552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4101:2:25", "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": 3550, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3519, "src": "4110:8:25", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "id": 3549, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4105:4:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 3551, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4105:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4101:18:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4091:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4076:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3555, "nodeType": "ExpressionStatement", "src": "4076:43:25" }, { "expression": { "argumentTypes": null, "id": 3560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3556, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "4129:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3558, "indexExpression": { "argumentTypes": null, "id": 3557, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "4138:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4129:15:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3559, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4147:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4129:30:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3561, "nodeType": "ExpressionStatement", "src": "4129:30:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4191:1:25", "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": 3563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4183:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4183:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3566, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "4195:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3567, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4202:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3562, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3416, "src": "4174:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3568, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4174:41:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3569, "nodeType": "EmitStatement", "src": "4169:46:25" } ] }, "documentation": null, "id": 3571, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3532, "nodeType": "ParameterList", "parameters": [], "src": "3977:2:25" }, "payable": false, "returnParameters": { "id": 3533, "nodeType": "ParameterList", "parameters": [], "src": "3987:0:25" }, "scope": 3813, "src": "3966:256:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3585, "nodeType": "Block", "src": "4459:62:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3578, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "4493:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3582, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 3580, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4510:1:25", "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": 3579, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4502:7:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4502:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4493:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 3576, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3521, "src": "4476:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "4476:16:25", "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": 3583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4476:38:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3575, "id": 3584, "nodeType": "Return", "src": "4469:45:25" } ] }, "documentation": null, "id": 3586, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { "id": 3572, "nodeType": "ParameterList", "parameters": [], "src": "4429:2:25" }, "payable": false, "returnParameters": { "id": 3575, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3574, "name": "", "nodeType": "VariableDeclaration", "scope": 3586, "src": "4453:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3573, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4453:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4452:6:25" }, "scope": 3813, "src": "4409:112:25", "stateMutability": "view", "superFunction": 3363, "visibility": "public" }, { "body": { "id": 3597, "nodeType": "Block", "src": "4816:44:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3593, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "4833:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3595, "indexExpression": { "argumentTypes": null, "id": 3594, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3588, "src": "4842:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4833:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3592, "id": 3596, "nodeType": "Return", "src": "4826:27:25" } ] }, "documentation": null, "id": 3598, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { "id": 3589, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3588, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3598, "src": "4761:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3587, "name": "address", "nodeType": "ElementaryTypeName", "src": "4761:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "4760:20:25" }, "payable": false, "returnParameters": { "id": 3592, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3591, "name": "balance", "nodeType": "VariableDeclaration", "scope": 3598, "src": "4802:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3590, "name": "uint", "nodeType": "ElementaryTypeName", "src": "4802:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "4801:14:25" }, "scope": 3813, "src": "4742:118:25", "stateMutability": "view", "superFunction": 3370, "visibility": "public" }, { "body": { "id": 3640, "nodeType": "Block", "src": "5276:189:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3607, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5286:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3610, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3608, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "5295:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5295:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5286:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3616, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3602, "src": "5334:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3611, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5309:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3614, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3612, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "5318:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5318:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5309:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "5309:24:25", "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": 3617, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5309:32:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5286:55:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3619, "nodeType": "ExpressionStatement", "src": "5286:55:25" }, { "expression": { "argumentTypes": null, "id": 3629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3620, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5351:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3622, "indexExpression": { "argumentTypes": null, "id": 3621, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3600, "src": "5360:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5351:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3627, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3602, "src": "5383:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3623, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "5366:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3625, "indexExpression": { "argumentTypes": null, "id": 3624, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3600, "src": "5375:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5366:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 3285, "src": "5366:16:25", "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": 3628, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5366:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5351:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3630, "nodeType": "ExpressionStatement", "src": "5351:39:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3632, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "5414:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5414:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3634, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3600, "src": "5426:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3635, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3602, "src": "5430:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3631, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3416, "src": "5405:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5405:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3637, "nodeType": "EmitStatement", "src": "5400:37:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "5454:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3606, "id": 3639, "nodeType": "Return", "src": "5447:11:25" } ] }, "documentation": null, "id": 3641, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 3603, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3600, "name": "to", "nodeType": "VariableDeclaration", "scope": 3641, "src": "5221:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3599, "name": "address", "nodeType": "ElementaryTypeName", "src": "5221:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3602, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3641, "src": "5233:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3601, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5233:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5220:25:25" }, "payable": false, "returnParameters": { "id": 3606, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3605, "name": "success", "nodeType": "VariableDeclaration", "scope": 3641, "src": "5262:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3604, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5262:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "5261:14:25" }, "scope": 3813, "src": "5203:262:25", "stateMutability": "nonpayable", "superFunction": 3388, "visibility": "public" }, { "body": { "id": 3668, "nodeType": "Block", "src": "6048:127:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3650, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "6058:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3654, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3651, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6066:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6066:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6058:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3655, "indexExpression": { "argumentTypes": null, "id": 3653, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "6078:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6058:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3656, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3645, "src": "6089:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6058:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3658, "nodeType": "ExpressionStatement", "src": "6058:37:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3660, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6119:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6119:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3662, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3643, "src": "6131:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3663, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3645, "src": "6140:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3659, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "6110:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3664, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6110:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3665, "nodeType": "EmitStatement", "src": "6105:42:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "6164:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3649, "id": 3667, "nodeType": "Return", "src": "6157:11:25" } ] }, "documentation": null, "id": 3669, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { "id": 3646, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3643, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3669, "src": "5988:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3642, "name": "address", "nodeType": "ElementaryTypeName", "src": "5988:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3645, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3669, "src": "6005:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3644, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6005:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5987:30:25" }, "payable": false, "returnParameters": { "id": 3649, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3648, "name": "success", "nodeType": "VariableDeclaration", "scope": 3669, "src": "6034:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3647, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6034:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6033:14:25" }, "scope": 3813, "src": "5971:204:25", "stateMutability": "nonpayable", "superFunction": 3397, "visibility": "public" }, { "body": { "id": 3727, "nodeType": "Block", "src": "6798:246:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3680, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6808:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3682, "indexExpression": { "argumentTypes": null, "id": 3681, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6817:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6808:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3687, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "6844:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3683, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6825:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3685, "indexExpression": { "argumentTypes": null, "id": 3684, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6834:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6825:14:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "6825:18:25", "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": 3688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6825:26:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6808:43:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3690, "nodeType": "ExpressionStatement", "src": "6808:43:25" }, { "expression": { "argumentTypes": null, "id": 3706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3691, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "6861:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3695, "indexExpression": { "argumentTypes": null, "id": 3692, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6869:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6861:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3696, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3693, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6875:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6875:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6861:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3704, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "6919:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3697, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "6889:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3699, "indexExpression": { "argumentTypes": null, "id": 3698, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6897:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6889:13:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3702, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "6903:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6903:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6889:25:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", "referencedDeclaration": 3307, "src": "6889:29:25", "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": 3705, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6889:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6861:65:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3707, "nodeType": "ExpressionStatement", "src": "6861:65:25" }, { "expression": { "argumentTypes": null, "id": 3717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3708, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6936:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3710, "indexExpression": { "argumentTypes": null, "id": 3709, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3673, "src": "6945:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6936:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3715, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "6968:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3711, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3525, "src": "6951:8:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3713, "indexExpression": { "argumentTypes": null, "id": 3712, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3673, "src": "6960:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6951:12:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 3285, "src": "6951:16:25", "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": 3716, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6951:24:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6936:39:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3718, "nodeType": "ExpressionStatement", "src": "6936:39:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3720, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3671, "src": "6999:4:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3721, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3673, "src": "7005:2:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3722, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3675, "src": "7009:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3719, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3416, "src": "6990:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6990:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3724, "nodeType": "EmitStatement", "src": "6985:31:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "7033:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3679, "id": 3726, "nodeType": "Return", "src": "7026:11:25" } ] }, "documentation": null, "id": 3728, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 3676, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3671, "name": "from", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6729:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3670, "name": "address", "nodeType": "ElementaryTypeName", "src": "6729:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3673, "name": "to", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6743:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3672, "name": "address", "nodeType": "ElementaryTypeName", "src": "6743:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3675, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6755:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6755:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6728:39:25" }, "payable": false, "returnParameters": { "id": 3679, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3678, "name": "success", "nodeType": "VariableDeclaration", "scope": 3728, "src": "6784:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3677, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6784:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6783:14:25" }, "scope": 3813, "src": "6707:337:25", "stateMutability": "nonpayable", "superFunction": 3408, "visibility": "public" }, { "body": { "id": 3743, "nodeType": "Block", "src": "7418:52:25", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3737, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "7435:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3739, "indexExpression": { "argumentTypes": null, "id": 3738, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3730, "src": "7443:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7435:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3741, "indexExpression": { "argumentTypes": null, "id": 3740, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3732, "src": "7455:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7435:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3736, "id": 3742, "nodeType": "Return", "src": "7428:35:25" } ] }, "documentation": null, "id": 3744, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { "id": 3733, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3730, "name": "tokenOwner", "nodeType": "VariableDeclaration", "scope": 3744, "src": "7344:18:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3729, "name": "address", "nodeType": "ElementaryTypeName", "src": "7344:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3732, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3744, "src": "7364:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3731, "name": "address", "nodeType": "ElementaryTypeName", "src": "7364:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7343:37:25" }, "payable": false, "returnParameters": { "id": 3736, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3735, "name": "remaining", "nodeType": "VariableDeclaration", "scope": 3744, "src": "7402:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3734, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7402:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7401:16:25" }, "scope": 3813, "src": "7325:145:25", "stateMutability": "view", "superFunction": 3379, "visibility": "public" }, { "body": { "id": 3784, "nodeType": "Block", "src": "7926:216:25", "statements": [ { "expression": { "argumentTypes": null, "id": 3762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3755, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3531, "src": "7936:7:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, "id": 3759, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3756, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "7944:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7944:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7936:19:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 3760, "indexExpression": { "argumentTypes": null, "id": 3758, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "7956:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7936:28:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3761, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "7967:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7936:37:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3763, "nodeType": "ExpressionStatement", "src": "7936:37:25" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3765, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "7997:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7997:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3767, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "8009:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3768, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "8018:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 3764, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "7988:8:25", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 3769, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7988:37:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3770, "nodeType": "EmitStatement", "src": "7983:42:25" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3775, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3828, "src": "8083:3:25", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8083:10:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3777, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "8095:6:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3778, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3907, "src": "8103:4:25", "typeDescriptions": { "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" } }, { "argumentTypes": null, "id": 3779, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "8109:4:25", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_contract$_TestToken_$3813", "typeString": "contract TestToken" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3772, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3746, "src": "8058:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3771, "name": "ApproveAndCallFallBack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3437, "src": "8035:22:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3437_$", "typeString": "type(contract ApproveAndCallFallBack)" } }, "id": 3773, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8035:31:25", "typeDescriptions": { "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3437", "typeString": "contract ApproveAndCallFallBack" } }, "id": 3774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "receiveApproval", "nodeType": "MemberAccess", "referencedDeclaration": 3436, "src": "8035:47:25", "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": 3780, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8035:79:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3781, "nodeType": "ExpressionStatement", "src": "8035:79:25" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8131:4:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3754, "id": 3783, "nodeType": "Return", "src": "8124:11:25" } ] }, "documentation": null, "id": 3785, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "approveAndCall", "nodeType": "FunctionDefinition", "parameters": { "id": 3751, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3746, "name": "spender", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7854:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3745, "name": "address", "nodeType": "ElementaryTypeName", "src": "7854:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3748, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7871:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3747, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7871:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3750, "name": "data", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7884:10:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3749, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7884:5:25", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7853:42:25" }, "payable": false, "returnParameters": { "id": 3754, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3753, "name": "success", "nodeType": "VariableDeclaration", "scope": 3785, "src": "7912:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3752, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7912:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "7911:14:25" }, "scope": 3813, "src": "7830:312:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3791, "nodeType": "Block", "src": "8360:25:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 3788, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 3833, 3834 ], "referencedDeclaration": 3833, "src": "8370:6:25", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 3789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8370:8:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3790, "nodeType": "ExpressionStatement", "src": "8370:8:25" } ] }, "documentation": null, "id": 3792, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3786, "nodeType": "ParameterList", "parameters": [], "src": "8342:2:25" }, "payable": true, "returnParameters": { "id": 3787, "nodeType": "ParameterList", "parameters": [], "src": "8360:0:25" }, "scope": 3813, "src": "8333:52:25", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3811, "nodeType": "Block", "src": "8723:76:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3807, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3439, "src": "8778:5:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3808, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3796, "src": "8785:6:25", "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": 3804, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3794, "src": "8755:12:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3803, "name": "ERC20Interface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3425, "src": "8740:14:25", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3425_$", "typeString": "type(contract ERC20Interface)" } }, "id": 3805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8740:28:25", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Interface_$3425", "typeString": "contract ERC20Interface" } }, "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 3388, "src": "8740:37:25", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 3809, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8740:52:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 3802, "id": 3810, "nodeType": "Return", "src": "8733:59:25" } ] }, "documentation": null, "id": 3812, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 3799, "modifierName": { "argumentTypes": null, "id": 3798, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3467, "src": "8690:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8690:9:25" } ], "name": "transferAnyERC20Token", "nodeType": "FunctionDefinition", "parameters": { "id": 3797, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3794, "name": "tokenAddress", "nodeType": "VariableDeclaration", "scope": 3812, "src": "8648:20:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3793, "name": "address", "nodeType": "ElementaryTypeName", "src": "8648:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3796, "name": "tokens", "nodeType": "VariableDeclaration", "scope": 3812, "src": "8670:11:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3795, "name": "uint", "nodeType": "ElementaryTypeName", "src": "8670:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "8647:35:25" }, "payable": false, "returnParameters": { "id": 3802, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3801, "name": "success", "nodeType": "VariableDeclaration", "scope": 3812, "src": "8709:12:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3800, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8709:4:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8708:14:25" }, "scope": 3813, "src": "8617:182:25", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3814, "src": "3506:5295:25" } ], "src": "0:8801:25" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", "updatedAt": "2018-08-20T07:44:41.105Z" }