UNPKG

hardlydifficult-eth

Version:

A collection of reusable contracts and Javascript helpers for Ethereum.

1,195 lines 102 kB
{ "contractName": "CallContract", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"Calls an arbitrary contract function.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/proxies/CallContract.sol\":\"CallContract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000000},\"remappings\":[]},\"sources\":{\"project:/contracts/proxies/CallContract.sol\":{\"keccak256\":\"0xb30b0e77e31fd3e37b3a2028fb4ebcf7789d4225feb011b921b8a25447a09b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee3c46722099a245797c4116382ba9fbdc338274d4ed440e97d15ff761611efa\",\"dweb:/ipfs/QmU2Zb2vmGeEjPoa6ZbCVGgjw2ogdnuKQeRCSoiv7SK4ro\"]}},\"version\":1}", "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c2d49ceba3fa6f022f604ac2ecebcf651292082922c4116bd0ef57573e0fbb7664736f6c634300060a0033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c2d49ceba3fa6f022f604ac2ecebcf651292082922c4116bd0ef57573e0fbb7664736f6c634300060a0033", "immutableReferences": {}, "sourceMap": "113:1342:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "113:1342:17:-:0;;;;;;;;", "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.6.0;\n\n/**\n * @title Calls an arbitrary contract function.\n */\nlibrary CallContract\n{\n function _readUint(\n address _contract,\n bytes memory _callData\n ) internal view\n returns (uint)\n {\n (bool success, bytes memory result) = _contract.staticcall(_callData);\n require(success, 'INTERNAL_CONTRACT_READ_CALL_FAILED');\n return abi.decode(result, (uint));\n }\n\n function _call(\n address _contract,\n bytes memory _callData,\n uint _ethValue\n ) internal\n {\n bool result;\n // solium-disable-next-line\n assembly\n {\n result := call(\n gas(),\n _contract,\n _ethValue,\n add(_callData, 32), // Start of callData information\n mload(_callData), // Size of callData\n 0, // Output ignored\n 0 // Output ignored\n )\n }\n require(result, 'INTERNAL_CONTRACT_CALL_FAILED');\n }\n\n function _callByPosition(\n address _contract,\n bytes memory _callDataConcat,\n uint _startPosition,\n uint _length,\n uint _ethValue\n ) internal\n {\n bool result;\n // solium-disable-next-line\n assembly\n {\n result := call(\n gas(),\n _contract,\n _ethValue,\n add(_callDataConcat, add(32, _startPosition)), // Start of callData information\n _length,\n 0, // Output ignored\n 0 // Output ignored\n )\n }\n require(result, 'INTERNAL_CONTRACT_CALL_FAILED');\n }\n}\n", "sourcePath": "/home/circleci/repo/contracts/proxies/CallContract.sol", "ast": { "absolutePath": "project:/contracts/proxies/CallContract.sol", "exportedSymbols": { "CallContract": [ 3730 ] }, "id": 3731, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 3654, "literals": [ "solidity", "^", "0.6", ".0" ], "nodeType": "PragmaDirective", "src": "32:23:17" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": { "id": 3655, "nodeType": "StructuredDocumentation", "src": "57:55:17", "text": " @title Calls an arbitrary contract function." }, "fullyImplemented": true, "id": 3730, "linearizedBaseContracts": [ 3730 ], "name": "CallContract", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 3686, "nodeType": "Block", "src": "247:179:17", "statements": [ { "assignments": [ 3665, 3667 ], "declarations": [ { "constant": false, "id": 3665, "mutability": "mutable", "name": "success", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3686, "src": "254:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3664, "name": "bool", "nodeType": "ElementaryTypeName", "src": "254:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3667, "mutability": "mutable", "name": "result", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3686, "src": "268:19:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3666, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "268:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 3672, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3670, "name": "_callData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3659, "src": "312:9:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 3668, "name": "_contract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3657, "src": "291:9:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "staticcall", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "291:20:17", "typeDescriptions": { "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "291:31:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "253:69:17" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3674, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3665, "src": "336:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e5445524e414c5f434f4e54524143545f524541445f43414c4c5f4641494c4544", "id": 3675, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "345:36:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_460500885b09a276a8bbffd9560c9bd39ee301270d1a1601c753ade188d5d945", "typeString": "literal_string \"INTERNAL_CONTRACT_READ_CALL_FAILED\"" }, "value": "INTERNAL_CONTRACT_READ_CALL_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_460500885b09a276a8bbffd9560c9bd39ee301270d1a1601c753ade188d5d945", "typeString": "literal_string \"INTERNAL_CONTRACT_READ_CALL_FAILED\"" } ], "id": 3673, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "328:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3676, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "328:54:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3677, "nodeType": "ExpressionStatement", "src": "328:54:17" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3680, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3667, "src": "406:6:17", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "argumentTypes": null, "components": [ { "argumentTypes": null, "id": 3682, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "415:4:17", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 3681, "name": "uint", "nodeType": "ElementaryTypeName", "src": "415:4:17", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } } ], "id": 3683, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "414:6:17", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } ], "expression": { "argumentTypes": null, "id": 3678, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "395:3:17", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3679, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "decode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "395:10:17", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 3684, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "395:26:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 3663, "id": 3685, "nodeType": "Return", "src": "388:33:17" } ] }, "documentation": null, "id": 3687, "implemented": true, "kind": "function", "modifiers": [], "name": "_readUint", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3660, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3657, "mutability": "mutable", "name": "_contract", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3687, "src": "162:17:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3656, "name": "address", "nodeType": "ElementaryTypeName", "src": "162:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3659, "mutability": "mutable", "name": "_callData", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3687, "src": "185:22:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3658, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "185:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "156:55:17" }, "returnParameters": { "id": 3663, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3662, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3687, "src": "239:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3661, "name": "uint", "nodeType": "ElementaryTypeName", "src": "239:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "238:6:17" }, "scope": 3730, "src": "138:288:17", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { "id": 3705, "nodeType": "Block", "src": "531:380:17", "statements": [ { "assignments": [ 3697 ], "declarations": [ { "constant": false, "id": 3697, "mutability": "mutable", "name": "result", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3705, "src": "537:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3696, "name": "bool", "nodeType": "ElementaryTypeName", "src": "537:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 3698, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "537:11:17" }, { "AST": { "nodeType": "YulBlock", "src": "599:254:17", "statements": [ { "nodeType": "YulAssignment", "src": "607:240:17", "value": { "arguments": [ { "arguments": [], "functionName": { "name": "gas", "nodeType": "YulIdentifier", "src": "631:3:17" }, "nodeType": "YulFunctionCall", "src": "631:5:17" }, { "name": "_contract", "nodeType": "YulIdentifier", "src": "646:9:17" }, { "name": "_ethValue", "nodeType": "YulIdentifier", "src": "665:9:17" }, { "arguments": [ { "name": "_callData", "nodeType": "YulIdentifier", "src": "688:9:17" }, { "kind": "number", "nodeType": "YulLiteral", "src": "699:2:17", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "684:3:17" }, "nodeType": "YulFunctionCall", "src": "684:18:17" }, { "arguments": [ { "name": "_callData", "nodeType": "YulIdentifier", "src": "751:9:17" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "745:5:17" }, "nodeType": "YulFunctionCall", "src": "745:16:17" }, { "kind": "number", "nodeType": "YulLiteral", "src": "791:1:17", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "820:1:17", "type": "", "value": "0" } ], "functionName": { "name": "call", "nodeType": "YulIdentifier", "src": "617:4:17" }, "nodeType": "YulFunctionCall", "src": "617:230:17" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "607:6:17" } ] } ] }, "evmVersion": "istanbul", "externalReferences": [ { "declaration": 3691, "isOffset": false, "isSlot": false, "src": "688:9:17", "valueSize": 1 }, { "declaration": 3691, "isOffset": false, "isSlot": false, "src": "751:9:17", "valueSize": 1 }, { "declaration": 3689, "isOffset": false, "isSlot": false, "src": "646:9:17", "valueSize": 1 }, { "declaration": 3693, "isOffset": false, "isSlot": false, "src": "665:9:17", "valueSize": 1 }, { "declaration": 3697, "isOffset": false, "isSlot": false, "src": "607:6:17", "valueSize": 1 } ], "id": 3699, "nodeType": "InlineAssembly", "src": "586:267:17" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3701, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3697, "src": "866:6:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e5445524e414c5f434f4e54524143545f43414c4c5f4641494c4544", "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "874:31:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ddf638174fc17ca90a5b28ed70027a57af4c383bef9c2359a73583c8bd399756", "typeString": "literal_string \"INTERNAL_CONTRACT_CALL_FAILED\"" }, "value": "INTERNAL_CONTRACT_CALL_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ddf638174fc17ca90a5b28ed70027a57af4c383bef9c2359a73583c8bd399756", "typeString": "literal_string \"INTERNAL_CONTRACT_CALL_FAILED\"" } ], "id": 3700, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "858:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3703, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "858:48:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3704, "nodeType": "ExpressionStatement", "src": "858:48:17" } ] }, "documentation": null, "id": 3706, "implemented": true, "kind": "function", "modifiers": [], "name": "_call", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3694, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3689, "mutability": "mutable", "name": "_contract", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3706, "src": "450:17:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3688, "name": "address", "nodeType": "ElementaryTypeName", "src": "450:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3691, "mutability": "mutable", "name": "_callData", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3706, "src": "473:22:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3690, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "473:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3693, "mutability": "mutable", "name": "_ethValue", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3706, "src": "501:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3692, "name": "uint", "nodeType": "ElementaryTypeName", "src": "501:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "444:75:17" }, "returnParameters": { "id": 3695, "nodeType": "ParameterList", "parameters": [], "src": "531:0:17" }, "scope": 3730, "src": "430:481:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { "id": 3728, "nodeType": "Block", "src": "1075:378:17", "statements": [ { "assignments": [ 3720 ], "declarations": [ { "constant": false, "id": 3720, "mutability": "mutable", "name": "result", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3728, "src": "1081:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3719, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1081:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 3721, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1081:11:17" }, { "AST": { "nodeType": "YulBlock", "src": "1143:252:17", "statements": [ { "nodeType": "YulAssignment", "src": "1151:238:17", "value": { "arguments": [ { "arguments": [], "functionName": { "name": "gas", "nodeType": "YulIdentifier", "src": "1175:3:17" }, "nodeType": "YulFunctionCall", "src": "1175:5:17" }, { "name": "_contract", "nodeType": "YulIdentifier", "src": "1190:9:17" }, { "name": "_ethValue", "nodeType": "YulIdentifier", "src": "1209:9:17" }, { "arguments": [ { "name": "_callDataConcat", "nodeType": "YulIdentifier", "src": "1232:15:17" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1253:2:17", "type": "", "value": "32" }, { "name": "_startPosition", "nodeType": "YulIdentifier", "src": "1257:14:17" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1249:3:17" }, "nodeType": "YulFunctionCall", "src": "1249:23:17" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1228:3:17" }, "nodeType": "YulFunctionCall", "src": "1228:45:17" }, { "name": "_length", "nodeType": "YulIdentifier", "src": "1316:7:17" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1333:1:17", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1362:1:17", "type": "", "value": "0" } ], "functionName": { "name": "call", "nodeType": "YulIdentifier", "src": "1161:4:17" }, "nodeType": "YulFunctionCall", "src": "1161:228:17" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "1151:6:17" } ] } ] }, "evmVersion": "istanbul", "externalReferences": [ { "declaration": 3710, "isOffset": false, "isSlot": false, "src": "1232:15:17", "valueSize": 1 }, { "declaration": 3708, "isOffset": false, "isSlot": false, "src": "1190:9:17", "valueSize": 1 }, { "declaration": 3716, "isOffset": false, "isSlot": false, "src": "1209:9:17", "valueSize": 1 }, { "declaration": 3714, "isOffset": false, "isSlot": false, "src": "1316:7:17", "valueSize": 1 }, { "declaration": 3712, "isOffset": false, "isSlot": false, "src": "1257:14:17", "valueSize": 1 }, { "declaration": 3720, "isOffset": false, "isSlot": false, "src": "1151:6:17", "valueSize": 1 } ], "id": 3722, "nodeType": "InlineAssembly", "src": "1130:265:17" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3724, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3720, "src": "1408:6:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e5445524e414c5f434f4e54524143545f43414c4c5f4641494c4544", "id": 3725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1416:31:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ddf638174fc17ca90a5b28ed70027a57af4c383bef9c2359a73583c8bd399756", "typeString": "literal_string \"INTERNAL_CONTRACT_CALL_FAILED\"" }, "value": "INTERNAL_CONTRACT_CALL_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ddf638174fc17ca90a5b28ed70027a57af4c383bef9c2359a73583c8bd399756", "typeString": "literal_string \"INTERNAL_CONTRACT_CALL_FAILED\"" } ], "id": 3723, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1400:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3726, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1400:48:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3727, "nodeType": "ExpressionStatement", "src": "1400:48:17" } ] }, "documentation": null, "id": 3729, "implemented": true, "kind": "function", "modifiers": [], "name": "_callByPosition", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3717, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3708, "mutability": "mutable", "name": "_contract", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3729, "src": "945:17:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "ad