safe-react/safe-contracts/build/contracts/test/SafeMath.json

14189 lines
548 KiB
JSON

{
"contractName": "SafeMath",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029",
"sourceMap": "636:497:26:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "636:497:26:-;;;;;;;;",
"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": [
3591
],
"ERC20Interface": [
3579
],
"Owned": [
3660
],
"SafeMath": [
3512
],
"TestToken": [
3967
]
},
"id": 3968,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3417,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 3512,
"linearizedBaseContracts": [
3512
],
"name": "SafeMath",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3438,
"nodeType": "Block",
"src": "719:51:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3426,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3424,
"src": "729:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3427,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3419,
"src": "733:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 3428,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3421,
"src": "737:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "733:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "729:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3431,
"nodeType": "ExpressionStatement",
"src": "729:9:26"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3435,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3433,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3424,
"src": "756:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3434,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3419,
"src": "761:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "756:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3432,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "748:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3436,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "748:15:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3437,
"nodeType": "ExpressionStatement",
"src": "748:15:26"
}
]
},
"documentation": null,
"id": 3439,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "add",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3422,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3419,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3439,
"src": "672:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3418,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "672:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3421,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3439,
"src": "680:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3420,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "680:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "671:16:26"
},
"payable": false,
"returnParameters": {
"id": 3425,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3424,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3439,
"src": "711:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3423,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "711:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "710:8:26"
},
"scope": 3512,
"src": "659:111:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3460,
"nodeType": "Block",
"src": "835:51:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3451,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3449,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3443,
"src": "853:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 3450,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3441,
"src": "858:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "853:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3448,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "845:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3452,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "845:15:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3453,
"nodeType": "ExpressionStatement",
"src": "845:15:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3458,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3454,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3446,
"src": "870:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3457,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3455,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3441,
"src": "874:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 3456,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3443,
"src": "878:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "874:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "870:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3459,
"nodeType": "ExpressionStatement",
"src": "870:9:26"
}
]
},
"documentation": null,
"id": 3461,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "sub",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3444,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3441,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3461,
"src": "788:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3440,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "788:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3443,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3461,
"src": "796:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3442,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "796:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "787:16:26"
},
"payable": false,
"returnParameters": {
"id": 3447,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3446,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3461,
"src": "827:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3445,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "827:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "826:8:26"
},
"scope": 3512,
"src": "775:111:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3488,
"nodeType": "Block",
"src": "951:65:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3474,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3470,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3468,
"src": "961:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3471,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3463,
"src": "965:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 3472,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3465,
"src": "969:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "965:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "961:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3475,
"nodeType": "ExpressionStatement",
"src": "961:9:26"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 3485,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3479,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3477,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3463,
"src": "988:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3478,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "993:1:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "988:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3484,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3480,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3468,
"src": "998:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 3481,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3463,
"src": "1002:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "998:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 3483,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3465,
"src": "1007:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "998:10:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "988:20:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3476,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "980:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3486,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "980:29:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3487,
"nodeType": "ExpressionStatement",
"src": "980:29:26"
}
]
},
"documentation": null,
"id": 3489,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "mul",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3466,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3463,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3489,
"src": "904:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3462,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "904:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3465,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3489,
"src": "912:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3464,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "912:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "903:16:26"
},
"payable": false,
"returnParameters": {
"id": 3469,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3468,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3489,
"src": "943:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3467,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "943:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "942:8:26"
},
"scope": 3512,
"src": "891:125:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3510,
"nodeType": "Block",
"src": "1081:50:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3501,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3499,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3493,
"src": "1099:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3500,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1103:1:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1099:5:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3498,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "1091:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1091:14:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3503,
"nodeType": "ExpressionStatement",
"src": "1091:14:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3504,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3496,
"src": "1115:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3507,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3505,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3491,
"src": "1119:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 3506,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3493,
"src": "1123:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1119:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1115:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3509,
"nodeType": "ExpressionStatement",
"src": "1115:9:26"
}
]
},
"documentation": null,
"id": 3511,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "div",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3494,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3491,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3511,
"src": "1034:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3490,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1034:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3493,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3511,
"src": "1042:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3492,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1042:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1033:16:26"
},
"payable": false,
"returnParameters": {
"id": 3497,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3496,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3511,
"src": "1073:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3495,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1073:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1072:8:26"
},
"scope": 3512,
"src": "1021:110:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 3968,
"src": "636:497:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 3579,
"linearizedBaseContracts": [
3579
],
"name": "ERC20Interface",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 3517,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3513,
"nodeType": "ParameterList",
"parameters": [],
"src": "1445:2:26"
},
"payable": false,
"returnParameters": {
"id": 3516,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3515,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3517,
"src": "1473:4:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3514,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1473:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1472:6:26"
},
"scope": 3579,
"src": "1425:54:26",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3524,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3520,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3519,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3524,
"src": "1503:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3518,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1503:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1502:20:26"
},
"payable": false,
"returnParameters": {
"id": 3523,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3522,
"name": "balance",
"nodeType": "VariableDeclaration",
"scope": 3524,
"src": "1548:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3521,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1548:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1547:14:26"
},
"scope": 3579,
"src": "1484:78:26",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3533,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3529,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3526,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3533,
"src": "1586:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3525,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1586:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3528,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3533,
"src": "1606:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3527,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1606:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1585:37:26"
},
"payable": false,
"returnParameters": {
"id": 3532,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3531,
"name": "remaining",
"nodeType": "VariableDeclaration",
"scope": 3533,
"src": "1648:14:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3530,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1648:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1647:16:26"
},
"scope": 3579,
"src": "1567:97:26",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3542,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3538,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3535,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3542,
"src": "1687:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3534,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1687:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3537,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3542,
"src": "1699:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3536,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1699:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1686:25:26"
},
"payable": false,
"returnParameters": {
"id": 3541,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3540,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3542,
"src": "1728:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3539,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1728:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1727:14:26"
},
"scope": 3579,
"src": "1669:73:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3551,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3547,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3544,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3551,
"src": "1764:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3543,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1764:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3546,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3551,
"src": "1781:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3545,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1781:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1763:30:26"
},
"payable": false,
"returnParameters": {
"id": 3550,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3549,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3551,
"src": "1810:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3548,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1810:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1809:14:26"
},
"scope": 3579,
"src": "1747:77:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3562,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3558,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3553,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1851:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3552,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1851:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3555,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1865:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3554,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1865:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3557,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1877:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3556,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1877:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1850:39:26"
},
"payable": false,
"returnParameters": {
"id": 3561,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3560,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1906:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3559,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1906:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1905:14:26"
},
"scope": 3579,
"src": "1829:91:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 3570,
"name": "Transfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 3569,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3564,
"indexed": true,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "1941:20:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3563,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1941:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3566,
"indexed": true,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "1963:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3565,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1963:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3568,
"indexed": false,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "1983:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3567,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1983:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1940:55:26"
},
"src": "1926:70:26"
},
{
"anonymous": false,
"documentation": null,
"id": 3578,
"name": "Approval",
"nodeType": "EventDefinition",
"parameters": {
"id": 3577,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3572,
"indexed": true,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "2016:26:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3571,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2016:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3574,
"indexed": true,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "2044:23:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3573,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2044:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3576,
"indexed": false,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "2069:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3575,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2069:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2015:66:26"
},
"src": "2001:81:26"
}
],
"scope": 3968,
"src": "1395:689:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 3591,
"linearizedBaseContracts": [
3591
],
"name": "ApproveAndCallFallBack",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 3590,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "receiveApproval",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3588,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3581,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2416:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3580,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2416:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3583,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2430:14:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3582,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2430:7:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3585,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2446:13:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3584,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2446:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3587,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2461:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3586,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2461:5:26",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2415:57:26"
},
"payable": false,
"returnParameters": {
"id": 3589,
"nodeType": "ParameterList",
"parameters": [],
"src": "2479:0:26"
},
"scope": 3591,
"src": "2391:89:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3968,
"src": "2353:129:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 3660,
"linearizedBaseContracts": [
3660
],
"name": "Owned",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3593,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 3660,
"src": "2684:20:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3592,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2684:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3595,
"name": "newOwner",
"nodeType": "VariableDeclaration",
"scope": 3660,
"src": "2710:23:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3594,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2710:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 3601,
"name": "OwnershipTransferred",
"nodeType": "EventDefinition",
"parameters": {
"id": 3600,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3597,
"indexed": true,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "2767:21:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3596,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2767:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3599,
"indexed": true,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "2790:19:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3598,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2790:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2766:44:26"
},
"src": "2740:71:26"
},
{
"body": {
"id": 3609,
"nodeType": "Block",
"src": "2838:35:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3604,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "2848:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3605,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "2856:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2856:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2848:18:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3608,
"nodeType": "ExpressionStatement",
"src": "2848:18:26"
}
]
},
"documentation": null,
"id": 3610,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3602,
"nodeType": "ParameterList",
"parameters": [],
"src": "2828:2:26"
},
"payable": false,
"returnParameters": {
"id": 3603,
"nodeType": "ParameterList",
"parameters": [],
"src": "2838:0:26"
},
"scope": 3660,
"src": "2817:56:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3620,
"nodeType": "Block",
"src": "2898:56:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3613,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "2916:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3614,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2916:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 3615,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "2930:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2916:19:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3612,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "2908:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2908:28:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3618,
"nodeType": "ExpressionStatement",
"src": "2908:28:26"
},
{
"id": 3619,
"nodeType": "PlaceholderStatement",
"src": "2946:1:26"
}
]
},
"documentation": null,
"id": 3621,
"name": "onlyOwner",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 3611,
"nodeType": "ParameterList",
"parameters": [],
"src": "2898:0:26"
},
"src": "2879:75:26",
"visibility": "internal"
},
{
"body": {
"id": 3632,
"nodeType": "Block",
"src": "3023:37:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3630,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3628,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3033:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3629,
"name": "_newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3623,
"src": "3044:9:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3033:20:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3631,
"nodeType": "ExpressionStatement",
"src": "3033:20:26"
}
]
},
"documentation": null,
"id": 3633,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 3626,
"modifierName": {
"argumentTypes": null,
"id": 3625,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "3013:9:26",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3013:9:26"
}
],
"name": "transferOwnership",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3624,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3623,
"name": "_newOwner",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "2987:17:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3622,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2987:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2986:19:26"
},
"payable": false,
"returnParameters": {
"id": 3627,
"nodeType": "ParameterList",
"parameters": [],
"src": "3023:0:26"
},
"scope": 3660,
"src": "2960:100:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3658,
"nodeType": "Block",
"src": "3099:157:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3640,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3637,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "3117:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3117:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 3639,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3131:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3117:22:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3636,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "3109:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3641,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3109:31:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3642,
"nodeType": "ExpressionStatement",
"src": "3109:31:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3644,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "3176:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3645,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3183:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3643,
"name": "OwnershipTransferred",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3601,
"src": "3155:20:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address)"
}
},
"id": 3646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3155:37:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3647,
"nodeType": "EmitStatement",
"src": "3150:42:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3650,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3648,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "3202:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3649,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3210:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3202:16:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3651,
"nodeType": "ExpressionStatement",
"src": "3202:16:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3652,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3228:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3654,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3247:1:26",
"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": 3653,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3239:7:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3655,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3239:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3228:21:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3657,
"nodeType": "ExpressionStatement",
"src": "3228:21:26"
}
]
},
"documentation": null,
"id": 3659,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "acceptOwnership",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3634,
"nodeType": "ParameterList",
"parameters": [],
"src": "3089:2:26"
},
"payable": false,
"returnParameters": {
"id": 3635,
"nodeType": "ParameterList",
"parameters": [],
"src": "3099:0:26"
},
"scope": 3660,
"src": "3065:191:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3968,
"src": "2663:595:26"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3661,
"name": "ERC20Interface",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3579,
"src": "3528:14:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Interface_$3579",
"typeString": "contract ERC20Interface"
}
},
"id": 3662,
"nodeType": "InheritanceSpecifier",
"src": "3528:14:26"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3663,
"name": "Owned",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3660,
"src": "3544:5:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Owned_$3660",
"typeString": "contract Owned"
}
},
"id": 3664,
"nodeType": "InheritanceSpecifier",
"src": "3544:5:26"
}
],
"contractDependencies": [
3579,
3660
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 3967,
"linearizedBaseContracts": [
3967,
3660,
3579
],
"name": "TestToken",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 3667,
"libraryName": {
"contractScope": null,
"id": 3665,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3512,
"src": "3562:8:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$3512",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "3556:24:26",
"typeName": {
"id": 3666,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3575:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"constant": false,
"id": 3669,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3586:20:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3668,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3586:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3671,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3612:19:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3670,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3612:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3673,
"name": "decimals",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3637:21:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 3672,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3637:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3675,
"name": "_totalSupply",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3664:17:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3674,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3664:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3679,
"name": "balances",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3688:33:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 3678,
"keyType": {
"id": 3676,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3696:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "3688:24:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3677,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3707:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3685,
"name": "allowed",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3727:52:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"typeName": {
"id": 3684,
"keyType": {
"id": 3680,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3735:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "3727:44:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"valueType": {
"id": 3683,
"keyType": {
"id": 3681,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3754:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "3746:24:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3682,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3765:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 3724,
"nodeType": "Block",
"src": "3987:235:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3690,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3688,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3669,
"src": "3997:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "544b4e",
"id": 3689,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4006:5:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66",
"typeString": "literal_string \"TKN\""
},
"value": "TKN"
},
"src": "3997:14:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3691,
"nodeType": "ExpressionStatement",
"src": "3997:14:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3694,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3692,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3671,
"src": "4021:4:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "546f6b656e204578616d706c65",
"id": 3693,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4028:15:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a",
"typeString": "literal_string \"Token Example\""
},
"value": "Token Example"
},
"src": "4021:22:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3695,
"nodeType": "ExpressionStatement",
"src": "4021:22:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3698,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3696,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3673,
"src": "4053:8:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3138",
"id": 3697,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4064:2:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"src": "4053:13:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 3699,
"nodeType": "ExpressionStatement",
"src": "4053:13:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3708,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3700,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4076:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3707,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "31303030303030",
"id": 3701,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4091:7:26",
"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": 3706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3130",
"id": 3702,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4101:2:26",
"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": 3704,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3673,
"src": "4110:8:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
],
"id": 3703,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4105:4:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": "uint"
},
"id": 3705,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4105:14:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4101:18:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4091:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4076:43:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3709,
"nodeType": "ExpressionStatement",
"src": "4076:43:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3714,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3710,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "4129:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3712,
"indexExpression": {
"argumentTypes": null,
"id": 3711,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "4138:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4129:15:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3713,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4147:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4129:30:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3715,
"nodeType": "ExpressionStatement",
"src": "4129:30:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3718,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4191:1:26",
"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": 3717,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4183:7:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3719,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4183:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3720,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "4195:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3721,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4202:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3716,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "4174:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3722,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4174:41:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3723,
"nodeType": "EmitStatement",
"src": "4169:46:26"
}
]
},
"documentation": null,
"id": 3725,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3686,
"nodeType": "ParameterList",
"parameters": [],
"src": "3977:2:26"
},
"payable": false,
"returnParameters": {
"id": 3687,
"nodeType": "ParameterList",
"parameters": [],
"src": "3987:0:26"
},
"scope": 3967,
"src": "3966:256:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3739,
"nodeType": "Block",
"src": "4459:62:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3732,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "4493:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3736,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4510:1:26",
"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": 3733,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4502:7:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3735,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4502:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4493:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 3730,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4476:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3731,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "4476:16:26",
"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": 3737,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4476:38:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3729,
"id": 3738,
"nodeType": "Return",
"src": "4469:45:26"
}
]
},
"documentation": null,
"id": 3740,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3726,
"nodeType": "ParameterList",
"parameters": [],
"src": "4429:2:26"
},
"payable": false,
"returnParameters": {
"id": 3729,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3728,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3740,
"src": "4453:4:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3727,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4453:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4452:6:26"
},
"scope": 3967,
"src": "4409:112:26",
"stateMutability": "view",
"superFunction": 3517,
"visibility": "public"
},
{
"body": {
"id": 3751,
"nodeType": "Block",
"src": "4816:44:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3747,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "4833:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3749,
"indexExpression": {
"argumentTypes": null,
"id": 3748,
"name": "tokenOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3742,
"src": "4842:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4833:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3746,
"id": 3750,
"nodeType": "Return",
"src": "4826:27:26"
}
]
},
"documentation": null,
"id": 3752,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3743,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3742,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3752,
"src": "4761:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3741,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4761:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4760:20:26"
},
"payable": false,
"returnParameters": {
"id": 3746,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3745,
"name": "balance",
"nodeType": "VariableDeclaration",
"scope": 3752,
"src": "4802:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3744,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4802:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4801:14:26"
},
"scope": 3967,
"src": "4742:118:26",
"stateMutability": "view",
"superFunction": 3524,
"visibility": "public"
},
{
"body": {
"id": 3794,
"nodeType": "Block",
"src": "5276:189:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3772,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3761,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5286:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3764,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3762,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "5295:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3763,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5295:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5286:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3770,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3756,
"src": "5334:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3765,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5309:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3768,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3766,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "5318:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3767,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5318:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5309:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3769,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "5309:24:26",
"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": 3771,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5309:32:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5286:55:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3773,
"nodeType": "ExpressionStatement",
"src": "5286:55:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3783,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3774,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5351:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3776,
"indexExpression": {
"argumentTypes": null,
"id": 3775,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3754,
"src": "5360:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5351:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3781,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3756,
"src": "5383:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3777,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5366:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3779,
"indexExpression": {
"argumentTypes": null,
"id": 3778,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3754,
"src": "5375:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5366:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3780,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 3439,
"src": "5366:16:26",
"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": 3782,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5366:24:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5351:39:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3784,
"nodeType": "ExpressionStatement",
"src": "5351:39:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3786,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "5414:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5414:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3788,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3754,
"src": "5426:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3789,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3756,
"src": "5430:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3785,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "5405:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3790,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5405:32:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3791,
"nodeType": "EmitStatement",
"src": "5400:37:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3792,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5454:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3760,
"id": 3793,
"nodeType": "Return",
"src": "5447:11:26"
}
]
},
"documentation": null,
"id": 3795,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3757,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3754,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "5221:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3753,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5221:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3756,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "5233:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3755,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "5233:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5220:25:26"
},
"payable": false,
"returnParameters": {
"id": 3760,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3759,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "5262:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3758,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5262:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5261:14:26"
},
"scope": 3967,
"src": "5203:262:26",
"stateMutability": "nonpayable",
"superFunction": 3542,
"visibility": "public"
},
{
"body": {
"id": 3822,
"nodeType": "Block",
"src": "6048:127:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3804,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "6058:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3808,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3805,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6066:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3806,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6066:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6058:19:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3809,
"indexExpression": {
"argumentTypes": null,
"id": 3807,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3797,
"src": "6078:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6058:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3810,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3799,
"src": "6089:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6058:37:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3812,
"nodeType": "ExpressionStatement",
"src": "6058:37:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3814,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6119:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3815,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6119:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3816,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3797,
"src": "6131:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3817,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3799,
"src": "6140:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3813,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3578,
"src": "6110:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3818,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6110:37:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3819,
"nodeType": "EmitStatement",
"src": "6105:42:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6164:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3803,
"id": 3821,
"nodeType": "Return",
"src": "6157:11:26"
}
]
},
"documentation": null,
"id": 3823,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3800,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3797,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "5988:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3796,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5988:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3799,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "6005:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3798,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6005:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5987:30:26"
},
"payable": false,
"returnParameters": {
"id": 3803,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3802,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "6034:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3801,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6034:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6033:14:26"
},
"scope": 3967,
"src": "5971:204:26",
"stateMutability": "nonpayable",
"superFunction": 3551,
"visibility": "public"
},
{
"body": {
"id": 3881,
"nodeType": "Block",
"src": "6798:246:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3843,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3834,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6808:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3836,
"indexExpression": {
"argumentTypes": null,
"id": 3835,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6817:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6808:14:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3841,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "6844:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3837,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6825:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3839,
"indexExpression": {
"argumentTypes": null,
"id": 3838,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6834:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6825:14:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3840,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "6825:18:26",
"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": 3842,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6825:26:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6808:43:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3844,
"nodeType": "ExpressionStatement",
"src": "6808:43:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3860,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3845,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "6861:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3849,
"indexExpression": {
"argumentTypes": null,
"id": 3846,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6869:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6861:13:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3850,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3847,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6875:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3848,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6875:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6861:25:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3858,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "6919:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3851,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "6889:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3853,
"indexExpression": {
"argumentTypes": null,
"id": 3852,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6897:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6889:13:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3856,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3854,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6903:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3855,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6903:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6889:25:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3857,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "6889:29:26",
"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": 3859,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6889:37:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6861:65:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3861,
"nodeType": "ExpressionStatement",
"src": "6861:65:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3871,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3862,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6936:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3864,
"indexExpression": {
"argumentTypes": null,
"id": 3863,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3827,
"src": "6945:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6936:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3869,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "6968:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3865,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6951:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3867,
"indexExpression": {
"argumentTypes": null,
"id": 3866,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3827,
"src": "6960:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6951:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3868,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 3439,
"src": "6951:16:26",
"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": 3870,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6951:24:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6936:39:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3872,
"nodeType": "ExpressionStatement",
"src": "6936:39:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3874,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6999:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3875,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3827,
"src": "7005:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3876,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "7009:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3873,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "6990:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3877,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6990:26:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3878,
"nodeType": "EmitStatement",
"src": "6985:31:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3879,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7033:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3833,
"id": 3880,
"nodeType": "Return",
"src": "7026:11:26"
}
]
},
"documentation": null,
"id": 3882,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3830,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3825,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6729:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3824,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6729:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3827,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6743:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3826,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6743:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3829,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6755:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3828,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6755:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6728:39:26"
},
"payable": false,
"returnParameters": {
"id": 3833,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3832,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6784:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3831,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6784:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6783:14:26"
},
"scope": 3967,
"src": "6707:337:26",
"stateMutability": "nonpayable",
"superFunction": 3562,
"visibility": "public"
},
{
"body": {
"id": 3897,
"nodeType": "Block",
"src": "7418:52:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3891,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "7435:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3893,
"indexExpression": {
"argumentTypes": null,
"id": 3892,
"name": "tokenOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3884,
"src": "7443:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7435:19:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3895,
"indexExpression": {
"argumentTypes": null,
"id": 3894,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3886,
"src": "7455:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7435:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3890,
"id": 3896,
"nodeType": "Return",
"src": "7428:35:26"
}
]
},
"documentation": null,
"id": 3898,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3887,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3884,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3898,
"src": "7344:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3883,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7344:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3886,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3898,
"src": "7364:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3885,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7364:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7343:37:26"
},
"payable": false,
"returnParameters": {
"id": 3890,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3889,
"name": "remaining",
"nodeType": "VariableDeclaration",
"scope": 3898,
"src": "7402:14:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3888,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7402:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7401:16:26"
},
"scope": 3967,
"src": "7325:145:26",
"stateMutability": "view",
"superFunction": 3533,
"visibility": "public"
},
{
"body": {
"id": 3938,
"nodeType": "Block",
"src": "7926:216:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3909,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "7936:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3913,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3910,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "7944:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3911,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7944:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7936:19:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3914,
"indexExpression": {
"argumentTypes": null,
"id": 3912,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3900,
"src": "7956:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7936:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3915,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3902,
"src": "7967:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7936:37:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3917,
"nodeType": "ExpressionStatement",
"src": "7936:37:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3919,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "7997:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7997:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3921,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3900,
"src": "8009:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3922,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3902,
"src": "8018:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3918,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3578,
"src": "7988:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3923,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7988:37:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3924,
"nodeType": "EmitStatement",
"src": "7983:42:26"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3929,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "8083:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3930,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8083:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3931,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3902,
"src": "8095:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3932,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4574,
"src": "8103:4:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_TestToken_$3967",
"typeString": "contract TestToken"
}
},
{
"argumentTypes": null,
"id": 3933,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3904,
"src": "8109:4:26",
"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_$3967",
"typeString": "contract TestToken"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3926,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3900,
"src": "8058:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3925,
"name": "ApproveAndCallFallBack",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3591,
"src": "8035:22:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$",
"typeString": "type(contract ApproveAndCallFallBack)"
}
},
"id": 3927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8035:31:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591",
"typeString": "contract ApproveAndCallFallBack"
}
},
"id": 3928,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "receiveApproval",
"nodeType": "MemberAccess",
"referencedDeclaration": 3590,
"src": "8035:47:26",
"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": 3934,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8035:79:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3935,
"nodeType": "ExpressionStatement",
"src": "8035:79:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3936,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8131:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3908,
"id": 3937,
"nodeType": "Return",
"src": "8124:11:26"
}
]
},
"documentation": null,
"id": 3939,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approveAndCall",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3905,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3900,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7854:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3899,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7854:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3902,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7871:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3901,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7871:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3904,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7884:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3903,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7884:5:26",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7853:42:26"
},
"payable": false,
"returnParameters": {
"id": 3908,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3907,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7912:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3906,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7912:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7911:14:26"
},
"scope": 3967,
"src": "7830:312:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3945,
"nodeType": "Block",
"src": "8360:25:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3942,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4496,
4497
],
"referencedDeclaration": 4496,
"src": "8370:6:26",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 3943,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8370:8:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3944,
"nodeType": "ExpressionStatement",
"src": "8370:8:26"
}
]
},
"documentation": null,
"id": 3946,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3940,
"nodeType": "ParameterList",
"parameters": [],
"src": "8342:2:26"
},
"payable": true,
"returnParameters": {
"id": 3941,
"nodeType": "ParameterList",
"parameters": [],
"src": "8360:0:26"
},
"scope": 3967,
"src": "8333:52:26",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3965,
"nodeType": "Block",
"src": "8723:76:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3961,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "8778:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3962,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3950,
"src": "8785:6:26",
"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": 3958,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3948,
"src": "8755:12:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3957,
"name": "ERC20Interface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3579,
"src": "8740:14:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$",
"typeString": "type(contract ERC20Interface)"
}
},
"id": 3959,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8740:28:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Interface_$3579",
"typeString": "contract ERC20Interface"
}
},
"id": 3960,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "8740:37:26",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) external returns (bool)"
}
},
"id": 3963,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8740:52:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 3956,
"id": 3964,
"nodeType": "Return",
"src": "8733:59:26"
}
]
},
"documentation": null,
"id": 3966,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 3953,
"modifierName": {
"argumentTypes": null,
"id": 3952,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "8690:9:26",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "8690:9:26"
}
],
"name": "transferAnyERC20Token",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3951,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3948,
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"scope": 3966,
"src": "8648:20:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3947,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8648:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3950,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3966,
"src": "8670:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3949,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8670:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8647:35:26"
},
"payable": false,
"returnParameters": {
"id": 3956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3955,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3966,
"src": "8709:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3954,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8709:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8708:14:26"
},
"scope": 3967,
"src": "8617:182:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3968,
"src": "3506:5295:26"
}
],
"src": "0:8801:26"
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol",
"exportedSymbols": {
"ApproveAndCallFallBack": [
3591
],
"ERC20Interface": [
3579
],
"Owned": [
3660
],
"SafeMath": [
3512
],
"TestToken": [
3967
]
},
"id": 3968,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3417,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 3512,
"linearizedBaseContracts": [
3512
],
"name": "SafeMath",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3438,
"nodeType": "Block",
"src": "719:51:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3426,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3424,
"src": "729:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3427,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3419,
"src": "733:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 3428,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3421,
"src": "737:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "733:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "729:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3431,
"nodeType": "ExpressionStatement",
"src": "729:9:26"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3435,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3433,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3424,
"src": "756:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 3434,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3419,
"src": "761:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "756:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3432,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "748:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3436,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "748:15:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3437,
"nodeType": "ExpressionStatement",
"src": "748:15:26"
}
]
},
"documentation": null,
"id": 3439,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "add",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3422,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3419,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3439,
"src": "672:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3418,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "672:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3421,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3439,
"src": "680:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3420,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "680:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "671:16:26"
},
"payable": false,
"returnParameters": {
"id": 3425,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3424,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3439,
"src": "711:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3423,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "711:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "710:8:26"
},
"scope": 3512,
"src": "659:111:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3460,
"nodeType": "Block",
"src": "835:51:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3451,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3449,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3443,
"src": "853:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 3450,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3441,
"src": "858:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "853:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3448,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "845:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3452,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "845:15:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3453,
"nodeType": "ExpressionStatement",
"src": "845:15:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3458,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3454,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3446,
"src": "870:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3457,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3455,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3441,
"src": "874:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 3456,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3443,
"src": "878:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "874:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "870:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3459,
"nodeType": "ExpressionStatement",
"src": "870:9:26"
}
]
},
"documentation": null,
"id": 3461,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "sub",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3444,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3441,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3461,
"src": "788:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3440,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "788:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3443,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3461,
"src": "796:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3442,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "796:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "787:16:26"
},
"payable": false,
"returnParameters": {
"id": 3447,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3446,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3461,
"src": "827:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3445,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "827:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "826:8:26"
},
"scope": 3512,
"src": "775:111:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3488,
"nodeType": "Block",
"src": "951:65:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3474,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3470,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3468,
"src": "961:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3471,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3463,
"src": "965:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 3472,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3465,
"src": "969:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "965:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "961:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3475,
"nodeType": "ExpressionStatement",
"src": "961:9:26"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 3485,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3479,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3477,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3463,
"src": "988:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3478,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "993:1:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "988:6:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3484,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3480,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3468,
"src": "998:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 3481,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3463,
"src": "1002:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "998:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 3483,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3465,
"src": "1007:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "998:10:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "988:20:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3476,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "980:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3486,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "980:29:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3487,
"nodeType": "ExpressionStatement",
"src": "980:29:26"
}
]
},
"documentation": null,
"id": 3489,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "mul",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3466,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3463,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3489,
"src": "904:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3462,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "904:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3465,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3489,
"src": "912:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3464,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "912:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "903:16:26"
},
"payable": false,
"returnParameters": {
"id": 3469,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3468,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3489,
"src": "943:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3467,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "943:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "942:8:26"
},
"scope": 3512,
"src": "891:125:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3510,
"nodeType": "Block",
"src": "1081:50:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3501,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3499,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3493,
"src": "1099:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3500,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1103:1:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1099:5:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3498,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "1091:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1091:14:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3503,
"nodeType": "ExpressionStatement",
"src": "1091:14:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3504,
"name": "c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3496,
"src": "1115:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3507,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3505,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3491,
"src": "1119:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 3506,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3493,
"src": "1123:1:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1119:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1115:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3509,
"nodeType": "ExpressionStatement",
"src": "1115:9:26"
}
]
},
"documentation": null,
"id": 3511,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "div",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3494,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3491,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3511,
"src": "1034:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3490,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1034:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3493,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3511,
"src": "1042:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3492,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1042:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1033:16:26"
},
"payable": false,
"returnParameters": {
"id": 3497,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3496,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 3511,
"src": "1073:6:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3495,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1073:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1072:8:26"
},
"scope": 3512,
"src": "1021:110:26",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 3968,
"src": "636:497:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 3579,
"linearizedBaseContracts": [
3579
],
"name": "ERC20Interface",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 3517,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3513,
"nodeType": "ParameterList",
"parameters": [],
"src": "1445:2:26"
},
"payable": false,
"returnParameters": {
"id": 3516,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3515,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3517,
"src": "1473:4:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3514,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1473:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1472:6:26"
},
"scope": 3579,
"src": "1425:54:26",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3524,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3520,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3519,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3524,
"src": "1503:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3518,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1503:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1502:20:26"
},
"payable": false,
"returnParameters": {
"id": 3523,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3522,
"name": "balance",
"nodeType": "VariableDeclaration",
"scope": 3524,
"src": "1548:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3521,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1548:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1547:14:26"
},
"scope": 3579,
"src": "1484:78:26",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3533,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3529,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3526,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3533,
"src": "1586:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3525,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1586:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3528,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3533,
"src": "1606:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3527,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1606:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1585:37:26"
},
"payable": false,
"returnParameters": {
"id": 3532,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3531,
"name": "remaining",
"nodeType": "VariableDeclaration",
"scope": 3533,
"src": "1648:14:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3530,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1648:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1647:16:26"
},
"scope": 3579,
"src": "1567:97:26",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3542,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3538,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3535,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3542,
"src": "1687:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3534,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1687:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3537,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3542,
"src": "1699:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3536,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1699:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1686:25:26"
},
"payable": false,
"returnParameters": {
"id": 3541,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3540,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3542,
"src": "1728:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3539,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1728:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1727:14:26"
},
"scope": 3579,
"src": "1669:73:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3551,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3547,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3544,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3551,
"src": "1764:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3543,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1764:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3546,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3551,
"src": "1781:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3545,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1781:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1763:30:26"
},
"payable": false,
"returnParameters": {
"id": 3550,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3549,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3551,
"src": "1810:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3548,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1810:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1809:14:26"
},
"scope": 3579,
"src": "1747:77:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": null,
"documentation": null,
"id": 3562,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3558,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3553,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1851:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3552,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1851:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3555,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1865:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3554,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1865:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3557,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1877:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3556,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1877:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1850:39:26"
},
"payable": false,
"returnParameters": {
"id": 3561,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3560,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3562,
"src": "1906:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3559,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1906:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1905:14:26"
},
"scope": 3579,
"src": "1829:91:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 3570,
"name": "Transfer",
"nodeType": "EventDefinition",
"parameters": {
"id": 3569,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3564,
"indexed": true,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "1941:20:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3563,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1941:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3566,
"indexed": true,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "1963:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3565,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1963:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3568,
"indexed": false,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "1983:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3567,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1983:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1940:55:26"
},
"src": "1926:70:26"
},
{
"anonymous": false,
"documentation": null,
"id": 3578,
"name": "Approval",
"nodeType": "EventDefinition",
"parameters": {
"id": 3577,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3572,
"indexed": true,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "2016:26:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3571,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2016:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3574,
"indexed": true,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "2044:23:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3573,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2044:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3576,
"indexed": false,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "2069:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3575,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2069:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2015:66:26"
},
"src": "2001:81:26"
}
],
"scope": 3968,
"src": "1395:689:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 3591,
"linearizedBaseContracts": [
3591
],
"name": "ApproveAndCallFallBack",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 3590,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "receiveApproval",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3588,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3581,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2416:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3580,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2416:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3583,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2430:14:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3582,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2430:7:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3585,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2446:13:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3584,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2446:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3587,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3590,
"src": "2461:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3586,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2461:5:26",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2415:57:26"
},
"payable": false,
"returnParameters": {
"id": 3589,
"nodeType": "ParameterList",
"parameters": [],
"src": "2479:0:26"
},
"scope": 3591,
"src": "2391:89:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3968,
"src": "2353:129:26"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 3660,
"linearizedBaseContracts": [
3660
],
"name": "Owned",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3593,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 3660,
"src": "2684:20:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3592,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2684:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3595,
"name": "newOwner",
"nodeType": "VariableDeclaration",
"scope": 3660,
"src": "2710:23:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3594,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2710:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 3601,
"name": "OwnershipTransferred",
"nodeType": "EventDefinition",
"parameters": {
"id": 3600,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3597,
"indexed": true,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "2767:21:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3596,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2767:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3599,
"indexed": true,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "2790:19:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3598,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2790:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2766:44:26"
},
"src": "2740:71:26"
},
{
"body": {
"id": 3609,
"nodeType": "Block",
"src": "2838:35:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3604,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "2848:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3605,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "2856:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2856:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2848:18:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3608,
"nodeType": "ExpressionStatement",
"src": "2848:18:26"
}
]
},
"documentation": null,
"id": 3610,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3602,
"nodeType": "ParameterList",
"parameters": [],
"src": "2828:2:26"
},
"payable": false,
"returnParameters": {
"id": 3603,
"nodeType": "ParameterList",
"parameters": [],
"src": "2838:0:26"
},
"scope": 3660,
"src": "2817:56:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3620,
"nodeType": "Block",
"src": "2898:56:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3613,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "2916:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3614,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2916:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 3615,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "2930:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2916:19:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3612,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "2908:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2908:28:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3618,
"nodeType": "ExpressionStatement",
"src": "2908:28:26"
},
{
"id": 3619,
"nodeType": "PlaceholderStatement",
"src": "2946:1:26"
}
]
},
"documentation": null,
"id": 3621,
"name": "onlyOwner",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 3611,
"nodeType": "ParameterList",
"parameters": [],
"src": "2898:0:26"
},
"src": "2879:75:26",
"visibility": "internal"
},
{
"body": {
"id": 3632,
"nodeType": "Block",
"src": "3023:37:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3630,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3628,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3033:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3629,
"name": "_newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3623,
"src": "3044:9:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3033:20:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3631,
"nodeType": "ExpressionStatement",
"src": "3033:20:26"
}
]
},
"documentation": null,
"id": 3633,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 3626,
"modifierName": {
"argumentTypes": null,
"id": 3625,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "3013:9:26",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3013:9:26"
}
],
"name": "transferOwnership",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3624,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3623,
"name": "_newOwner",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "2987:17:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3622,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2987:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2986:19:26"
},
"payable": false,
"returnParameters": {
"id": 3627,
"nodeType": "ParameterList",
"parameters": [],
"src": "3023:0:26"
},
"scope": 3660,
"src": "2960:100:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3658,
"nodeType": "Block",
"src": "3099:157:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3640,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3637,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "3117:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3117:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 3639,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3131:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3117:22:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 3636,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4494,
4495
],
"referencedDeclaration": 4494,
"src": "3109:7:26",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 3641,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3109:31:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3642,
"nodeType": "ExpressionStatement",
"src": "3109:31:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3644,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "3176:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3645,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3183:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3643,
"name": "OwnershipTransferred",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3601,
"src": "3155:20:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address)"
}
},
"id": 3646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3155:37:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3647,
"nodeType": "EmitStatement",
"src": "3150:42:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3650,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3648,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "3202:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3649,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3210:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3202:16:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3651,
"nodeType": "ExpressionStatement",
"src": "3202:16:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3652,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "3228:8:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3654,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3247:1:26",
"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": 3653,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3239:7:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3655,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3239:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3228:21:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3657,
"nodeType": "ExpressionStatement",
"src": "3228:21:26"
}
]
},
"documentation": null,
"id": 3659,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "acceptOwnership",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3634,
"nodeType": "ParameterList",
"parameters": [],
"src": "3089:2:26"
},
"payable": false,
"returnParameters": {
"id": 3635,
"nodeType": "ParameterList",
"parameters": [],
"src": "3099:0:26"
},
"scope": 3660,
"src": "3065:191:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3968,
"src": "2663:595:26"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3661,
"name": "ERC20Interface",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3579,
"src": "3528:14:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Interface_$3579",
"typeString": "contract ERC20Interface"
}
},
"id": 3662,
"nodeType": "InheritanceSpecifier",
"src": "3528:14:26"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3663,
"name": "Owned",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3660,
"src": "3544:5:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Owned_$3660",
"typeString": "contract Owned"
}
},
"id": 3664,
"nodeType": "InheritanceSpecifier",
"src": "3544:5:26"
}
],
"contractDependencies": [
3579,
3660
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 3967,
"linearizedBaseContracts": [
3967,
3660,
3579
],
"name": "TestToken",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 3667,
"libraryName": {
"contractScope": null,
"id": 3665,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3512,
"src": "3562:8:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$3512",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "3556:24:26",
"typeName": {
"id": 3666,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3575:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"constant": false,
"id": 3669,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3586:20:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3668,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3586:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3671,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3612:19:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3670,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3612:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3673,
"name": "decimals",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3637:21:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 3672,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3637:5:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 3675,
"name": "_totalSupply",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3664:17:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3674,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3664:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3679,
"name": "balances",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3688:33:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 3678,
"keyType": {
"id": 3676,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3696:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "3688:24:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3677,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3707:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3685,
"name": "allowed",
"nodeType": "VariableDeclaration",
"scope": 3967,
"src": "3727:52:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"typeName": {
"id": 3684,
"keyType": {
"id": 3680,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3735:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "3727:44:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
},
"valueType": {
"id": 3683,
"keyType": {
"id": 3681,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3754:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "3746:24:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3682,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3765:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 3724,
"nodeType": "Block",
"src": "3987:235:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3690,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3688,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3669,
"src": "3997:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "544b4e",
"id": 3689,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4006:5:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66",
"typeString": "literal_string \"TKN\""
},
"value": "TKN"
},
"src": "3997:14:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3691,
"nodeType": "ExpressionStatement",
"src": "3997:14:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3694,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3692,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3671,
"src": "4021:4:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "546f6b656e204578616d706c65",
"id": 3693,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4028:15:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a",
"typeString": "literal_string \"Token Example\""
},
"value": "Token Example"
},
"src": "4021:22:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3695,
"nodeType": "ExpressionStatement",
"src": "4021:22:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3698,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3696,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3673,
"src": "4053:8:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3138",
"id": 3697,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4064:2:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
},
"src": "4053:13:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 3699,
"nodeType": "ExpressionStatement",
"src": "4053:13:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3708,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3700,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4076:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3707,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "31303030303030",
"id": 3701,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4091:7:26",
"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": 3706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3130",
"id": 3702,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4101:2:26",
"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": 3704,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3673,
"src": "4110:8:26",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
],
"id": 3703,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4105:4:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": "uint"
},
"id": 3705,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4105:14:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4101:18:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4091:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4076:43:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3709,
"nodeType": "ExpressionStatement",
"src": "4076:43:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3714,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3710,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "4129:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3712,
"indexExpression": {
"argumentTypes": null,
"id": 3711,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "4138:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4129:15:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3713,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4147:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4129:30:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3715,
"nodeType": "ExpressionStatement",
"src": "4129:30:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3718,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4191:1:26",
"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": 3717,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4183:7:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3719,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4183:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3720,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "4195:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3721,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4202:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3716,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "4174:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3722,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4174:41:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3723,
"nodeType": "EmitStatement",
"src": "4169:46:26"
}
]
},
"documentation": null,
"id": 3725,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3686,
"nodeType": "ParameterList",
"parameters": [],
"src": "3977:2:26"
},
"payable": false,
"returnParameters": {
"id": 3687,
"nodeType": "ParameterList",
"parameters": [],
"src": "3987:0:26"
},
"scope": 3967,
"src": "3966:256:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3739,
"nodeType": "Block",
"src": "4459:62:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3732,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "4493:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3736,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4510:1:26",
"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": 3733,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4502:7:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3735,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4502:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4493:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 3730,
"name": "_totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "4476:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3731,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "4476:16:26",
"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": 3737,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4476:38:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3729,
"id": 3738,
"nodeType": "Return",
"src": "4469:45:26"
}
]
},
"documentation": null,
"id": 3740,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3726,
"nodeType": "ParameterList",
"parameters": [],
"src": "4429:2:26"
},
"payable": false,
"returnParameters": {
"id": 3729,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3728,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3740,
"src": "4453:4:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3727,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4453:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4452:6:26"
},
"scope": 3967,
"src": "4409:112:26",
"stateMutability": "view",
"superFunction": 3517,
"visibility": "public"
},
{
"body": {
"id": 3751,
"nodeType": "Block",
"src": "4816:44:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3747,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "4833:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3749,
"indexExpression": {
"argumentTypes": null,
"id": 3748,
"name": "tokenOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3742,
"src": "4842:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4833:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3746,
"id": 3750,
"nodeType": "Return",
"src": "4826:27:26"
}
]
},
"documentation": null,
"id": 3752,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3743,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3742,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3752,
"src": "4761:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3741,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4761:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4760:20:26"
},
"payable": false,
"returnParameters": {
"id": 3746,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3745,
"name": "balance",
"nodeType": "VariableDeclaration",
"scope": 3752,
"src": "4802:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3744,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4802:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4801:14:26"
},
"scope": 3967,
"src": "4742:118:26",
"stateMutability": "view",
"superFunction": 3524,
"visibility": "public"
},
{
"body": {
"id": 3794,
"nodeType": "Block",
"src": "5276:189:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3772,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3761,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5286:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3764,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3762,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "5295:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3763,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5295:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5286:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3770,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3756,
"src": "5334:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3765,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5309:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3768,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3766,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "5318:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3767,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5318:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5309:20:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3769,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "5309:24:26",
"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": 3771,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5309:32:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5286:55:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3773,
"nodeType": "ExpressionStatement",
"src": "5286:55:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3783,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3774,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5351:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3776,
"indexExpression": {
"argumentTypes": null,
"id": 3775,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3754,
"src": "5360:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5351:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3781,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3756,
"src": "5383:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3777,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "5366:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3779,
"indexExpression": {
"argumentTypes": null,
"id": 3778,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3754,
"src": "5375:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5366:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3780,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 3439,
"src": "5366:16:26",
"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": 3782,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5366:24:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5351:39:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3784,
"nodeType": "ExpressionStatement",
"src": "5351:39:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3786,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "5414:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5414:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3788,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3754,
"src": "5426:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3789,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3756,
"src": "5430:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3785,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "5405:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3790,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5405:32:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3791,
"nodeType": "EmitStatement",
"src": "5400:37:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3792,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5454:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3760,
"id": 3793,
"nodeType": "Return",
"src": "5447:11:26"
}
]
},
"documentation": null,
"id": 3795,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3757,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3754,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "5221:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3753,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5221:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3756,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "5233:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3755,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "5233:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5220:25:26"
},
"payable": false,
"returnParameters": {
"id": 3760,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3759,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "5262:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3758,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5262:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5261:14:26"
},
"scope": 3967,
"src": "5203:262:26",
"stateMutability": "nonpayable",
"superFunction": 3542,
"visibility": "public"
},
{
"body": {
"id": 3822,
"nodeType": "Block",
"src": "6048:127:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3804,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "6058:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3808,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3805,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6066:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3806,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6066:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6058:19:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3809,
"indexExpression": {
"argumentTypes": null,
"id": 3807,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3797,
"src": "6078:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6058:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3810,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3799,
"src": "6089:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6058:37:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3812,
"nodeType": "ExpressionStatement",
"src": "6058:37:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3814,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6119:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3815,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6119:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3816,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3797,
"src": "6131:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3817,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3799,
"src": "6140:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3813,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3578,
"src": "6110:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3818,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6110:37:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3819,
"nodeType": "EmitStatement",
"src": "6105:42:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6164:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3803,
"id": 3821,
"nodeType": "Return",
"src": "6157:11:26"
}
]
},
"documentation": null,
"id": 3823,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3800,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3797,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "5988:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3796,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5988:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3799,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "6005:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3798,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6005:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5987:30:26"
},
"payable": false,
"returnParameters": {
"id": 3803,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3802,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "6034:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3801,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6034:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6033:14:26"
},
"scope": 3967,
"src": "5971:204:26",
"stateMutability": "nonpayable",
"superFunction": 3551,
"visibility": "public"
},
{
"body": {
"id": 3881,
"nodeType": "Block",
"src": "6798:246:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3843,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3834,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6808:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3836,
"indexExpression": {
"argumentTypes": null,
"id": 3835,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6817:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6808:14:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3841,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "6844:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3837,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6825:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3839,
"indexExpression": {
"argumentTypes": null,
"id": 3838,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6834:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6825:14:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3840,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "6825:18:26",
"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": 3842,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6825:26:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6808:43:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3844,
"nodeType": "ExpressionStatement",
"src": "6808:43:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3860,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3845,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "6861:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3849,
"indexExpression": {
"argumentTypes": null,
"id": 3846,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6869:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6861:13:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3850,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3847,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6875:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3848,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6875:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6861:25:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3858,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "6919:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3851,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "6889:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3853,
"indexExpression": {
"argumentTypes": null,
"id": 3852,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6897:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6889:13:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3856,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3854,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "6903:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3855,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6903:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6889:25:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3857,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 3461,
"src": "6889:29:26",
"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": 3859,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6889:37:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6861:65:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3861,
"nodeType": "ExpressionStatement",
"src": "6861:65:26"
},
{
"expression": {
"argumentTypes": null,
"id": 3871,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3862,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6936:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3864,
"indexExpression": {
"argumentTypes": null,
"id": 3863,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3827,
"src": "6945:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6936:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3869,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "6968:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3865,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3679,
"src": "6951:8:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3867,
"indexExpression": {
"argumentTypes": null,
"id": 3866,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3827,
"src": "6960:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6951:12:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3868,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 3439,
"src": "6951:16:26",
"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": 3870,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6951:24:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6936:39:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3872,
"nodeType": "ExpressionStatement",
"src": "6936:39:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3874,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3825,
"src": "6999:4:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3875,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3827,
"src": "7005:2:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3876,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "7009:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3873,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "6990:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3877,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6990:26:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3878,
"nodeType": "EmitStatement",
"src": "6985:31:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3879,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7033:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3833,
"id": 3880,
"nodeType": "Return",
"src": "7026:11:26"
}
]
},
"documentation": null,
"id": 3882,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3830,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3825,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6729:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3824,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6729:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3827,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6743:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3826,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6743:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3829,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6755:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3828,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6755:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6728:39:26"
},
"payable": false,
"returnParameters": {
"id": 3833,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3832,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3882,
"src": "6784:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3831,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6784:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6783:14:26"
},
"scope": 3967,
"src": "6707:337:26",
"stateMutability": "nonpayable",
"superFunction": 3562,
"visibility": "public"
},
{
"body": {
"id": 3897,
"nodeType": "Block",
"src": "7418:52:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3891,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "7435:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3893,
"indexExpression": {
"argumentTypes": null,
"id": 3892,
"name": "tokenOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3884,
"src": "7443:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7435:19:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3895,
"indexExpression": {
"argumentTypes": null,
"id": 3894,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3886,
"src": "7455:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7435:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3890,
"id": 3896,
"nodeType": "Return",
"src": "7428:35:26"
}
]
},
"documentation": null,
"id": 3898,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "allowance",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3887,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3884,
"name": "tokenOwner",
"nodeType": "VariableDeclaration",
"scope": 3898,
"src": "7344:18:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3883,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7344:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3886,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3898,
"src": "7364:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3885,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7364:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7343:37:26"
},
"payable": false,
"returnParameters": {
"id": 3890,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3889,
"name": "remaining",
"nodeType": "VariableDeclaration",
"scope": 3898,
"src": "7402:14:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3888,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7402:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7401:16:26"
},
"scope": 3967,
"src": "7325:145:26",
"stateMutability": "view",
"superFunction": 3533,
"visibility": "public"
},
{
"body": {
"id": 3938,
"nodeType": "Block",
"src": "7926:216:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3909,
"name": "allowed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3685,
"src": "7936:7:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(address => uint256))"
}
},
"id": 3913,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3910,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "7944:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3911,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7944:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7936:19:26",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 3914,
"indexExpression": {
"argumentTypes": null,
"id": 3912,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3900,
"src": "7956:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7936:28:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3915,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3902,
"src": "7967:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7936:37:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3917,
"nodeType": "ExpressionStatement",
"src": "7936:37:26"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3919,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "7997:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7997:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3921,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3900,
"src": "8009:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3922,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3902,
"src": "8018:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3918,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3578,
"src": "7988:8:26",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 3923,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7988:37:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3924,
"nodeType": "EmitStatement",
"src": "7983:42:26"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3929,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4491,
"src": "8083:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3930,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8083:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3931,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3902,
"src": "8095:6:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3932,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4574,
"src": "8103:4:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_TestToken_$3967",
"typeString": "contract TestToken"
}
},
{
"argumentTypes": null,
"id": 3933,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3904,
"src": "8109:4:26",
"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_$3967",
"typeString": "contract TestToken"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3926,
"name": "spender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3900,
"src": "8058:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3925,
"name": "ApproveAndCallFallBack",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3591,
"src": "8035:22:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$",
"typeString": "type(contract ApproveAndCallFallBack)"
}
},
"id": 3927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8035:31:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591",
"typeString": "contract ApproveAndCallFallBack"
}
},
"id": 3928,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "receiveApproval",
"nodeType": "MemberAccess",
"referencedDeclaration": 3590,
"src": "8035:47:26",
"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": 3934,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8035:79:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3935,
"nodeType": "ExpressionStatement",
"src": "8035:79:26"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3936,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8131:4:26",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 3908,
"id": 3937,
"nodeType": "Return",
"src": "8124:11:26"
}
]
},
"documentation": null,
"id": 3939,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "approveAndCall",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3905,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3900,
"name": "spender",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7854:15:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3899,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7854:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3902,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7871:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3901,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7871:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3904,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7884:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3903,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7884:5:26",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7853:42:26"
},
"payable": false,
"returnParameters": {
"id": 3908,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3907,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3939,
"src": "7912:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3906,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7912:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7911:14:26"
},
"scope": 3967,
"src": "7830:312:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3945,
"nodeType": "Block",
"src": "8360:25:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3942,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4496,
4497
],
"referencedDeclaration": 4496,
"src": "8370:6:26",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 3943,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8370:8:26",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3944,
"nodeType": "ExpressionStatement",
"src": "8370:8:26"
}
]
},
"documentation": null,
"id": 3946,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3940,
"nodeType": "ParameterList",
"parameters": [],
"src": "8342:2:26"
},
"payable": true,
"returnParameters": {
"id": 3941,
"nodeType": "ParameterList",
"parameters": [],
"src": "8360:0:26"
},
"scope": 3967,
"src": "8333:52:26",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3965,
"nodeType": "Block",
"src": "8723:76:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3961,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "8778:5:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 3962,
"name": "tokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3950,
"src": "8785:6:26",
"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": 3958,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3948,
"src": "8755:12:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3957,
"name": "ERC20Interface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3579,
"src": "8740:14:26",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$",
"typeString": "type(contract ERC20Interface)"
}
},
"id": 3959,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8740:28:26",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Interface_$3579",
"typeString": "contract ERC20Interface"
}
},
"id": 3960,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "8740:37:26",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) external returns (bool)"
}
},
"id": 3963,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8740:52:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 3956,
"id": 3964,
"nodeType": "Return",
"src": "8733:59:26"
}
]
},
"documentation": null,
"id": 3966,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 3953,
"modifierName": {
"argumentTypes": null,
"id": 3952,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "8690:9:26",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "8690:9:26"
}
],
"name": "transferAnyERC20Token",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3951,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3948,
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"scope": 3966,
"src": "8648:20:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3947,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8648:7:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3950,
"name": "tokens",
"nodeType": "VariableDeclaration",
"scope": 3966,
"src": "8670:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3949,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8670:4:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8647:35:26"
},
"payable": false,
"returnParameters": {
"id": 3956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3955,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 3966,
"src": "8709:12:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3954,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8709:4:26",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8708:14:26"
},
"scope": 3967,
"src": "8617:182:26",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3968,
"src": "3506:5295:26"
}
],
"src": "0:8801:26"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-09-26T08:32:07.665Z"
}