UNPKG

arc_dx

Version:

A platform for building DAOs

1,239 lines (1,238 loc) 66.8 kB
{ "contractName": "SafeERC20", "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c339b61d6feaaa601ba2327e0594aad102b202c0592dfc3f66b58c74c47c57c00029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c339b61d6feaaa601ba2327e0594aad102b202c0592dfc3f66b58c74c47c57c00029", "sourceMap": "346:511:61:-;;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": "346:511:61:-;;;;;;;;", "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20Basic.sol\";\nimport \"./ERC20.sol\";\n\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure.\n * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n function safeTransfer(\n ERC20Basic _token,\n address _to,\n uint256 _value\n )\n internal\n {\n require(_token.transfer(_to, _value));\n }\n\n function safeTransferFrom(\n ERC20 _token,\n address _from,\n address _to,\n uint256 _value\n )\n internal\n {\n require(_token.transferFrom(_from, _to, _value));\n }\n\n function safeApprove(\n ERC20 _token,\n address _spender,\n uint256 _value\n )\n internal\n {\n require(_token.approve(_spender, _value));\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ 21287 ] }, "id": 21288, "nodeType": "SourceUnit", "nodes": [ { "id": 21227, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:61" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", "id": 21228, "nodeType": "ImportDirective", "scope": 21288, "sourceUnit": 21120, "src": "26:26:61", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", "id": 21229, "nodeType": "ImportDirective", "scope": 21288, "sourceUnit": 21088, "src": "53:21:61", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", "fullyImplemented": true, "id": 21287, "linearizedBaseContracts": [ 21287 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 21246, "nodeType": "Block", "src": "469:48:61", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21241, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21233, "src": "499:3:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21242, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21235, "src": "504:6:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 21239, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21231, "src": "483:6:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Basic_$21119", "typeString": "contract ERC20Basic" } }, "id": 21240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 21110, "src": "483:15:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 21243, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "483:28:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21238, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 21552, 21553 ], "referencedDeclaration": 21552, "src": "475:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "475:37:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21245, "nodeType": "ExpressionStatement", "src": "475:37:61" } ] }, "documentation": null, "id": 21247, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { "id": 21236, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21231, "name": "_token", "nodeType": "VariableDeclaration", "scope": 21247, "src": "395:17:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Basic_$21119", "typeString": "contract ERC20Basic" }, "typeName": { "contractScope": null, "id": 21230, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21119, "src": "395:10:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Basic_$21119", "typeString": "contract ERC20Basic" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21233, "name": "_to", "nodeType": "VariableDeclaration", "scope": 21247, "src": "418:11:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21232, "name": "address", "nodeType": "ElementaryTypeName", "src": "418:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21235, "name": "_value", "nodeType": "VariableDeclaration", "scope": 21247, "src": "435:14:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21234, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "389:64:61" }, "payable": false, "returnParameters": { "id": 21237, "nodeType": "ParameterList", "parameters": [], "src": "469:0:61" }, "scope": 21287, "src": "368:149:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 21267, "nodeType": "Block", "src": "640:59:61", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21261, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21251, "src": "674:5:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21262, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21253, "src": "681:3:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21263, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21255, "src": "686:6:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 21259, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21249, "src": "654:6:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" } }, "id": 21260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 21069, "src": "654:19:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, "id": 21264, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "654:39:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21258, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 21552, 21553 ], "referencedDeclaration": 21552, "src": "646:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21265, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "646:48:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21266, "nodeType": "ExpressionStatement", "src": "646:48:61" } ] }, "documentation": null, "id": 21268, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { "id": 21256, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21249, "name": "_token", "nodeType": "VariableDeclaration", "scope": 21268, "src": "552:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, "id": 21248, "name": "ERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21087, "src": "552:5:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21251, "name": "_from", "nodeType": "VariableDeclaration", "scope": 21268, "src": "570:13:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21250, "name": "address", "nodeType": "ElementaryTypeName", "src": "570:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21253, "name": "_to", "nodeType": "VariableDeclaration", "scope": 21268, "src": "589:11:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21252, "name": "address", "nodeType": "ElementaryTypeName", "src": "589:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21255, "name": "_value", "nodeType": "VariableDeclaration", "scope": 21268, "src": "606:14:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21254, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "606:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "546:78:61" }, "payable": false, "returnParameters": { "id": 21257, "nodeType": "ParameterList", "parameters": [], "src": "640:0:61" }, "scope": 21287, "src": "521:178:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 21285, "nodeType": "Block", "src": "803:52:61", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21280, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21272, "src": "832:8:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21281, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21274, "src": "842:6:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 21278, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21270, "src": "817:6:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" } }, "id": 21279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", "referencedDeclaration": 21078, "src": "817:14:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 21282, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "817:32:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21277, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 21552, 21553 ], "referencedDeclaration": 21552, "src": "809:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21283, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "809:41:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21284, "nodeType": "ExpressionStatement", "src": "809:41:61" } ] }, "documentation": null, "id": 21286, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { "id": 21275, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21270, "name": "_token", "nodeType": "VariableDeclaration", "scope": 21286, "src": "729:12:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, "id": 21269, "name": "ERC20", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21087, "src": "729:5:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21272, "name": "_spender", "nodeType": "VariableDeclaration", "scope": 21286, "src": "747:16:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21271, "name": "address", "nodeType": "ElementaryTypeName", "src": "747:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21274, "name": "_value", "nodeType": "VariableDeclaration", "scope": 21286, "src": "769:14:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21273, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "769:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "723:64:61" }, "payable": false, "returnParameters": { "id": 21276, "nodeType": "ParameterList", "parameters": [], "src": "803:0:61" }, "scope": 21287, "src": "703:152:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 21288, "src": "346:511:61" } ], "src": "0:858:61" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ 21287 ] }, "id": 21288, "nodeType": "SourceUnit", "nodes": [ { "id": 21227, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:61" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", "id": 21228, "nodeType": "ImportDirective", "scope": 21288, "sourceUnit": 21120, "src": "26:26:61", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", "id": 21229, "nodeType": "ImportDirective", "scope": 21288, "sourceUnit": 21088, "src": "53:21:61", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", "fullyImplemented": true, "id": 21287, "linearizedBaseContracts": [ 21287 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 21246, "nodeType": "Block", "src": "469:48:61", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21241, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21233, "src": "499:3:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21242, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21235, "src": "504:6:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 21239, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21231, "src": "483:6:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Basic_$21119", "typeString": "contract ERC20Basic" } }, "id": 21240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 21110, "src": "483:15:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 21243, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "483:28:61", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 21238, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 21552, 21553 ], "referencedDeclaration": 21552, "src": "475:7:61", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 21244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "475:37:61", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21245, "nodeType": "ExpressionStatement", "src": "475:37:61" } ] }, "documentation": null, "id": 21247, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { "id": 21236, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21231, "name": "_token", "nodeType": "VariableDeclaration", "scope": 21247, "src": "395:17:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Basic_$21119", "typeString": "contract ERC20Basic" }, "typeName": { "contractScope": null, "id": 21230, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21119, "src": "395:10:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20Basic_$21119", "typeString": "contract ERC20Basic" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21233, "name": "_to", "nodeType": "VariableDeclaration", "scope": 21247, "src": "418:11:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21232, "name": "address", "nodeType": "ElementaryTypeName", "src": "418:7:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21235, "name": "_value", "nodeType": "VariableDeclaration", "scope": 21247, "src": "435:14:61", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 21234, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "389:64:61" }, "payable": false, "returnParameters": { "id": 21237, "nodeType": "ParameterList", "parameters": [], "src": "469:0:61" }, "scope": 21287, "src": "368:149:61", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 21267, "nodeType": "Block", "src": "640:59:61", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21261, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21251, "src": "674:5:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21262, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21253, "src": "681:3:61", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21263, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21255, "src": "686:6:61", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 21259, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21249, "src": "654:6:61", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$21087", "typeString": "contract ERC20" } }, "id": 21260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 21069, "src": "654:19:61", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, "id": 21264, "isConstant": false, "isLValue": false, "isPure": false,