@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
JSON
{
"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": {