{ "contractName": "TestTokenHandler", "abi": [ { "inputs": [ { "internalType": "contract IERC20Token", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "testSafeApprove", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20Token", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "testSafeTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20Token", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "testSafeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"testSafeApprove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"testSafeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Token\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"testSafeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/helpers/TestTokenHandler.sol\":\"TestTokenHandler\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/helpers/TestTokenHandler.sol\":{\"keccak256\":\"0x4e35a2b33cbfd77b99d3bc7b305ab1c2e8b9376bde420e6868a4afcce4d170de\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://db701b4872d9a479bee968de9c23834c65ccc93e8bec658b8f43be742b24bd46\",\"dweb:/ipfs/QmP2qRsWJ9GePi7t54vT9fGU5MqoRZhw3wjxsbj5B7Qie2\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IERC20Token.sol\":{\"keccak256\":\"0xe6f988c3156e88258474526a541d5a42b6a9adae98b04177a059d9f723bc82cd\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9a6eb77a5b9ce70995a11a6e48ac3985a4c70896fe5fe04d46146ad7c1c83ea3\",\"dweb:/ipfs/QmYvGSveZFG51tghwkVuu6eK9Jy8frHpfLxHTMyvNZN461\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol\":{\"keccak256\":\"0xf65b87e3bf3343e368da67878c19d1a043a1025b10e9053d3562b53b4aa447fe\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://b85c5d96642c14c53b8d5062eecd4d27d3bdb457d1d0f130900763a75a512eb7\",\"dweb:/ipfs/QmUHtbqC1khqnRZXYn11Aykus4m5e9MVNUWqorxhpr5ipJ\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b5061057e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063083153141461004657806375231e611461007e578063f705d961146100ba575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b038135811691602081013590911690604001356100f0565b005b61007c6004803603608081101561009457600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610100565b61007c600480360360608110156100d057600080fd5b506001600160a01b03813581169160208101359091169060400135610112565b6100fb83838361011d565b505050565b61010c8484848461027c565b50505050565b6100fb8383836103ef565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b6020831061019a5780518252601f19909201916020918201910161017b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146101fc576040519150601f19603f3d011682016040523d82523d6000602084013e610201565b606091505b509150915081801561022f57508051158061022f575080806020019051602081101561022c57600080fd5b50515b610275576040805162461bcd60e51b815260206004820152601260248201527111549497d054141493d59157d1905253115160721b604482015290519081900360640190fd5b5050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106103015780518252601f1990920191602091820191016102e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610363576040519150601f19603f3d011682016040523d82523d6000602084013e610368565b606091505b5091509150818015610396575080511580610396575080806020019051602081101561039357600080fd5b50515b6103e7576040805162461bcd60e51b815260206004820152601860248201527f4552525f5452414e534645525f46524f4d5f4641494c45440000000000000000604482015290519081900360640190fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b6020831061046c5780518252601f19909201916020918201910161044d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146104ce576040519150601f19603f3d011682016040523d82523d6000602084013e6104d3565b606091505b509150915081801561050157508051158061050157508080602001905160208110156104fe57600080fd5b50515b610275576040805162461bcd60e51b815260206004820152601360248201527211549497d514905394d1915497d19052531151606a1b604482015290519081900360640190fdfea26469706673582212202752e04fcc869371a5a3f84357fb2825cd19fbcf60c3b110a50e915e6145b38b64736f6c634300060c0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063083153141461004657806375231e611461007e578063f705d961146100ba575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b038135811691602081013590911690604001356100f0565b005b61007c6004803603608081101561009457600080fd5b506001600160a01b03813581169160208101358216916040820135169060600135610100565b61007c600480360360608110156100d057600080fd5b506001600160a01b03813581169160208101359091169060400135610112565b6100fb83838361011d565b505050565b61010c8484848461027c565b50505050565b6100fb8383836103ef565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b6020831061019a5780518252601f19909201916020918201910161017b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146101fc576040519150601f19603f3d011682016040523d82523d6000602084013e610201565b606091505b509150915081801561022f57508051158061022f575080806020019051602081101561022c57600080fd5b50515b610275576040805162461bcd60e51b815260206004820152601260248201527111549497d054141493d59157d1905253115160721b604482015290519081900360640190fd5b5050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106103015780518252601f1990920191602091820191016102e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610363576040519150601f19603f3d011682016040523d82523d6000602084013e610368565b606091505b5091509150818015610396575080511580610396575080806020019051602081101561039357600080fd5b50515b6103e7576040805162461bcd60e51b815260206004820152601860248201527f4552525f5452414e534645525f46524f4d5f4641494c45440000000000000000604482015290519081900360640190fd5b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b6020831061046c5780518252601f19909201916020918201910161044d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146104ce576040519150601f19603f3d011682016040523d82523d6000602084013e6104d3565b606091505b509150915081801561050157508051158061050157508080602001905160208110156104fe57600080fd5b50515b610275576040805162461bcd60e51b815260206004820152601360248201527211549497d514905394d1915497d19052531151606a1b604482015290519081900360640190fdfea26469706673582212202752e04fcc869371a5a3f84357fb2825cd19fbcf60c3b110a50e915e6145b38b64736f6c634300060c0033", "immutableReferences": {}, "sourceMap": "183:496:45:-:0;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "183:496:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;231:140;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;231:140:45;;;;;;;;;;;;;;;;;:::i;:::-;;515:162;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;515:162:45;;;;;;;;;;;;;;;;;;;;;;:::i;377:132::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;377:132:45;;;;;;;;;;;;;;;;;:::i;231:140::-;327:37;339:6;347:8;357:6;327:11;:37::i;:::-;231:140;;;:::o;515:162::-;626:44;643:6;651:5;658:3;663:6;626:16;:44::i;:::-;515:162;;;;:::o;377:132::-;469:33;482:6;490:3;495:6;469:12;:33::i;815:320:61:-;966:63;;;-1:-1:-1;;;;;966:63:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;966:63:61;-1:-1:-1;;;966:63:61;;;945:85;;;;910:12;;924:17;;945:20;;;;966:63;945:85;;;966:63;945:85;;966:63;945:85;;;;;;;;;;-1:-1:-1;;945:85:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;909:121;;;;1048:7;:57;;;;-1:-1:-1;1060:11:61;;:16;;:44;;;1091:4;1080:24;;;;;;;;;;;;;;;-1:-1:-1;1080:24:61;1060:44;1040:88;;;;;-1:-1:-1;;;1040:88:61;;;;;;;;;;;;-1:-1:-1;;;1040:88:61;;;;;;;;;;;;;;;815:320;;;;;:::o;2190:348::-;2355:71;;;-1:-1:-1;;;;;2355:71:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2355:71:61;-1:-1:-1;;;2355:71:61;;;2334:93;;;;2299:12;;2313:17;;2334:20;;;;2355:71;2334:93;;;2355:71;2334:93;;2355:71;2334:93;;;;;;;;;;-1:-1:-1;;2334:93:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2298:129;;;;2445:7;:57;;;;-1:-1:-1;2457:11:61;;:16;;:44;;;2488:4;2477:24;;;;;;;;;;;;;;;-1:-1:-1;2477:24:61;2457:44;2437:94;;;;;-1:-1:-1;;;2437:94:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;2190:348;;;;;;:::o;1485:312::-;1631:59;;;-1:-1:-1;;;;;1631:59:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1631:59:61;-1:-1:-1;;;1631:59:61;;;1610:81;;;;1575:12;;1589:17;;1610:20;;;;1631:59;1610:81;;;1631:59;1610:81;;1631:59;1610:81;;;;;;;;;;-1:-1:-1;;1610:81:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:117;;;;1709:7;:57;;;;-1:-1:-1;1721:11:61;;:16;;:44;;;1752:4;1741:24;;;;;;;;;;;;;;;-1:-1:-1;1741:24:61;1721:44;1701:89;;;;;-1:-1:-1;;;1701:89:61;;;;;;;;;;;;-1:-1:-1;;;1701:89:61;;;;;;;;;;;;;", "source": "// SPDX-License-Identifier: SEE LICENSE IN LICENSE\npragma solidity 0.6.12;\nimport \"../utility/TokenHandler.sol\";\n\n/*\n Utils test helper that exposes the token handler functions\n*/\ncontract TestTokenHandler is TokenHandler {\n function testSafeApprove(IERC20Token _token, address _spender, uint256 _value) public {\n safeApprove(_token, _spender, _value);\n }\n\n function testSafeTransfer(IERC20Token _token, address _to, uint256 _value) public {\n safeTransfer(_token, _to, _value);\n }\n\n function testSafeTransferFrom(IERC20Token _token, address _from, address _to, uint256 _value) public {\n safeTransferFrom(_token, _from, _to, _value);\n }\n}\n", "sourcePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/helpers/TestTokenHandler.sol", "ast": { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/helpers/TestTokenHandler.sol", "exportedSymbols": { "TestTokenHandler": [ 19764 ] }, "id": 19765, "license": "SEE LICENSE IN LICENSE", "nodeType": "SourceUnit", "nodes": [ { "id": 19709, "literals": [ "solidity", "0.6", ".12" ], "nodeType": "PragmaDirective", "src": "51:23:45" }, { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol", "file": "../utility/TokenHandler.sol", "id": 19710, "nodeType": "ImportDirective", "scope": 19765, "sourceUnit": 22527, "src": "75:37:45", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 19711, "name": "TokenHandler", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 22526, "src": "212:12:45", "typeDescriptions": { "typeIdentifier": "t_contract$_TokenHandler_$22526", "typeString": "contract TokenHandler" } }, "id": 19712, "nodeType": "InheritanceSpecifier", "src": "212:12:45" } ], "contractDependencies": [ 22526 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 19764, "linearizedBaseContracts": [ 19764, 22526 ], "name": "TestTokenHandler", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 19727, "nodeType": "Block", "src": "317:54:45", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 19722, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19714, "src": "339:6:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, { "argumentTypes": null, "id": 19723, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19716, "src": "347:8:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19724, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19718, "src": "357:6:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 19721, "name": "safeApprove", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22428, "src": "327:11:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract IERC20Token,address,uint256)" } }, "id": 19725, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "327:37:45", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19726, "nodeType": "ExpressionStatement", "src": "327:37:45" } ] }, "documentation": null, "functionSelector": "08315314", "id": 19728, "implemented": true, "kind": "function", "modifiers": [], "name": "testSafeApprove", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 19719, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 19714, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19728, "src": "256:18:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, "typeName": { "contractScope": null, "id": 19713, "name": "IERC20Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21127, "src": "256:11:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19716, "mutability": "mutable", "name": "_spender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19728, "src": "276:16:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19715, "name": "address", "nodeType": "ElementaryTypeName", "src": "276:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19718, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19728, "src": "294:14:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 19717, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "294:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "255:54:45" }, "returnParameters": { "id": 19720, "nodeType": "ParameterList", "parameters": [], "src": "317:0:45" }, "scope": 19764, "src": "231:140:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 19743, "nodeType": "Block", "src": "459:50:45", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 19738, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19730, "src": "482:6:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, { "argumentTypes": null, "id": 19739, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19732, "src": "490:3:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19740, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19734, "src": "495:6:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 19737, "name": "safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22475, "src": "469:12:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract IERC20Token,address,uint256)" } }, "id": 19741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "469:33:45", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19742, "nodeType": "ExpressionStatement", "src": "469:33:45" } ] }, "documentation": null, "functionSelector": "f705d961", "id": 19744, "implemented": true, "kind": "function", "modifiers": [], "name": "testSafeTransfer", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 19735, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 19730, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19744, "src": "403:18:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, "typeName": { "contractScope": null, "id": 19729, "name": "IERC20Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21127, "src": "403:11:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19732, "mutability": "mutable", "name": "_to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19744, "src": "423:11:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19731, "name": "address", "nodeType": "ElementaryTypeName", "src": "423:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19734, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19744, "src": "436:14:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 19733, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "436:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "402:49:45" }, "returnParameters": { "id": 19736, "nodeType": "ParameterList", "parameters": [], "src": "459:0:45" }, "scope": 19764, "src": "377:132:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 19762, "nodeType": "Block", "src": "616:61:45", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 19756, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19746, "src": "643:6:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, { "argumentTypes": null, "id": 19757, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19748, "src": "651:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19758, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19750, "src": "658:3:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19759, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19752, "src": "663:6:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 19755, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22525, "src": "626:16:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract IERC20Token,address,address,uint256)" } }, "id": 19760, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "626:44:45", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19761, "nodeType": "ExpressionStatement", "src": "626:44:45" } ] }, "documentation": null, "functionSelector": "75231e61", "id": 19763, "implemented": true, "kind": "function", "modifiers": [], "name": "testSafeTransferFrom", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 19753, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 19746, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "545:18:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, "typeName": { "contractScope": null, "id": 19745, "name": "IERC20Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21127, "src": "545:11:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19748, "mutability": "mutable", "name": "_from", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "565:13:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19747, "name": "address", "nodeType": "ElementaryTypeName", "src": "565:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19750, "mutability": "mutable", "name": "_to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "580:11:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19749, "name": "address", "nodeType": "ElementaryTypeName", "src": "580:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19752, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "593:14:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 19751, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "593:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "544:64:45" }, "returnParameters": { "id": 19754, "nodeType": "ParameterList", "parameters": [], "src": "616:0:45" }, "scope": 19764, "src": "515:162:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 19765, "src": "183:496:45" } ], "src": "51:629:45" }, "legacyAST": { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/helpers/TestTokenHandler.sol", "exportedSymbols": { "TestTokenHandler": [ 19764 ] }, "id": 19765, "license": "SEE LICENSE IN LICENSE", "nodeType": "SourceUnit", "nodes": [ { "id": 19709, "literals": [ "solidity", "0.6", ".12" ], "nodeType": "PragmaDirective", "src": "51:23:45" }, { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol", "file": "../utility/TokenHandler.sol", "id": 19710, "nodeType": "ImportDirective", "scope": 19765, "sourceUnit": 22527, "src": "75:37:45", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 19711, "name": "TokenHandler", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 22526, "src": "212:12:45", "typeDescriptions": { "typeIdentifier": "t_contract$_TokenHandler_$22526", "typeString": "contract TokenHandler" } }, "id": 19712, "nodeType": "InheritanceSpecifier", "src": "212:12:45" } ], "contractDependencies": [ 22526 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 19764, "linearizedBaseContracts": [ 19764, 22526 ], "name": "TestTokenHandler", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 19727, "nodeType": "Block", "src": "317:54:45", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 19722, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19714, "src": "339:6:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, { "argumentTypes": null, "id": 19723, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19716, "src": "347:8:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19724, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19718, "src": "357:6:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 19721, "name": "safeApprove", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22428, "src": "327:11:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract IERC20Token,address,uint256)" } }, "id": 19725, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "327:37:45", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19726, "nodeType": "ExpressionStatement", "src": "327:37:45" } ] }, "documentation": null, "functionSelector": "08315314", "id": 19728, "implemented": true, "kind": "function", "modifiers": [], "name": "testSafeApprove", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 19719, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 19714, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19728, "src": "256:18:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, "typeName": { "contractScope": null, "id": 19713, "name": "IERC20Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21127, "src": "256:11:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19716, "mutability": "mutable", "name": "_spender", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19728, "src": "276:16:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19715, "name": "address", "nodeType": "ElementaryTypeName", "src": "276:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19718, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19728, "src": "294:14:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 19717, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "294:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "255:54:45" }, "returnParameters": { "id": 19720, "nodeType": "ParameterList", "parameters": [], "src": "317:0:45" }, "scope": 19764, "src": "231:140:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 19743, "nodeType": "Block", "src": "459:50:45", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 19738, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19730, "src": "482:6:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, { "argumentTypes": null, "id": 19739, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19732, "src": "490:3:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19740, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19734, "src": "495:6:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 19737, "name": "safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22475, "src": "469:12:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract IERC20Token,address,uint256)" } }, "id": 19741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "469:33:45", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19742, "nodeType": "ExpressionStatement", "src": "469:33:45" } ] }, "documentation": null, "functionSelector": "f705d961", "id": 19744, "implemented": true, "kind": "function", "modifiers": [], "name": "testSafeTransfer", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 19735, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 19730, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19744, "src": "403:18:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, "typeName": { "contractScope": null, "id": 19729, "name": "IERC20Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21127, "src": "403:11:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19732, "mutability": "mutable", "name": "_to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19744, "src": "423:11:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19731, "name": "address", "nodeType": "ElementaryTypeName", "src": "423:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19734, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19744, "src": "436:14:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 19733, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "436:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "402:49:45" }, "returnParameters": { "id": 19736, "nodeType": "ParameterList", "parameters": [], "src": "459:0:45" }, "scope": 19764, "src": "377:132:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 19762, "nodeType": "Block", "src": "616:61:45", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 19756, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19746, "src": "643:6:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, { "argumentTypes": null, "id": 19757, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19748, "src": "651:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19758, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19750, "src": "658:3:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 19759, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 19752, "src": "663:6:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 19755, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22525, "src": "626:16:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20Token_$21127_$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract IERC20Token,address,address,uint256)" } }, "id": 19760, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "626:44:45", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 19761, "nodeType": "ExpressionStatement", "src": "626:44:45" } ] }, "documentation": null, "functionSelector": "75231e61", "id": 19763, "implemented": true, "kind": "function", "modifiers": [], "name": "testSafeTransferFrom", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 19753, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 19746, "mutability": "mutable", "name": "_token", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "545:18:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" }, "typeName": { "contractScope": null, "id": 19745, "name": "IERC20Token", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 21127, "src": "545:11:45", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20Token_$21127", "typeString": "contract IERC20Token" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19748, "mutability": "mutable", "name": "_from", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "565:13:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19747, "name": "address", "nodeType": "ElementaryTypeName", "src": "565:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19750, "mutability": "mutable", "name": "_to", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "580:11:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 19749, "name": "address", "nodeType": "ElementaryTypeName", "src": "580:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 19752, "mutability": "mutable", "name": "_value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 19763, "src": "593:14:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 19751, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "593:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "544:64:45" }, "returnParameters": { "id": 19754, "nodeType": "ParameterList", "parameters": [], "src": "616:0:45" }, "scope": 19764, "src": "515:162:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 19765, "src": "183:496:45" } ], "src": "51:629:45" }, "compiler": { "name": "solc", "version": "0.6.12+commit.27d51765.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.2.3", "updatedAt": "2020-10-20T08:24:47.813Z", "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }