UNPKG

@etherisc/gif-contracts

Version:

This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.

1,259 lines (1,258 loc) 109 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "callSuccess", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "returnDataLength", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "returnData", "type": "bytes" } ], "name": "LogTransferHelperCallFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "tokenIsContract", "type": "bool" }, { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" } ], "name": "LogTransferHelperInputValidation1Failed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "balance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "allowance", "type": "uint256" } ], "name": "LogTransferHelperInputValidation2Failed", "type": "event" } ], "allSourcePaths": { "13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol", "90": "contracts/shared/TransferHelper.sol" }, "ast": { "absolutePath": "contracts/shared/TransferHelper.sol", "exportedSymbols": { "IERC20": [ 18510 ], "TransferHelper": [ 15170 ] }, "id": 15171, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 15000, "literals": [ "solidity", "0.8", ".2" ], "nodeType": "PragmaDirective", "src": "39:22:90" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "id": 15001, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15171, "sourceUnit": 18511, "src": "63:56:90", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "id": 15170, "linearizedBaseContracts": [ 15170 ], "name": "TransferHelper", "nameLocation": "603:14:90", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "id": 15009, "name": "LogTransferHelperInputValidation1Failed", "nameLocation": "631:39:90", "nodeType": "EventDefinition", "parameters": { "id": 15008, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15003, "indexed": false, "mutability": "mutable", "name": "tokenIsContract", "nameLocation": "676:15:90", "nodeType": "VariableDeclaration", "scope": 15009, "src": "671:20:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 15002, "name": "bool", "nodeType": "ElementaryTypeName", "src": "671:4:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 15005, "indexed": false, "mutability": "mutable", "name": "from", "nameLocation": "701:4:90", "nodeType": "VariableDeclaration", "scope": 15009, "src": "693:12:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15004, "name": "address", "nodeType": "ElementaryTypeName", "src": "693:7:90", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 15007, "indexed": false, "mutability": "mutable", "name": "to", "nameLocation": "715:2:90", "nodeType": "VariableDeclaration", "scope": 15009, "src": "707:10:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15006, "name": "address", "nodeType": "ElementaryTypeName", "src": "707:7:90", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "670:48:90" }, "src": "625:94:90" }, { "anonymous": false, "id": 15015, "name": "LogTransferHelperInputValidation2Failed", "nameLocation": "730:39:90", "nodeType": "EventDefinition", "parameters": { "id": 15014, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15011, "indexed": false, "mutability": "mutable", "name": "balance", "nameLocation": "778:7:90", "nodeType": "VariableDeclaration", "scope": 15015, "src": "770:15:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 15010, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "770:7:90", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 15013, "indexed": false, "mutability": "mutable", "name": "allowance", "nameLocation": "795:9:90", "nodeType": "VariableDeclaration", "scope": 15015, "src": "787:17:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 15012, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "787:7:90", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "769:36:90" }, "src": "724:82:90" }, { "anonymous": false, "id": 15023, "name": "LogTransferHelperCallFailed", "nameLocation": "817:27:90", "nodeType": "EventDefinition", "parameters": { "id": 15022, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15017, "indexed": false, "mutability": "mutable", "name": "callSuccess", "nameLocation": "850:11:90", "nodeType": "VariableDeclaration", "scope": 15023, "src": "845:16:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 15016, "name": "bool", "nodeType": "ElementaryTypeName", "src": "845:4:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 15019, "indexed": false, "mutability": "mutable", "name": "returnDataLength", "nameLocation": "871:16:90", "nodeType": "VariableDeclaration", "scope": 15023, "src": "863:24:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 15018, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "863:7:90", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 15021, "indexed": false, "mutability": "mutable", "name": "returnData", "nameLocation": "895:10:90", "nodeType": "VariableDeclaration", "scope": 15023, "src": "889:16:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 15020, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "889:5:90", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "844:62:90" }, "src": "811:96:90" }, { "body": { "id": 15168, "nodeType": "Block", "src": "1086:1249:90", "statements": [ { "assignments": [ 15038 ], "declarations": [ { "constant": false, "id": 15038, "mutability": "mutable", "name": "tokenAddress", "nameLocation": "1139:12:90", "nodeType": "VariableDeclaration", "scope": 15168, "src": "1131:20:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15037, "name": "address", "nodeType": "ElementaryTypeName", "src": "1131:7:90", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 15043, "initialValue": { "arguments": [ { "id": 15041, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15026, "src": "1162:5:90", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$18510", "typeString": "contract IERC20" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IERC20_$18510", "typeString": "contract IERC20" } ], "id": 15040, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1154:7:90", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 15039, "name": "address", "nodeType": "ElementaryTypeName", "src": "1154:7:90", "typeDescriptions": {} } }, "id": 15042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1154:14:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "1131:37:90" }, { "assignments": [ 15045 ], "declarations": [ { "constant": false, "id": 15045, "mutability": "mutable", "name": "tokenIsContract", "nameLocation": "1183:15:90", "nodeType": "VariableDeclaration", "scope": 15168, "src": "1178:20:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 15044, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1178:4:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "id": 15052, "initialValue": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 15050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "expression": { "id": 15046, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15038, "src": "1202:12:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 15047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "code", "nodeType": "MemberAccess", "src": "1202:17:90", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 15048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "1202:24:90", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 15049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1229:1:90", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1202:28:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 15051, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1201:30:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "1178:53:90" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 15068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 15065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 15058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 15053, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15028, "src": "1245:4:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 15056, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1261:1:90", "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": 15055, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1253:7:90", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 15054, "name": "address", "nodeType": "ElementaryTypeName", "src": "1253:7:90", "typeDescriptions": {} } }, "id": 15057, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1253:10:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1245:18:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 15064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 15059, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15030, "src": "1267:2:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 15062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1282:1:90", "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": 15061, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1273:7:90", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 15060, "name": "address", "nodeType": "ElementaryTypeName", "src": "1273:7:90", "typeDescriptions": {} } }, "id": 15063, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1273:11:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1267:17:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1245:39:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "id": 15067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "1288:16:90", "subExpression": { "id": 15066, "name": "tokenIsContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15045, "src": "1289:15:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1245:59:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 15078, "nodeType": "IfStatement", "src": "1241:187:90", "trueBody": { "id": 15077, "nodeType": "Block", "src": "1306:122:90", "statements": [ { "eventCall": { "arguments": [ { "id": 15070, "name": "tokenIsContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15045, "src": "1365:15:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 15071, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15028, "src": "1382:4:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 15072, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15030, "src": "1388:2:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 15069, "name": "LogTransferHelperInputValidation1Failed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15009, "src": "1325:39:90", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$_t_address_$_t_address_$returns$__$", "typeString": "function (bool,address,address)" } }, "id": 15073, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1325:66:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15074, "nodeType": "EmitStatement", "src": "1320:71:90" }, { "expression": { "hexValue": "66616c7365", "id": 15075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1412:5:90", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 15036, "id": 15076, "nodeType": "Return", "src": "1405:12:90" } ] } }, { "assignments": [ 15080 ], "declarations": [ { "constant": false, "id": 15080, "mutability": "mutable", "name": "balance", "nameLocation": "1489:7:90", "nodeType": "VariableDeclaration", "scope": 15168, "src": "1481:15:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 15079, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1481:7:90", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 15085, "initialValue": { "arguments": [ { "id": 15083, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15028, "src": "1515:4:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 15081, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15026, "src": "1499:5:90", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$18510", "typeString": "contract IERC20" } }, "id": 15082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 18467, "src": "1499:15:90", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, "id": 15084, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1499:21:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1481:39:90" }, { "assignments": [ 15087 ], "declarations": [ { "constant": false, "id": 15087, "mutability": "mutable", "name": "allowance", "nameLocation": "1538:9:90", "nodeType": "VariableDeclaration", "scope": 15168, "src": "1530:17:90", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 15086, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1530:7:90", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 15096, "initialValue": { "arguments": [ { "id": 15090, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15028, "src": "1566:4:90", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "id": 15093, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "1580:4:90", "typeDescriptions": { "typeIdentifier": "t_contract$_TransferHelper_$15170", "typeString": "library TransferHelper" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_TransferHelper_$15170", "typeString": "library TransferHelper" } ], "id": 15092, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1572:7:90", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 15091, "name": "address", "nodeType": "ElementaryTypeName", "src": "1572:7:90", "typeDescriptions": {} } }, "id": 15094, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1572:13:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 15088, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15026, "src": "1550:5:90", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$18510", "typeString": "contract IERC20" } }, "id": 15089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 18487, "src": "1550:15:90", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, "id": 15095, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1550:36:90", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1530:56:90" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 15103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": {