safe-react/safe-contracts/build/contracts/MockInterface.json

28389 lines
1.1 MiB

{
"contractName": "MockInterface",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "response",
"type": "bytes"
}
],
"name": "givenAnyReturn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "response",
"type": "bool"
}
],
"name": "givenAnyReturnBool",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "response",
"type": "uint256"
}
],
"name": "givenAnyReturnUint",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "response",
"type": "address"
}
],
"name": "givenAnyReturnAddress",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "givenAnyRevert",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "message",
"type": "string"
}
],
"name": "givenAnyRevertWithMessage",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "givenAnyRunOutOfGas",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
},
{
"name": "response",
"type": "bytes"
}
],
"name": "givenMethodReturn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
},
{
"name": "response",
"type": "bool"
}
],
"name": "givenMethodReturnBool",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
},
{
"name": "response",
"type": "uint256"
}
],
"name": "givenMethodReturnUint",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
},
{
"name": "response",
"type": "address"
}
],
"name": "givenMethodReturnAddress",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
}
],
"name": "givenMethodRevert",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
},
{
"name": "message",
"type": "string"
}
],
"name": "givenMethodRevertWithMessage",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
}
],
"name": "givenMethodRunOutOfGas",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
},
{
"name": "response",
"type": "bytes"
}
],
"name": "givenCalldataReturn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
},
{
"name": "response",
"type": "bool"
}
],
"name": "givenCalldataReturnBool",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
},
{
"name": "response",
"type": "uint256"
}
],
"name": "givenCalldataReturnUint",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
},
{
"name": "response",
"type": "address"
}
],
"name": "givenCalldataReturnAddress",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
}
],
"name": "givenCalldataRevert",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
},
{
"name": "message",
"type": "string"
}
],
"name": "givenCalldataRevertWithMessage",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
}
],
"name": "givenCalldataRunOutOfGas",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "invocationCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "method",
"type": "bytes"
}
],
"name": "invocationCountForMethod",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "calldata",
"type": "bytes"
}
],
"name": "invocationCountForCalldata",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "reset",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity ^0.4.23;\n\ninterface MockInterface {\n\t/**\n\t * @dev After calling this method, the mock will return `response` when it is called\n\t * with any calldata that is not mocked more specifically below\n\t * (e.g. using givenMethodReturn).\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenAnyReturn(bytes response) external;\n\tfunction givenAnyReturnBool(bool response) external;\n\tfunction givenAnyReturnUint(uint response) external;\n\tfunction givenAnyReturnAddress(address response) external;\n\n\tfunction givenAnyRevert() external;\n\tfunction givenAnyRevertWithMessage(string message) external;\n\tfunction givenAnyRunOutOfGas() external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called regardless of arguments. If the methodId and arguments\n\t * are mocked more specifically (using `givenMethodAndArguments`) the latter\n\t * will take precedence.\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenMethodReturn(bytes method, bytes response) external;\n\tfunction givenMethodReturnBool(bytes method, bool response) external;\n\tfunction givenMethodReturnUint(bytes method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes method, address response) external;\n\n\tfunction givenMethodRevert(bytes method) external;\n\tfunction givenMethodRevertWithMessage(bytes method, string message) external;\n\tfunction givenMethodRunOutOfGas(bytes method) external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called with matching arguments. These exact calldataMocks will take\n\t * precedence over all other calldataMocks.\n\t * @param calldata ABI encoded calldata (methodId and arguments)\n\t * @param response ABI encoded response that will be returned if contract is invoked with calldata\n\t */\n\tfunction givenCalldataReturn(bytes calldata, bytes response) external;\n\tfunction givenCalldataReturnBool(bytes calldata, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata, string message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata) external;\n\n\t/**\n\t * @dev Returns the number of times anything has been called on this mock since last reset\n\t */\n\tfunction invocationCount() external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times the given method has been called on this mock since last reset\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t */\n\tfunction invocationCountForMethod(bytes method) external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times this mock has been called with the exact calldata since last reset.\n\t * @param calldata ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata) external returns (uint);\n\n\t/**\n\t * @dev Resets all mocked methods and invocation counts.\n\t */\n\t function reset() external;\n}\n\n/**\n * Implementation of the MockInterface.\n */\ncontract MockContract is MockInterface {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = hex\"01\";\n\tbytes public constant MOCKS_LIST_END = \"0xff\";\n\tbytes32 public constant MOCKS_LIST_END_HASH = keccak256(MOCKS_LIST_END);\n\tbytes4 public constant SENTINEL_ANY_MOCKS = hex\"01\";\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) calldataMocks;\n\tmapping(bytes => MockType) calldataMockTypes;\n\tmapping(bytes => bytes) calldataExpectations;\n\tmapping(bytes => string) calldataRevertMessage;\n\tmapping(bytes32 => uint) calldataInvocations;\n\n\tmapping(bytes4 => bytes4) methodIdMocks;\n\tmapping(bytes4 => MockType) methodIdMockTypes;\n\tmapping(bytes4 => bytes) methodIdExpectations;\n\tmapping(bytes4 => string) methodIdRevertMessages;\n\tmapping(bytes32 => uint) methodIdInvocations;\n\n\tMockType fallbackMockType;\n\tbytes fallbackExpectation;\n\tstring fallbackRevertMessage;\n\tuint invocations;\n\tuint resetCount;\n\n\tconstructor() public {\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackCalldataMock(bytes memory call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (calldataMocks[callHash].length == 0) {\n\t\t\tcalldataMocks[callHash] = calldataMocks[MOCKS_LIST_START];\n\t\t\tcalldataMocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackMethodIdMock(bytes4 methodId) private {\n\t\tif (methodIdMocks[methodId] == 0x0) {\n\t\t\tmethodIdMocks[methodId] = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\tfunction _givenAnyReturn(bytes response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes response) external {\n\t\t_givenAnyReturn(response);\n\t}\n\n\tfunction givenAnyReturnBool(bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenAnyReturn(uintToBytes(flag));\n\t}\n\n\tfunction givenAnyReturnUint(uint response) external {\n\t\t_givenAnyReturn(uintToBytes(response));\t\n\t}\n\n\tfunction givenAnyReturnAddress(address response) external {\n\t\t_givenAnyReturn(addressToBytes(response));\n\t}\n\n\tfunction givenAnyRevert() external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = \"\";\n\t}\n\n\tfunction givenAnyRevertWithMessage(string message) external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = message;\n\t}\n\n\tfunction givenAnyRunOutOfGas() external {\n\t\tfallbackMockType = MockType.OutOfGas;\n\t}\n\n\tfunction _givenCalldataReturn(bytes call, bytes response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes call, bytes response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes call, bytes response) private {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Return;\n\t\tmethodIdExpectations[method] = response;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenMethodReturn(bytes call, bytes response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenMethodReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRevertWithMessage(bytes call, string message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes call, string message) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\tmethodIdRevertMessages[method] = message;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRunOutOfGas(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.OutOfGas;\n\t\ttrackMethodIdMock(method);\t\n\t}\n\n\tfunction invocationCount() external returns (uint) {\n\t\treturn invocations;\n\t}\n\n\tfunction invocationCountForMethod(bytes call) external returns (uint) {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\treturn methodIdInvocations[keccak256(abi.encodePacked(resetCount, method))];\n\t}\n\n\tfunction invocationCountForCalldata(bytes call) external returns (uint) {\n\t\treturn calldataInvocations[keccak256(abi.encodePacked(resetCount, call))];\n\t}\n\n\tfunction reset() external {\n\t\t// Reset all exact calldataMocks\n\t\tbytes memory nextMock = calldataMocks[MOCKS_LIST_START];\n\t\tbytes32 mockHash = keccak256(nextMock);\n\t\t// We cannot compary bytes\n\t\twhile(mockHash != MOCKS_LIST_END_HASH) {\n\t\t\t// Reset all mock maps\n\t\t\tcalldataMockTypes[nextMock] = MockType.Return;\n\t\t\tcalldataExpectations[nextMock] = hex\"\";\n\t\t\tcalldataRevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = calldataMocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tcalldataMocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any calldataMocks\n\t\tbytes4 nextAnyMock = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmethodIdMockTypes[currentAnyMock] = MockType.Return;\n\t\t\tmethodIdExpectations[currentAnyMock] = hex\"\";\n\t\t\tmethodIdRevertMessages[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = methodIdMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tmethodIdMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\n\t\tfallbackExpectation = \"\";\n\t\tfallbackMockType = MockType.Return;\n\t\tinvocations = 0;\n\t\tresetCount += 1;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tbool s;\n\t\t\tassembly {\n\t\t\t\t//expensive call to EC multiply contract\n\t\t\t\ts := call(sub(gas, 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction bytesToBytes4(bytes b) private pure returns (bytes4) {\n \t\tbytes4 out;\n \t\tfor (uint i = 0; i < 4; i++) {\n \t\tout |= bytes4(b[i] & 0xFF) >> (i * 8);\n \t\t}\n \t\treturn out;\n\t}\n\n\tfunction addressToBytes(address a) private pure returns (bytes b){\n \t\tassembly {\n \tlet m := mload(0x40)\n \tmstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n \tmstore(0x40, add(m, 52))\n \tb := m\n \t\t}\n\t}\n\n\tfunction uintToBytes(uint256 x) private pure returns (bytes b) {\n \tb = new bytes(32);\n \tassembly { mstore(add(b, 32), x) }\n\t}\n\n\tfunction() payable external {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\n\t\t// First, check exact matching overrides\n\t\tif (calldataMockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(calldataRevertMessage[msg.data]);\n\t\t}\n\t\tif (calldataMockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = calldataExpectations[msg.data];\n\n\t\t// Then check method Id overrides\n\t\tif (result.length == 0) {\n\t\t\tif (methodIdMockTypes[methodId] == MockType.Revert) {\n\t\t\t\trevert(methodIdRevertMessages[methodId]);\n\t\t\t}\n\t\t\tif (methodIdMockTypes[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = methodIdExpectations[methodId];\n\t\t}\n\n\t\t// Last, use the fallback override\n\t\tif (result.length == 0) {\n\t\t\tif (fallbackMockType == MockType.Revert) {\n\t\t\t\trevert(fallbackRevertMessage);\n\t\t\t}\n\t\t\tif (fallbackMockType == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = fallbackExpectation;\n\t\t}\n\n\t\t// Record invocation\n\t\tinvocations += 1;\n\t\tmethodIdInvocations[keccak256(abi.encodePacked(resetCount, methodId))] += 1;\n\t\tcalldataInvocations[keccak256(abi.encodePacked(resetCount, msg.data))] += 1;\n\n\t\tassembly {\n\t\t\treturn(add(0x20, result), mload(result))\n\t\t}\n\t}\n}\n",
"sourcePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"ast": {
"absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"exportedSymbols": {
"MockContract": [
4000
],
"MockInterface": [
3021
]
},
"id": 4001,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2877,
"literals": [
"solidity",
"^",
"0.4",
".23"
],
"nodeType": "PragmaDirective",
"src": "0:24:25"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": null,
"fullyImplemented": false,
"id": 3021,
"linearizedBaseContracts": [
3021
],
"name": "MockInterface",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked",
"id": 2882,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2880,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2879,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2882,
"src": "358:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2878,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "358:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "357:16:25"
},
"payable": false,
"returnParameters": {
"id": 2881,
"nodeType": "ParameterList",
"parameters": [],
"src": "382:0:25"
},
"scope": 3021,
"src": "334:49:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2887,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2885,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2884,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2887,
"src": "413:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2883,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "413:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "412:15:25"
},
"payable": false,
"returnParameters": {
"id": 2886,
"nodeType": "ParameterList",
"parameters": [],
"src": "436:0:25"
},
"scope": 3021,
"src": "385:52:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2892,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2890,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2889,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2892,
"src": "467:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2888,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "467:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "466:15:25"
},
"payable": false,
"returnParameters": {
"id": 2891,
"nodeType": "ParameterList",
"parameters": [],
"src": "490:0:25"
},
"scope": 3021,
"src": "439:52:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2897,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2895,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2894,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2897,
"src": "524:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2893,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "524:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "523:18:25"
},
"payable": false,
"returnParameters": {
"id": 2896,
"nodeType": "ParameterList",
"parameters": [],
"src": "550:0:25"
},
"scope": 3021,
"src": "493:58:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2900,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2898,
"nodeType": "ParameterList",
"parameters": [],
"src": "577:2:25"
},
"payable": false,
"returnParameters": {
"id": 2899,
"nodeType": "ParameterList",
"parameters": [],
"src": "588:0:25"
},
"scope": 3021,
"src": "554:35:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2905,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2903,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2902,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 2905,
"src": "626:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 2901,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "626:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "625:16:25"
},
"payable": false,
"returnParameters": {
"id": 2904,
"nodeType": "ParameterList",
"parameters": [],
"src": "650:0:25"
},
"scope": 3021,
"src": "591:60:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2908,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2906,
"nodeType": "ParameterList",
"parameters": [],
"src": "681:2:25"
},
"payable": false,
"returnParameters": {
"id": 2907,
"nodeType": "ParameterList",
"parameters": [],
"src": "692:0:25"
},
"scope": 3021,
"src": "653:40:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked",
"id": 2915,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2913,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2910,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2915,
"src": "1222:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2909,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1222:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2912,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2915,
"src": "1236:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2911,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1236:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1221:30:25"
},
"payable": false,
"returnParameters": {
"id": 2914,
"nodeType": "ParameterList",
"parameters": [],
"src": "1260:0:25"
},
"scope": 3021,
"src": "1195:66:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2922,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2920,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2917,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2922,
"src": "1294:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2916,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1294:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2919,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2922,
"src": "1308:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2918,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1308:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1293:29:25"
},
"payable": false,
"returnParameters": {
"id": 2921,
"nodeType": "ParameterList",
"parameters": [],
"src": "1331:0:25"
},
"scope": 3021,
"src": "1263:69:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2929,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2927,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2924,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2929,
"src": "1365:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2923,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1365:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2926,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2929,
"src": "1379:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2925,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1379:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1364:29:25"
},
"payable": false,
"returnParameters": {
"id": 2928,
"nodeType": "ParameterList",
"parameters": [],
"src": "1402:0:25"
},
"scope": 3021,
"src": "1334:69:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2936,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2934,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2931,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2936,
"src": "1439:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2930,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1439:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2933,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2936,
"src": "1453:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2932,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1453:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1438:32:25"
},
"payable": false,
"returnParameters": {
"id": 2935,
"nodeType": "ParameterList",
"parameters": [],
"src": "1479:0:25"
},
"scope": 3021,
"src": "1405:75:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2941,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2939,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2938,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2941,
"src": "1510:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2937,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1510:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1509:14:25"
},
"payable": false,
"returnParameters": {
"id": 2940,
"nodeType": "ParameterList",
"parameters": [],
"src": "1532:0:25"
},
"scope": 3021,
"src": "1483:50:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2948,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2946,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2943,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2948,
"src": "1573:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2942,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1573:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2945,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 2948,
"src": "1587:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 2944,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1587:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1572:30:25"
},
"payable": false,
"returnParameters": {
"id": 2947,
"nodeType": "ParameterList",
"parameters": [],
"src": "1611:0:25"
},
"scope": 3021,
"src": "1535:77:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2953,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2951,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2950,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2953,
"src": "1646:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2949,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1646:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1645:14:25"
},
"payable": false,
"returnParameters": {
"id": 2952,
"nodeType": "ParameterList",
"parameters": [],
"src": "1668:0:25"
},
"scope": 3021,
"src": "1614:55:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata",
"id": 2960,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2958,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2955,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2960,
"src": "2089:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2954,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2089:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2957,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2960,
"src": "2105:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2956,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2105:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2088:32:25"
},
"payable": false,
"returnParameters": {
"id": 2959,
"nodeType": "ParameterList",
"parameters": [],
"src": "2129:0:25"
},
"scope": 3021,
"src": "2060:70:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2967,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2965,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2962,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2967,
"src": "2165:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2961,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2165:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2964,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2967,
"src": "2181:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2963,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2181:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2164:31:25"
},
"payable": false,
"returnParameters": {
"id": 2966,
"nodeType": "ParameterList",
"parameters": [],
"src": "2204:0:25"
},
"scope": 3021,
"src": "2132:73:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2974,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2972,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2969,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2974,
"src": "2240:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2968,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2240:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2971,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2974,
"src": "2256:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2970,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2256:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2239:31:25"
},
"payable": false,
"returnParameters": {
"id": 2973,
"nodeType": "ParameterList",
"parameters": [],
"src": "2279:0:25"
},
"scope": 3021,
"src": "2207:73:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2981,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2979,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2976,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2981,
"src": "2318:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2975,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2318:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2978,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2981,
"src": "2334:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2977,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2334:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2317:34:25"
},
"payable": false,
"returnParameters": {
"id": 2980,
"nodeType": "ParameterList",
"parameters": [],
"src": "2360:0:25"
},
"scope": 3021,
"src": "2282:79:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2986,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2984,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2983,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2986,
"src": "2393:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2982,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2393:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2392:16:25"
},
"payable": false,
"returnParameters": {
"id": 2985,
"nodeType": "ParameterList",
"parameters": [],
"src": "2417:0:25"
},
"scope": 3021,
"src": "2364:54:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2993,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2991,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2988,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2993,
"src": "2460:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2987,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2460:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2990,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 2993,
"src": "2476:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 2989,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2476:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2459:32:25"
},
"payable": false,
"returnParameters": {
"id": 2992,
"nodeType": "ParameterList",
"parameters": [],
"src": "2500:0:25"
},
"scope": 3021,
"src": "2420:81:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2998,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2996,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2995,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2998,
"src": "2537:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2994,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2537:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2536:16:25"
},
"payable": false,
"returnParameters": {
"id": 2997,
"nodeType": "ParameterList",
"parameters": [],
"src": "2561:0:25"
},
"scope": 3021,
"src": "2503:59:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Returns the number of times anything has been called on this mock since last reset",
"id": 3003,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCount",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2999,
"nodeType": "ParameterList",
"parameters": [],
"src": "2691:2:25"
},
"payable": false,
"returnParameters": {
"id": 3002,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3001,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3003,
"src": "2712:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3000,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2712:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2711:6:25"
},
"scope": 3021,
"src": "2667:51:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it",
"id": 3010,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForMethod",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3006,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3005,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3010,
"src": "3005:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3004,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3005:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3004:14:25"
},
"payable": false,
"returnParameters": {
"id": 3009,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3008,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3010,
"src": "3037:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3007,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3037:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3036:6:25"
},
"scope": 3021,
"src": "2971:72:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param calldata ABI encoded calldata (methodId and arguments)",
"id": 3017,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForCalldata",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3013,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3012,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 3017,
"src": "3263:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3011,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3263:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3262:16:25"
},
"payable": false,
"returnParameters": {
"id": 3016,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3015,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3017,
"src": "3297:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3014,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3297:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3296:6:25"
},
"scope": 3021,
"src": "3227:76:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Resets all mocked methods and invocation counts.",
"id": 3020,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "reset",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3018,
"nodeType": "ParameterList",
"parameters": [],
"src": "3389:2:25"
},
"payable": false,
"returnParameters": {
"id": 3019,
"nodeType": "ParameterList",
"parameters": [],
"src": "3400:0:25"
},
"scope": 3021,
"src": "3375:26:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 4001,
"src": "26:3377:25"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3022,
"name": "MockInterface",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3021,
"src": "3478:13:25",
"typeDescriptions": {
"typeIdentifier": "t_contract$_MockInterface_$3021",
"typeString": "contract MockInterface"
}
},
"id": 3023,
"nodeType": "InheritanceSpecifier",
"src": "3478:13:25"
}
],
"contractDependencies": [
3021
],
"contractKind": "contract",
"documentation": "Implementation of the MockInterface.",
"fullyImplemented": true,
"id": 4000,
"linearizedBaseContracts": [
4000,
3021
],
"name": "MockContract",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "MockContract.MockType",
"id": 3027,
"members": [
{
"id": 3024,
"name": "Return",
"nodeType": "EnumValue",
"src": "3511:6:25"
},
{
"id": 3025,
"name": "Revert",
"nodeType": "EnumValue",
"src": "3519:6:25"
},
{
"id": 3026,
"name": "OutOfGas",
"nodeType": "EnumValue",
"src": "3527:8:25"
}
],
"name": "MockType",
"nodeType": "EnumDefinition",
"src": "3495:42:25"
},
{
"constant": true,
"id": 3030,
"name": "MOCKS_LIST_START",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3541:50:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3028,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3541:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "01",
"id": 3029,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3584:7:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2",
"typeString": "literal_string \"\u0001\""
},
"value": "\u0001"
},
"visibility": "public"
},
{
"constant": true,
"id": 3033,
"name": "MOCKS_LIST_END",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3594:45:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes"
},
"typeName": {
"id": 3031,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3594:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"argumentTypes": null,
"hexValue": "30786666",
"id": 3032,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3633:6:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513",
"typeString": "literal_string \"0xff\""
},
"value": "0xff"
},
"visibility": "public"
},
{
"constant": true,
"id": 3038,
"name": "MOCKS_LIST_END_HASH",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3642:71:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3034,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3642:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3036,
"name": "MOCKS_LIST_END",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3033,
"src": "3698:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
],
"id": 3035,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "3688:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3037,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3688:25:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "public"
},
{
"constant": true,
"id": 3041,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3716:51:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3039,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "3716:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": {
"argumentTypes": null,
"hexValue": "01",
"id": 3040,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3760:7:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2",
"typeString": "literal_string \"\u0001\""
},
"value": "\u0001"
},
"visibility": "public"
},
{
"constant": false,
"id": 3045,
"name": "calldataMocks",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3832:39:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes)"
},
"typeName": {
"id": 3044,
"keyType": {
"id": 3042,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3840:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "3832:25:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes)"
},
"valueType": {
"id": 3043,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3851:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3049,
"name": "calldataMockTypes",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3874:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes => enum MockContract.MockType)"
},
"typeName": {
"id": 3048,
"keyType": {
"id": 3046,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3882:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"nodeType": "Mapping",
"src": "3874:26:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes => enum MockContract.MockType)"
},
"valueType": {
"contractScope": null,
"id": 3047,
"name": "MockType",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3027,
"src": "3891:8:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3053,
"name": "calldataExpectations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3921:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes => bytes)"
},
"typeName": {
"id": 3052,
"keyType": {
"id": 3050,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3929:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"nodeType": "Mapping",
"src": "3921:23:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes => bytes)"
},
"valueType": {
"id": 3051,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3938:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3057,
"name": "calldataRevertMessage",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3968:46:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes => string)"
},
"typeName": {
"id": 3056,
"keyType": {
"id": 3054,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3976:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"nodeType": "Mapping",
"src": "3968:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes => string)"
},
"valueType": {
"id": 3055,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3985:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3061,
"name": "calldataInvocations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4017:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 3060,
"keyType": {
"id": 3058,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4025:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "4017:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 3059,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4036:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3065,
"name": "methodIdMocks",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4065:39:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
},
"typeName": {
"id": 3064,
"keyType": {
"id": 3062,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4073:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4065:25:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
},
"valueType": {
"id": 3063,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4083:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3069,
"name": "methodIdMockTypes",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4107:45:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
},
"typeName": {
"id": 3068,
"keyType": {
"id": 3066,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4115:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4107:27:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
},
"valueType": {
"contractScope": null,
"id": 3067,
"name": "MockType",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3027,
"src": "4125:8:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3073,
"name": "methodIdExpectations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4155:45:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes)"
},
"typeName": {
"id": 3072,
"keyType": {
"id": 3070,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4163:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4155:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes)"
},
"valueType": {
"id": 3071,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4173:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3077,
"name": "methodIdRevertMessages",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4203:48:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string)"
},
"typeName": {
"id": 3076,
"keyType": {
"id": 3074,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4211:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4203:25:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string)"
},
"valueType": {
"id": 3075,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4221:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3081,
"name": "methodIdInvocations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4254:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 3080,
"keyType": {
"id": 3078,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4262:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "4254:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 3079,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4273:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3083,
"name": "fallbackMockType",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4302:25:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"typeName": {
"contractScope": null,
"id": 3082,
"name": "MockType",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3027,
"src": "4302:8:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3085,
"name": "fallbackExpectation",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4330:25:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes"
},
"typeName": {
"id": 3084,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4330:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3087,
"name": "fallbackRevertMessage",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4358:28:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3086,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4358:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3089,
"name": "invocations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4389:16:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3088,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4389:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3091,
"name": "resetCount",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4408:15:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3090,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4408:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 3106,
"nodeType": "Block",
"src": "4448:114:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3098,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3094,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4452:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3096,
"indexExpression": {
"argumentTypes": null,
"id": 3095,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "4466:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4452:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3097,
"name": "MOCKS_LIST_END",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3033,
"src": "4486:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"src": "4452:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3099,
"nodeType": "ExpressionStatement",
"src": "4452:48:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3104,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3100,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4504:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3102,
"indexExpression": {
"argumentTypes": null,
"id": 3101,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4518:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4504:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3103,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4540:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4504:54:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3105,
"nodeType": "ExpressionStatement",
"src": "4504:54:25"
}
]
},
"documentation": null,
"id": 3107,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3092,
"nodeType": "ParameterList",
"parameters": [],
"src": "4438:2:25"
},
"payable": false,
"returnParameters": {
"id": 3093,
"nodeType": "ParameterList",
"parameters": [],
"src": "4448:0:25"
},
"scope": 4000,
"src": "4427:135:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3140,
"nodeType": "Block",
"src": "4619:196:25",
"statements": [
{
"assignments": [
3113
],
"declarations": [
{
"constant": false,
"id": 3113,
"name": "callHash",
"nodeType": "VariableDeclaration",
"scope": 3141,
"src": "4623:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3112,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4623:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3117,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3115,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3109,
"src": "4652:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3114,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "4642:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4642:15:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4623:34:25"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3118,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4665:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3120,
"indexExpression": {
"argumentTypes": null,
"id": 3119,
"name": "callHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3113,
"src": "4679:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4665:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3121,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4665:30:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3122,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4699:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "4665:35:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3139,
"nodeType": "IfStatement",
"src": "4661:151:25",
"trueBody": {
"id": 3138,
"nodeType": "Block",
"src": "4702:110:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3130,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3124,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4707:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3126,
"indexExpression": {
"argumentTypes": null,
"id": 3125,
"name": "callHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3113,
"src": "4721:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4707:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3127,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4733:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3129,
"indexExpression": {
"argumentTypes": null,
"id": 3128,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "4747:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4733:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "4707:57:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3131,
"nodeType": "ExpressionStatement",
"src": "4707:57:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3132,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4769:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3134,
"indexExpression": {
"argumentTypes": null,
"id": 3133,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "4783:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4769:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3135,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3109,
"src": "4803:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "4769:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3137,
"nodeType": "ExpressionStatement",
"src": "4769:38:25"
}
]
}
}
]
},
"documentation": null,
"id": 3141,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "trackCalldataMock",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3110,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3109,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3141,
"src": "4592:17:25",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3108,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4592:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4591:19:25"
},
"payable": false,
"returnParameters": {
"id": 3111,
"nodeType": "ParameterList",
"parameters": [],
"src": "4619:0:25"
},
"scope": 4000,
"src": "4565:250:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3167,
"nodeType": "Block",
"src": "4870:161:25",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 3150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3146,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4878:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3148,
"indexExpression": {
"argumentTypes": null,
"id": 3147,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3143,
"src": "4892:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4878:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 3149,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4905:3:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "4878:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3166,
"nodeType": "IfStatement",
"src": "4874:154:25",
"trueBody": {
"id": 3165,
"nodeType": "Block",
"src": "4910:118:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3157,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3151,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4915:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3153,
"indexExpression": {
"argumentTypes": null,
"id": 3152,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3143,
"src": "4929:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4915:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3154,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4941:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3156,
"indexExpression": {
"argumentTypes": null,
"id": 3155,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4955:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4941:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4915:59:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3158,
"nodeType": "ExpressionStatement",
"src": "4915:59:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3163,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3159,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4979:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3161,
"indexExpression": {
"argumentTypes": null,
"id": 3160,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4993:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4979:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3162,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3143,
"src": "5015:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4979:44:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3164,
"nodeType": "ExpressionStatement",
"src": "4979:44:25"
}
]
}
}
]
},
"documentation": null,
"id": 3168,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "trackMethodIdMock",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3143,
"name": "methodId",
"nodeType": "VariableDeclaration",
"scope": 3168,
"src": "4845:15:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3142,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4845:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4844:17:25"
},
"payable": false,
"returnParameters": {
"id": 3145,
"nodeType": "ParameterList",
"parameters": [],
"src": "4870:0:25"
},
"scope": 4000,
"src": "4818:213:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3182,
"nodeType": "Block",
"src": "5084:76:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3173,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5088:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3174,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5107:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3175,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5107:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5088:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3177,
"nodeType": "ExpressionStatement",
"src": "5088:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3180,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3178,
"name": "fallbackExpectation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3085,
"src": "5126:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3179,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3170,
"src": "5148:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "5126:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3181,
"nodeType": "ExpressionStatement",
"src": "5126:30:25"
}
]
},
"documentation": null,
"id": 3183,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_givenAnyReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3171,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3170,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3183,
"src": "5059:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3169,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5059:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5058:16:25"
},
"payable": false,
"returnParameters": {
"id": 3172,
"nodeType": "ParameterList",
"parameters": [],
"src": "5084:0:25"
},
"scope": 4000,
"src": "5034:126:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3192,
"nodeType": "Block",
"src": "5212:33:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3189,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3185,
"src": "5232:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3188,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5216:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3190,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5216:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3191,
"nodeType": "ExpressionStatement",
"src": "5216:25:25"
}
]
},
"documentation": null,
"id": 3193,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3186,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3185,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3193,
"src": "5187:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3184,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5187:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5186:16:25"
},
"payable": false,
"returnParameters": {
"id": 3187,
"nodeType": "ParameterList",
"parameters": [],
"src": "5212:0:25"
},
"scope": 4000,
"src": "5163:82:25",
"stateMutability": "nonpayable",
"superFunction": 2882,
"visibility": "external"
},
{
"body": {
"id": 3211,
"nodeType": "Block",
"src": "5300:74:25",
"statements": [
{
"assignments": [
3199
],
"declarations": [
{
"constant": false,
"id": 3199,
"name": "flag",
"nodeType": "VariableDeclaration",
"scope": 3212,
"src": "5304:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3198,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "5304:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3204,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 3200,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3195,
"src": "5316:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3202,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5331:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"id": 3203,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "5316:16:25",
"trueExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3201,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5327:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5304:28:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3207,
"name": "flag",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3199,
"src": "5364:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3206,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "5352:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3208,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5352:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3205,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5336:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3209,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5336:34:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3210,
"nodeType": "ExpressionStatement",
"src": "5336:34:25"
}
]
},
"documentation": null,
"id": 3212,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3196,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3195,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3212,
"src": "5276:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3194,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5276:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5275:15:25"
},
"payable": false,
"returnParameters": {
"id": 3197,
"nodeType": "ParameterList",
"parameters": [],
"src": "5300:0:25"
},
"scope": 4000,
"src": "5248:126:25",
"stateMutability": "nonpayable",
"superFunction": 2887,
"visibility": "external"
},
{
"body": {
"id": 3223,
"nodeType": "Block",
"src": "5429:47:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3219,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3214,
"src": "5461:8:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3218,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "5449:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5449:21:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3217,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5433:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3221,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5433:38:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3222,
"nodeType": "ExpressionStatement",
"src": "5433:38:25"
}
]
},
"documentation": null,
"id": 3224,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3215,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3214,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3224,
"src": "5405:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3213,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "5405:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5404:15:25"
},
"payable": false,
"returnParameters": {
"id": 3216,
"nodeType": "ParameterList",
"parameters": [],
"src": "5429:0:25"
},
"scope": 4000,
"src": "5377:99:25",
"stateMutability": "nonpayable",
"superFunction": 2892,
"visibility": "external"
},
{
"body": {
"id": 3235,
"nodeType": "Block",
"src": "5537:49:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3231,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3226,
"src": "5572:8:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3230,
"name": "addressToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3844,
"src": "5557:14:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (address) pure returns (bytes memory)"
}
},
"id": 3232,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5557:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3229,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5541:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3233,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5541:41:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3234,
"nodeType": "ExpressionStatement",
"src": "5541:41:25"
}
]
},
"documentation": null,
"id": 3236,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3227,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3226,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3236,
"src": "5510:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3225,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5510:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5509:18:25"
},
"payable": false,
"returnParameters": {
"id": 3228,
"nodeType": "ParameterList",
"parameters": [],
"src": "5537:0:25"
},
"scope": 4000,
"src": "5479:107:25",
"stateMutability": "nonpayable",
"superFunction": 2897,
"visibility": "external"
},
{
"body": {
"id": 3248,
"nodeType": "Block",
"src": "5624:72:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3239,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5628:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3240,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5647:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3241,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5647:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5628:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3243,
"nodeType": "ExpressionStatement",
"src": "5628:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3246,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3244,
"name": "fallbackRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3087,
"src": "5666:21:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3245,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5690:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "5666:26:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3247,
"nodeType": "ExpressionStatement",
"src": "5666:26:25"
}
]
},
"documentation": null,
"id": 3249,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3237,
"nodeType": "ParameterList",
"parameters": [],
"src": "5612:2:25"
},
"payable": false,
"returnParameters": {
"id": 3238,
"nodeType": "ParameterList",
"parameters": [],
"src": "5624:0:25"
},
"scope": 4000,
"src": "5589:107:25",
"stateMutability": "nonpayable",
"superFunction": 2900,
"visibility": "external"
},
{
"body": {
"id": 3263,
"nodeType": "Block",
"src": "5759:77:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3257,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3254,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5763:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3255,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5782:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3256,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5782:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5763:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3258,
"nodeType": "ExpressionStatement",
"src": "5763:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3261,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3259,
"name": "fallbackRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3087,
"src": "5801:21:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3260,
"name": "message",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3251,
"src": "5825:7:25",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "5801:31:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3262,
"nodeType": "ExpressionStatement",
"src": "5801:31:25"
}
]
},
"documentation": null,
"id": 3264,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3252,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3251,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 3264,
"src": "5734:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 3250,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5734:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5733:16:25"
},
"payable": false,
"returnParameters": {
"id": 3253,
"nodeType": "ParameterList",
"parameters": [],
"src": "5759:0:25"
},
"scope": 4000,
"src": "5699:137:25",
"stateMutability": "nonpayable",
"superFunction": 2905,
"visibility": "external"
},
{
"body": {
"id": 3272,
"nodeType": "Block",
"src": "5879:44:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3270,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3267,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5883:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3268,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5902:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3269,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5902:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5883:36:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3271,
"nodeType": "ExpressionStatement",
"src": "5883:36:25"
}
]
},
"documentation": null,
"id": 3273,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3265,
"nodeType": "ParameterList",
"parameters": [],
"src": "5867:2:25"
},
"payable": false,
"returnParameters": {
"id": 3266,
"nodeType": "ParameterList",
"parameters": [],
"src": "5879:0:25"
},
"scope": 4000,
"src": "5839:84:25",
"stateMutability": "nonpayable",
"superFunction": 2908,
"visibility": "external"
},
{
"body": {
"id": 3297,
"nodeType": "Block",
"src": "5993:117:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3285,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3280,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "5997:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3282,
"indexExpression": {
"argumentTypes": null,
"id": 3281,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3275,
"src": "6015:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5997:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3283,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "6023:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3284,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6023:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5997:41:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3286,
"nodeType": "ExpressionStatement",
"src": "5997:41:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3291,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3287,
"name": "calldataExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3053,
"src": "6042:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes memory => bytes storage ref)"
}
},
"id": 3289,
"indexExpression": {
"argumentTypes": null,
"id": 3288,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3275,
"src": "6063:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6042:26:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3290,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3277,
"src": "6071:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "6042:37:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3292,
"nodeType": "ExpressionStatement",
"src": "6042:37:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3294,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3275,
"src": "6101:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3293,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "6083:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6083:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3296,
"nodeType": "ExpressionStatement",
"src": "6083:23:25"
}
]
},
"documentation": null,
"id": 3298,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_givenCalldataReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3278,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3275,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3298,
"src": "5956:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3274,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5956:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3277,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3298,
"src": "5968:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3276,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5968:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5955:28:25"
},
"payable": false,
"returnParameters": {
"id": 3279,
"nodeType": "ParameterList",
"parameters": [],
"src": "5993:0:25"
},
"scope": 4000,
"src": "5926:184:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3310,
"nodeType": "Block",
"src": "6180:44:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3306,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3300,
"src": "6205:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"id": 3307,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3302,
"src": "6211:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3305,
"name": "_givenCalldataReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3298,
"src": "6184:20:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3308,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6184:36:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3309,
"nodeType": "ExpressionStatement",
"src": "6184:36:25"
}
]
},
"documentation": null,
"id": 3311,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3303,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3300,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3311,
"src": "6142:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3299,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6142:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3302,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3311,
"src": "6154:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3301,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6154:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6141:28:25"
},
"payable": false,
"returnParameters": {
"id": 3304,
"nodeType": "ParameterList",
"parameters": [],
"src": "6180:0:25"
},
"scope": 4000,
"src": "6113:111:25",
"stateMutability": "nonpayable",
"superFunction": 2960,
"visibility": "external"
},
{
"body": {
"id": 3332,
"nodeType": "Block",
"src": "6296:83:25",
"statements": [
{
"assignments": [
3319
],
"declarations": [
{
"constant": false,
"id": 3319,
"name": "flag",
"nodeType": "VariableDeclaration",
"scope": 3333,
"src": "6300:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3318,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6300:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3324,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 3320,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3315,
"src": "6312:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3322,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6327:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"id": 3323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "6312:16:25",
"trueExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3321,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6323:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6300:28:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3326,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3313,
"src": "6351:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3328,
"name": "flag",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3319,
"src": "6369:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3327,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "6357:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6357:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3325,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6332:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3330,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6332:43:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3331,
"nodeType": "ExpressionStatement",
"src": "6332:43:25"
}
]
},
"documentation": null,
"id": 3333,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3316,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3313,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3333,
"src": "6260:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3312,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6260:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3315,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3333,
"src": "6272:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3314,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6272:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6259:27:25"
},
"payable": false,
"returnParameters": {
"id": 3317,
"nodeType": "ParameterList",
"parameters": [],
"src": "6296:0:25"
},
"scope": 4000,
"src": "6227:152:25",
"stateMutability": "nonpayable",
"superFunction": 2967,
"visibility": "external"
},
{
"body": {
"id": 3347,
"nodeType": "Block",
"src": "6451:55:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3341,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3335,
"src": "6474:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3343,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3337,
"src": "6492:8:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3342,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "6480:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3344,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6480:21:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3340,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6455:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3345,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6455:47:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3346,
"nodeType": "ExpressionStatement",
"src": "6455:47:25"
}
]
},
"documentation": null,
"id": 3348,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3338,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3335,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3348,
"src": "6415:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3334,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6415:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3337,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3348,
"src": "6427:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3336,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6427:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6414:27:25"
},
"payable": false,
"returnParameters": {
"id": 3339,
"nodeType": "ParameterList",
"parameters": [],
"src": "6451:0:25"
},
"scope": 4000,
"src": "6382:124:25",
"stateMutability": "nonpayable",
"superFunction": 2974,
"visibility": "external"
},
{
"body": {
"id": 3362,
"nodeType": "Block",
"src": "6584:58:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3356,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3350,
"src": "6607:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3358,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3352,
"src": "6628:8:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3357,
"name": "addressToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3844,
"src": "6613:14:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (address) pure returns (bytes memory)"
}
},
"id": 3359,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6613:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3355,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6588:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6588:50:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3361,
"nodeType": "ExpressionStatement",
"src": "6588:50:25"
}
]
},
"documentation": null,
"id": 3363,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3353,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3350,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3363,
"src": "6545:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3349,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6545:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3352,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3363,
"src": "6557:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3351,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6557:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6544:30:25"
},
"payable": false,
"returnParameters": {
"id": 3354,
"nodeType": "ParameterList",
"parameters": [],
"src": "6584:0:25"
},
"scope": 4000,
"src": "6509:133:25",
"stateMutability": "nonpayable",
"superFunction": 2981,
"visibility": "external"
},
{
"body": {
"id": 3393,
"nodeType": "Block",
"src": "6709:164:25",
"statements": [
{
"assignments": [
3371
],
"declarations": [
{
"constant": false,
"id": 3371,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3394,
"src": "6713:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3370,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "6713:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3375,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3373,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3365,
"src": "6743:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3372,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "6729:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3374,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6729:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6713:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3381,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3376,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "6752:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3378,
"indexExpression": {
"argumentTypes": null,
"id": 3377,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3371,
"src": "6770:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6752:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3379,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "6780:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3380,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6780:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "6752:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3382,
"nodeType": "ExpressionStatement",
"src": "6752:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3387,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3383,
"name": "methodIdExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3073,
"src": "6799:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes storage ref)"
}
},
"id": 3385,
"indexExpression": {
"argumentTypes": null,
"id": 3384,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3371,
"src": "6820:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6799:28:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3386,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3367,
"src": "6830:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "6799:39:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3388,
"nodeType": "ExpressionStatement",
"src": "6799:39:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3390,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3371,
"src": "6860:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3389,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "6842:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6842:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3392,
"nodeType": "ExpressionStatement",
"src": "6842:25:25"
}
]
},
"documentation": null,
"id": 3394,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_givenMethodReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3368,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3365,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3394,
"src": "6673:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3364,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6673:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3367,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3394,
"src": "6685:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3366,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6685:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6672:28:25"
},
"payable": false,
"returnParameters": {
"id": 3369,
"nodeType": "ParameterList",
"parameters": [],
"src": "6709:0:25"
},
"scope": 4000,
"src": "6645:228:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3406,
"nodeType": "Block",
"src": "6940:42:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3402,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3396,
"src": "6963:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"id": 3403,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3398,
"src": "6969:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3401,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6944:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3404,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6944:34:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3405,
"nodeType": "ExpressionStatement",
"src": "6944:34:25"
}
]
},
"documentation": null,
"id": 3407,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3399,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3396,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3407,
"src": "6903:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3395,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6903:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3398,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3407,
"src": "6915:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3397,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6915:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6902:28:25"
},
"payable": false,
"returnParameters": {
"id": 3400,
"nodeType": "ParameterList",
"parameters": [],
"src": "6940:0:25"
},
"scope": 4000,
"src": "6876:106:25",
"stateMutability": "nonpayable",
"superFunction": 2915,
"visibility": "external"
},
{
"body": {
"id": 3428,
"nodeType": "Block",
"src": "7052:83:25",
"statements": [
{
"assignments": [
3415
],
"declarations": [
{
"constant": false,
"id": 3415,
"name": "flag",
"nodeType": "VariableDeclaration",
"scope": 3429,
"src": "7056:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3414,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7056:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3420,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 3416,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3411,
"src": "7068:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3418,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7083:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"id": 3419,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "7068:16:25",
"trueExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3417,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7079:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7056:28:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3422,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3409,
"src": "7107:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3424,
"name": "flag",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3415,
"src": "7125:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3423,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "7113:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3425,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7113:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3421,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "7088:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3426,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7088:43:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3427,
"nodeType": "ExpressionStatement",
"src": "7088:43:25"
}
]
},
"documentation": null,
"id": 3429,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3412,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3409,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3429,
"src": "7016:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3408,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7016:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3411,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3429,
"src": "7028:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3410,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7028:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7015:27:25"
},
"payable": false,
"returnParameters": {
"id": 3413,
"nodeType": "ParameterList",
"parameters": [],
"src": "7052:0:25"
},
"scope": 4000,
"src": "6985:150:25",
"stateMutability": "nonpayable",
"superFunction": 2922,
"visibility": "external"
},
{
"body": {
"id": 3443,
"nodeType": "Block",
"src": "7205:55:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3437,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3431,
"src": "7228:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3439,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3433,
"src": "7246:8:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3438,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "7234:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3440,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7234:21:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3436,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "7209:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3441,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7209:47:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3442,
"nodeType": "ExpressionStatement",
"src": "7209:47:25"
}
]
},
"documentation": null,
"id": 3444,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3434,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3431,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3444,
"src": "7169:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3430,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7169:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3433,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3444,
"src": "7181:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3432,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7181:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7168:27:25"
},
"payable": false,
"returnParameters": {
"id": 3435,
"nodeType": "ParameterList",
"parameters": [],
"src": "7205:0:25"
},
"scope": 4000,
"src": "7138:122:25",
"stateMutability": "nonpayable",
"superFunction": 2929,
"visibility": "external"
},
{
"body": {
"id": 3458,
"nodeType": "Block",
"src": "7336:58:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3452,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3446,
"src": "7359:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3454,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3448,
"src": "7380:8:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3453,
"name": "addressToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3844,
"src": "7365:14:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (address) pure returns (bytes memory)"
}
},
"id": 3455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7365:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3451,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "7340:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3456,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7340:50:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3457,
"nodeType": "ExpressionStatement",
"src": "7340:50:25"
}
]
},
"documentation": null,
"id": 3459,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3449,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3446,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3459,
"src": "7297:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3445,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7297:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3448,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3459,
"src": "7309:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3447,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7309:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7296:30:25"
},
"payable": false,
"returnParameters": {
"id": 3450,
"nodeType": "ParameterList",
"parameters": [],
"src": "7336:0:25"
},
"scope": 4000,
"src": "7263:131:25",
"stateMutability": "nonpayable",
"superFunction": 2936,
"visibility": "external"
},
{
"body": {
"id": 3481,
"nodeType": "Block",
"src": "7447:112:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3469,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3464,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "7451:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3466,
"indexExpression": {
"argumentTypes": null,
"id": 3465,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3461,
"src": "7469:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7451:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3467,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "7477:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3468,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7477:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "7451:41:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3470,
"nodeType": "ExpressionStatement",
"src": "7451:41:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3475,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3471,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "7496:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3473,
"indexExpression": {
"argumentTypes": null,
"id": 3472,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3461,
"src": "7518:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7496:27:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3474,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7526:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "7496:32:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3476,
"nodeType": "ExpressionStatement",
"src": "7496:32:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3478,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3461,
"src": "7550:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3477,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "7532:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3479,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7532:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3480,
"nodeType": "ExpressionStatement",
"src": "7532:23:25"
}
]
},
"documentation": null,
"id": 3482,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3462,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3461,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3482,
"src": "7426:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3460,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7426:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7425:12:25"
},
"payable": false,
"returnParameters": {
"id": 3463,
"nodeType": "ParameterList",
"parameters": [],
"src": "7447:0:25"
},
"scope": 4000,
"src": "7397:162:25",
"stateMutability": "nonpayable",
"superFunction": 2986,
"visibility": "external"
},
{
"body": {
"id": 3504,
"nodeType": "Block",
"src": "7610:121:25",
"statements": [
{
"assignments": [
3488
],
"declarations": [
{
"constant": false,
"id": 3488,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3505,
"src": "7614:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3487,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "7614:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3492,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3490,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3484,
"src": "7644:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3489,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "7630:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3491,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7630:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7614:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3498,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3493,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "7653:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3495,
"indexExpression": {
"argumentTypes": null,
"id": 3494,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3488,
"src": "7671:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7653:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3496,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "7681:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3497,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7681:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "7653:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3499,
"nodeType": "ExpressionStatement",
"src": "7653:43:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3501,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3488,
"src": "7718:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3500,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "7700:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7700:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3503,
"nodeType": "ExpressionStatement",
"src": "7700:25:25"
}
]
},
"documentation": null,
"id": 3505,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3485,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3484,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3505,
"src": "7589:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3483,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7589:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7588:12:25"
},
"payable": false,
"returnParameters": {
"id": 3486,
"nodeType": "ParameterList",
"parameters": [],
"src": "7610:0:25"
},
"scope": 4000,
"src": "7562:169:25",
"stateMutability": "nonpayable",
"superFunction": 2941,
"visibility": "external"
},
{
"body": {
"id": 3529,
"nodeType": "Block",
"src": "7811:117:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3517,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3512,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "7815:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3514,
"indexExpression": {
"argumentTypes": null,
"id": 3513,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "7833:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7815:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3515,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "7841:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3516,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7841:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "7815:41:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3518,
"nodeType": "ExpressionStatement",
"src": "7815:41:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3523,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3519,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "7860:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3521,
"indexExpression": {
"argumentTypes": null,
"id": 3520,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "7882:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7860:27:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3522,
"name": "message",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3509,
"src": "7890:7:25",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "7860:37:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3524,
"nodeType": "ExpressionStatement",
"src": "7860:37:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3526,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "7919:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3525,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "7901:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3527,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7901:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3528,
"nodeType": "ExpressionStatement",
"src": "7901:23:25"
}
]
},
"documentation": null,
"id": 3530,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3510,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3507,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3530,
"src": "7774:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3506,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7774:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3509,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 3530,
"src": "7786:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 3508,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7786:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7773:28:25"
},
"payable": false,
"returnParameters": {
"id": 3511,
"nodeType": "ParameterList",
"parameters": [],
"src": "7811:0:25"
},
"scope": 4000,
"src": "7734:194:25",
"stateMutability": "nonpayable",
"superFunction": 2993,
"visibility": "external"
},
{
"body": {
"id": 3560,
"nodeType": "Block",
"src": "8006:165:25",
"statements": [
{
"assignments": [
3538
],
"declarations": [
{
"constant": false,
"id": 3538,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3561,
"src": "8010:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3537,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "8010:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3542,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3540,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3532,
"src": "8040:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3539,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "8026:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3541,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8026:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8010:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3543,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "8049:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3545,
"indexExpression": {
"argumentTypes": null,
"id": 3544,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3538,
"src": "8067:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8049:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3546,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "8077:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3547,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8077:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "8049:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3549,
"nodeType": "ExpressionStatement",
"src": "8049:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3554,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3550,
"name": "methodIdRevertMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3077,
"src": "8096:22:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string storage ref)"
}
},
"id": 3552,
"indexExpression": {
"argumentTypes": null,
"id": 3551,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3538,
"src": "8119:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8096:30:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3553,
"name": "message",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3534,
"src": "8129:7:25",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "8096:40:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3555,
"nodeType": "ExpressionStatement",
"src": "8096:40:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3557,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3538,
"src": "8158:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3556,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "8140:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8140:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3559,
"nodeType": "ExpressionStatement",
"src": "8140:25:25"
}
]
},
"documentation": null,
"id": 3561,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3535,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3532,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3561,
"src": "7969:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3531,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7969:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3534,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 3561,
"src": "7981:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 3533,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7981:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7968:28:25"
},
"payable": false,
"returnParameters": {
"id": 3536,
"nodeType": "ParameterList",
"parameters": [],
"src": "8006:0:25"
},
"scope": 4000,
"src": "7931:240:25",
"stateMutability": "nonpayable",
"superFunction": 2948,
"visibility": "external"
},
{
"body": {
"id": 3577,
"nodeType": "Block",
"src": "8229:78:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3571,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3566,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "8233:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3568,
"indexExpression": {
"argumentTypes": null,
"id": 3567,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3563,
"src": "8251:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8233:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3569,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "8259:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3570,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8259:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "8233:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3572,
"nodeType": "ExpressionStatement",
"src": "8233:43:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3574,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3563,
"src": "8298:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3573,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "8280:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8280:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3576,
"nodeType": "ExpressionStatement",
"src": "8280:23:25"
}
]
},
"documentation": null,
"id": 3578,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3564,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3563,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "8208:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3562,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8208:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8207:12:25"
},
"payable": false,
"returnParameters": {
"id": 3565,
"nodeType": "ParameterList",
"parameters": [],
"src": "8229:0:25"
},
"scope": 4000,
"src": "8174:133:25",
"stateMutability": "nonpayable",
"superFunction": 2998,
"visibility": "external"
},
{
"body": {
"id": 3600,
"nodeType": "Block",
"src": "8363:122:25",
"statements": [
{
"assignments": [
3584
],
"declarations": [
{
"constant": false,
"id": 3584,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "8367:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3583,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "8367:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3588,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3586,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3580,
"src": "8397:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3585,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "8383:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3587,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8383:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8367:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3589,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "8406:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3591,
"indexExpression": {
"argumentTypes": null,
"id": 3590,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3584,
"src": "8424:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8406:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3592,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "8434:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3593,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8434:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "8406:45:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3595,
"nodeType": "ExpressionStatement",
"src": "8406:45:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3597,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3584,
"src": "8473:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3596,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "8455:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3598,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8455:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3599,
"nodeType": "ExpressionStatement",
"src": "8455:25:25"
}
]
},
"documentation": null,
"id": 3601,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3581,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3580,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "8342:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3579,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8342:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8341:12:25"
},
"payable": false,
"returnParameters": {
"id": 3582,
"nodeType": "ParameterList",
"parameters": [],
"src": "8363:0:25"
},
"scope": 4000,
"src": "8310:175:25",
"stateMutability": "nonpayable",
"superFunction": 2953,
"visibility": "external"
},
{
"body": {
"id": 3608,
"nodeType": "Block",
"src": "8539:26:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3606,
"name": "invocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3089,
"src": "8550:11:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3605,
"id": 3607,
"nodeType": "Return",
"src": "8543:18:25"
}
]
},
"documentation": null,
"id": 3609,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCount",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3602,
"nodeType": "ParameterList",
"parameters": [],
"src": "8512:2:25"
},
"payable": false,
"returnParameters": {
"id": 3605,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3604,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3609,
"src": "8533:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3603,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8533:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8532:6:25"
},
"scope": 4000,
"src": "8488:77:25",
"stateMutability": "nonpayable",
"superFunction": 3003,
"visibility": "external"
},
{
"body": {
"id": 3632,
"nodeType": "Block",
"src": "8638:122:25",
"statements": [
{
"assignments": [
3617
],
"declarations": [
{
"constant": false,
"id": 3617,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "8642:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3616,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "8642:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3621,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3619,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3611,
"src": "8672:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3618,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "8658:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3620,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8658:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8642:35:25"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3622,
"name": "methodIdInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3081,
"src": "8688:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3630,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3626,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "8735:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3627,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3617,
"src": "8747:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"argumentTypes": null,
"id": 3624,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "8718:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3625,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8718:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3628,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8718:36:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3623,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "8708:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8708:47:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8688:68:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3615,
"id": 3631,
"nodeType": "Return",
"src": "8681:75:25"
}
]
},
"documentation": null,
"id": 3633,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForMethod",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3612,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3611,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "8602:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3610,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8602:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8601:12:25"
},
"payable": false,
"returnParameters": {
"id": 3615,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3614,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "8632:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3613,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8632:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8631:6:25"
},
"scope": 4000,
"src": "8568:192:25",
"stateMutability": "nonpayable",
"superFunction": 3010,
"visibility": "external"
},
{
"body": {
"id": 3650,
"nodeType": "Block",
"src": "8835:81:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3640,
"name": "calldataInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3061,
"src": "8846:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3648,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3644,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "8893:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3645,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3635,
"src": "8905:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"expression": {
"argumentTypes": null,
"id": 3642,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "8876:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3643,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8876:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8876:34:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3641,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "8866:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8866:45:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8846:66:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3639,
"id": 3649,
"nodeType": "Return",
"src": "8839:73:25"
}
]
},
"documentation": null,
"id": 3651,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForCalldata",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3636,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3635,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3651,
"src": "8799:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3634,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8799:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8798:12:25"
},
"payable": false,
"returnParameters": {
"id": 3639,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3638,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3651,
"src": "8829:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3637,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8829:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8828:6:25"
},
"scope": 4000,
"src": "8763:153:25",
"stateMutability": "nonpayable",
"superFunction": 3017,
"visibility": "external"
},
{
"body": {
"id": 3783,
"nodeType": "Block",
"src": "8945:1265:25",
"statements": [
{
"assignments": [
3655
],
"declarations": [
{
"constant": false,
"id": 3655,
"name": "nextMock",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "8984:21:25",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3654,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8984:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3659,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3656,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9008:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3658,
"indexExpression": {
"argumentTypes": null,
"id": 3657,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "9022:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9008:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8984:55:25"
},
{
"assignments": [
3661
],
"declarations": [
{
"constant": false,
"id": 3661,
"name": "mockHash",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "9043:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3660,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9043:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3665,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3663,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9072:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3662,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "9062:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3664,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "9062:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9043:38:25"
},
{
"body": {
"id": 3706,
"nodeType": "Block",
"src": "9153:355:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3674,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3669,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "9184:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3671,
"indexExpression": {
"argumentTypes": null,
"id": 3670,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9202:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9184:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3672,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "9214:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3673,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "9214:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "9184:45:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3675,
"nodeType": "ExpressionStatement",
"src": "9184:45:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3680,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3676,
"name": "calldataExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3053,
"src": "9234:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes memory => bytes storage ref)"
}
},
"id": 3678,
"indexExpression": {
"argumentTypes": null,
"id": 3677,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9255:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9234:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3679,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9267:5:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9234:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3681,
"nodeType": "ExpressionStatement",
"src": "9234:38:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3686,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3682,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "9277:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3684,
"indexExpression": {
"argumentTypes": null,
"id": 3683,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9299:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9277:31:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3685,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9311:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9277:36:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3687,
"nodeType": "ExpressionStatement",
"src": "9277:36:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3692,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3688,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9348:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3689,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9359:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3691,
"indexExpression": {
"argumentTypes": null,
"id": 3690,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9373:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9359:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "9348:34:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3693,
"nodeType": "ExpressionStatement",
"src": "9348:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3698,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3694,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9417:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3696,
"indexExpression": {
"argumentTypes": null,
"id": 3695,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9431:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9417:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3697,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9443:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9417:28:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3699,
"nodeType": "ExpressionStatement",
"src": "9417:28:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3704,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3700,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9473:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3702,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9494:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3701,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "9484:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3703,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "9484:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9473:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3705,
"nodeType": "ExpressionStatement",
"src": "9473:30:25"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3666,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9120:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"id": 3667,
"name": "MOCKS_LIST_END_HASH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3038,
"src": "9132:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9120:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3707,
"nodeType": "WhileStatement",
"src": "9114:394:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3712,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3708,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9527:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3710,
"indexExpression": {
"argumentTypes": null,
"id": 3709,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "9541:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9527:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3711,
"name": "MOCKS_LIST_END",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3033,
"src": "9561:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"src": "9527:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3713,
"nodeType": "ExpressionStatement",
"src": "9527:48:25"
},
{
"assignments": [
3715
],
"declarations": [
{
"constant": false,
"id": 3715,
"name": "nextAnyMock",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "9613:18:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3714,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "9613:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3719,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3716,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "9634:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3718,
"indexExpression": {
"argumentTypes": null,
"id": 3717,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "9648:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9634:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9613:54:25"
},
{
"body": {
"id": 3758,
"nodeType": "Block",
"src": "9712:316:25",
"statements": [
{
"assignments": [
3724
],
"declarations": [
{
"constant": false,
"id": 3724,
"name": "currentAnyMock",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "9717:21:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3723,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "9717:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3726,
"initialValue": {
"argumentTypes": null,
"id": 3725,
"name": "nextAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3715,
"src": "9741:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9717:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3732,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3727,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "9757:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3729,
"indexExpression": {
"argumentTypes": null,
"id": 3728,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9775:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9757:33:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3730,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "9793:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3731,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "9793:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "9757:51:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3733,
"nodeType": "ExpressionStatement",
"src": "9757:51:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3738,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3734,
"name": "methodIdExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3073,
"src": "9813:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes storage ref)"
}
},
"id": 3736,
"indexExpression": {
"argumentTypes": null,
"id": 3735,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9834:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9813:36:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3737,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9852:5:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9813:44:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3739,
"nodeType": "ExpressionStatement",
"src": "9813:44:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3744,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3740,
"name": "methodIdRevertMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3077,
"src": "9862:22:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string storage ref)"
}
},
"id": 3742,
"indexExpression": {
"argumentTypes": null,
"id": 3741,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9885:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9862:38:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3743,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9903:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9862:43:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3745,
"nodeType": "ExpressionStatement",
"src": "9862:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3746,
"name": "nextAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3715,
"src": "9910:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3747,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "9924:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3749,
"indexExpression": {
"argumentTypes": null,
"id": 3748,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9938:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9924:29:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "9910:43:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3751,
"nodeType": "ExpressionStatement",
"src": "9910:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3756,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3752,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "9988:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3754,
"indexExpression": {
"argumentTypes": null,
"id": 3753,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "10002:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9988:29:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "307830",
"id": 3755,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10020:3:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "9988:35:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3757,
"nodeType": "ExpressionStatement",
"src": "9988:35:25"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 3722,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3720,
"name": "nextAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3715,
"src": "9677:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"id": 3721,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "9692:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "9677:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3759,
"nodeType": "WhileStatement",
"src": "9671:357:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3764,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3760,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "10047:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3762,
"indexExpression": {
"argumentTypes": null,
"id": 3761,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "10061:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "10047:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3763,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "10083:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "10047:54:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3765,
"nodeType": "ExpressionStatement",
"src": "10047:54:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3766,
"name": "fallbackExpectation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3085,
"src": "10106:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3767,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10128:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "10106:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3769,
"nodeType": "ExpressionStatement",
"src": "10106:24:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3770,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "10134:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3771,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "10153:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3772,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "10153:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "10134:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3774,
"nodeType": "ExpressionStatement",
"src": "10134:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3777,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3775,
"name": "invocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3089,
"src": "10172:11:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 3776,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10186:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "10172:15:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3778,
"nodeType": "ExpressionStatement",
"src": "10172:15:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3781,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3779,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "10191:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3780,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10205:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "10191:15:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3782,
"nodeType": "ExpressionStatement",
"src": "10191:15:25"
}
]
},
"documentation": null,
"id": 3784,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "reset",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3652,
"nodeType": "ParameterList",
"parameters": [],
"src": "8933:2:25"
},
"payable": false,
"returnParameters": {
"id": 3653,
"nodeType": "ParameterList",
"parameters": [],
"src": "8945:0:25"
},
"scope": 4000,
"src": "8919:1291:25",
"stateMutability": "nonpayable",
"superFunction": 3020,
"visibility": "external"
},
{
"body": {
"id": 3794,
"nodeType": "Block",
"src": "10242:157:25",
"statements": [
{
"body": {
"id": 3792,
"nodeType": "Block",
"src": "10258:138:25",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 3789,
"name": "s",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "10263:6:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3788,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "10263:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3790,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "10263:6:25"
},
{
"externalReferences": [
{
"s": {
"declaration": 3789,
"isOffset": false,
"isSlot": false,
"src": "10334:1:25",
"valueSize": 1
}
}
],
"id": 3791,
"nodeType": "InlineAssembly",
"operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}",
"src": "10274:122:25"
}
]
},
"condition": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3787,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10252:4:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"id": 3793,
"nodeType": "WhileStatement",
"src": "10246:150:25"
}
]
},
"documentation": null,
"id": 3795,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "useAllGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3785,
"nodeType": "ParameterList",
"parameters": [],
"src": "10231:2:25"
},
"payable": false,
"returnParameters": {
"id": 3786,
"nodeType": "ParameterList",
"parameters": [],
"src": "10242:0:25"
},
"scope": 4000,
"src": "10213:186:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3834,
"nodeType": "Block",
"src": "10464:122:25",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 3803,
"name": "out",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10470:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3802,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "10470:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3804,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "10470:10:25"
},
{
"body": {
"id": 3830,
"nodeType": "Block",
"src": "10515:52:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3828,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3815,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3803,
"src": "10523:3:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 3827,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 3821,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3817,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3797,
"src": "10537:1:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3819,
"indexExpression": {
"argumentTypes": null,
"id": 3818,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10539:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "10537:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30784646",
"id": 3820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10544:4:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "10537:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 3816,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "10530:6:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes4_$",
"typeString": "type(bytes4)"
},
"typeName": "bytes4"
},
"id": 3822,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "10530:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3825,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3823,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10554:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "38",
"id": 3824,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10558:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "10554:5:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 3826,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "10553:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "10530:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "10523:37:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3829,
"nodeType": "ExpressionStatement",
"src": "10523:37:25"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3809,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10503:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"hexValue": "34",
"id": 3810,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10507:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
},
"src": "10503:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3831,
"initializationExpression": {
"assignments": [
3806
],
"declarations": [
{
"constant": false,
"id": 3806,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10491:6:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3805,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "10491:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3808,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 3807,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10500:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "10491:10:25"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 3813,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "10510:3:25",
"subExpression": {
"argumentTypes": null,
"id": 3812,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10510:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3814,
"nodeType": "ExpressionStatement",
"src": "10510:3:25"
},
"nodeType": "ForStatement",
"src": "10486:81:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3832,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3803,
"src": "10579:3:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 3801,
"id": 3833,
"nodeType": "Return",
"src": "10572:10:25"
}
]
},
"documentation": null,
"id": 3835,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "bytesToBytes4",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3798,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3797,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10425:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3796,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10425:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10424:9:25"
},
"payable": false,
"returnParameters": {
"id": 3801,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3800,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10456:6:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3799,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "10456:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10455:8:25"
},
"scope": 4000,
"src": "10402:184:25",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3843,
"nodeType": "Block",
"src": "10654:189:25",
"statements": [
{
"externalReferences": [
{
"b": {
"declaration": 3840,
"isOffset": false,
"isSlot": false,
"src": "10827:1:25",
"valueSize": 1
}
},
{
"a": {
"declaration": 3837,
"isOffset": false,
"isSlot": false,
"src": "10780:1:25",
"valueSize": 1
}
}
],
"id": 3842,
"nodeType": "InlineAssembly",
"operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}",
"src": "10661:182:25"
}
]
},
"documentation": null,
"id": 3844,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "addressToBytes",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3838,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3837,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3844,
"src": "10613:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3836,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10613:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10612:11:25"
},
"payable": false,
"returnParameters": {
"id": 3841,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3840,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3844,
"src": "10646:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3839,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10646:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10645:9:25"
},
"scope": 4000,
"src": "10589:254:25",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3859,
"nodeType": "Block",
"src": "10909:68:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3856,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3851,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3849,
"src": "10916:1:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "3332",
"id": 3854,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10930:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
}
],
"id": 3853,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "10920:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 3852,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10924:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 3855,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "10920:13:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"src": "10916:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3857,
"nodeType": "ExpressionStatement",
"src": "10916:17:25"
},
{
"externalReferences": [
{
"x": {
"declaration": 3846,
"isOffset": false,
"isSlot": false,
"src": "10970:1:25",
"valueSize": 1
}
},
{
"b": {
"declaration": 3849,
"isOffset": false,
"isSlot": false,
"src": "10962:1:25",
"valueSize": 1
}
}
],
"id": 3858,
"nodeType": "InlineAssembly",
"operations": "{\n mstore(add(b, 32), x)\n}",
"src": "10940:37:25"
}
]
},
"documentation": null,
"id": 3860,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "uintToBytes",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3847,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3846,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 3860,
"src": "10867:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3845,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10867:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10866:11:25"
},
"payable": false,
"returnParameters": {
"id": 3850,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3849,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3860,
"src": "10900:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3848,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10900:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10899:9:25"
},
"scope": 4000,
"src": "10846:131:25",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3998,
"nodeType": "Block",
"src": "11008:1178:25",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 3864,
"name": "methodId",
"nodeType": "VariableDeclaration",
"scope": 3999,
"src": "11012:15:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3863,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "11012:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3865,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "11012:15:25"
},
{
"externalReferences": [
{
"methodId": {
"declaration": 3864,
"isOffset": false,
"isSlot": false,
"src": "11045:8:25",
"valueSize": 1
}
}
],
"id": 3866,
"nodeType": "InlineAssembly",
"operations": "{\n methodId := calldataload(0)\n}",
"src": "11031:94:25"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3873,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3867,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "11127:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3870,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3868,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11145:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11145:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11127:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3871,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11158:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3872,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11158:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11127:46:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3882,
"nodeType": "IfStatement",
"src": "11123:101:25",
"trueBody": {
"id": 3881,
"nodeType": "Block",
"src": "11175:49:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3875,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "11187:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3878,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3876,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11209:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3877,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11209:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11187:31:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 3874,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4020,
4021
],
"referencedDeclaration": 4021,
"src": "11180:6:25",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 3879,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11180:39:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3880,
"nodeType": "ExpressionStatement",
"src": "11180:39:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3883,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "11231:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3886,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3884,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11249:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3885,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11249:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11231:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3887,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11262:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3888,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11262:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11231:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3894,
"nodeType": "IfStatement",
"src": "11227:75:25",
"trueBody": {
"id": 3893,
"nodeType": "Block",
"src": "11281:21:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3890,
"name": "useAllGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3795,
"src": "11286:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3891,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11286:11:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3892,
"nodeType": "ExpressionStatement",
"src": "11286:11:25"
}
]
}
},
{
"assignments": [
3896
],
"declarations": [
{
"constant": false,
"id": 3896,
"name": "result",
"nodeType": "VariableDeclaration",
"scope": 3999,
"src": "11305:19:25",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3895,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11305:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3901,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3897,
"name": "calldataExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3053,
"src": "11327:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes memory => bytes storage ref)"
}
},
"id": 3900,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3898,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11348:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11348:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11327:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11305:52:25"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3905,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3902,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11402:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3903,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11402:13:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3904,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11419:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "11402:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3938,
"nodeType": "IfStatement",
"src": "11398:262:25",
"trueBody": {
"id": 3937,
"nodeType": "Block",
"src": "11422:238:25",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3911,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3906,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "11431:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3908,
"indexExpression": {
"argumentTypes": null,
"id": 3907,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11449:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11431:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3909,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11462:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3910,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11462:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11431:46:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3919,
"nodeType": "IfStatement",
"src": "11427:104:25",
"trueBody": {
"id": 3918,
"nodeType": "Block",
"src": "11479:52:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3913,
"name": "methodIdRevertMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3077,
"src": "11492:22:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string storage ref)"
}
},
"id": 3915,
"indexExpression": {
"argumentTypes": null,
"id": 3914,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11515:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11492:32:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 3912,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4020,
4021
],
"referencedDeclaration": 4021,
"src": "11485:6:25",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 3916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11485:40:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3917,
"nodeType": "ExpressionStatement",
"src": "11485:40:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3925,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3920,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "11539:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3922,
"indexExpression": {
"argumentTypes": null,
"id": 3921,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11557:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11539:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3923,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11570:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3924,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11570:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11539:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3930,
"nodeType": "IfStatement",
"src": "11535:77:25",
"trueBody": {
"id": 3929,
"nodeType": "Block",
"src": "11589:23:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3926,
"name": "useAllGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3795,
"src": "11595:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11595:11:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3928,
"nodeType": "ExpressionStatement",
"src": "11595:11:25"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3935,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3931,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11616:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3932,
"name": "methodIdExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3073,
"src": "11625:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes storage ref)"
}
},
"id": 3934,
"indexExpression": {
"argumentTypes": null,
"id": 3933,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11646:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11625:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "11616:39:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3936,
"nodeType": "ExpressionStatement",
"src": "11616:39:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3942,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3939,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11705:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3940,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11705:13:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3941,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11722:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "11705:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3967,
"nodeType": "IfStatement",
"src": "11701:218:25",
"trueBody": {
"id": 3966,
"nodeType": "Block",
"src": "11725:194:25",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3943,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "11734:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3944,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11754:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3945,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11754:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11734:35:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3952,
"nodeType": "IfStatement",
"src": "11730:82:25",
"trueBody": {
"id": 3951,
"nodeType": "Block",
"src": "11771:41:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3948,
"name": "fallbackRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3087,
"src": "11784:21:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 3947,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4020,
4021
],
"referencedDeclaration": 4021,
"src": "11777:6:25",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 3949,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11777:29:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3950,
"nodeType": "ExpressionStatement",
"src": "11777:29:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3956,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3953,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "11820:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3954,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11840:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3955,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11840:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11820:37:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3961,
"nodeType": "IfStatement",
"src": "11816:66:25",
"trueBody": {
"id": 3960,
"nodeType": "Block",
"src": "11859:23:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3957,
"name": "useAllGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3795,
"src": "11865:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3958,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11865:11:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3959,
"nodeType": "ExpressionStatement",
"src": "11865:11:25"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3964,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3962,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11886:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3963,
"name": "fallbackExpectation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3085,
"src": "11895:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "11886:28:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3965,
"nodeType": "ExpressionStatement",
"src": "11886:28:25"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3970,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3968,
"name": "invocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3089,
"src": "11946:11:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3969,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11961:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "11946:16:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3971,
"nodeType": "ExpressionStatement",
"src": "11946:16:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3982,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3972,
"name": "methodIdInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3081,
"src": "11966:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3980,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3976,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "12013:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3977,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "12025:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"argumentTypes": null,
"id": 3974,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "11996:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3975,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11996:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3978,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11996:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3973,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "11986:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3979,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11986:49:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "11966:70:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3981,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12040:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "11966:75:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3983,
"nodeType": "ExpressionStatement",
"src": "11966:75:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3995,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3984,
"name": "calldataInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3061,
"src": "12045:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3993,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3988,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "12092:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3989,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "12104:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3990,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "12104:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"expression": {
"argumentTypes": null,
"id": 3986,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "12075:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3987,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "12075:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "12075:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3985,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "12065:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3992,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "12065:49:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "12045:70:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3994,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12119:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "12045:75:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3996,
"nodeType": "ExpressionStatement",
"src": "12045:75:25"
},
{
"externalReferences": [
{
"result": {
"declaration": 3896,
"isOffset": false,
"isSlot": false,
"src": "12156:6:25",
"valueSize": 1
}
},
{
"result": {
"declaration": 3896,
"isOffset": false,
"isSlot": false,
"src": "12171:6:25",
"valueSize": 1
}
}
],
"id": 3997,
"nodeType": "InlineAssembly",
"operations": "{\n return(add(0x20, result), mload(result))\n}",
"src": "12125:61:25"
}
]
},
"documentation": null,
"id": 3999,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3861,
"nodeType": "ParameterList",
"parameters": [],
"src": "10988:2:25"
},
"payable": true,
"returnParameters": {
"id": 3862,
"nodeType": "ParameterList",
"parameters": [],
"src": "11008:0:25"
},
"scope": 4000,
"src": "10980:1206:25",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 4001,
"src": "3453:8735:25"
}
],
"src": "0:12189:25"
},
"legacyAST": {
"absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"exportedSymbols": {
"MockContract": [
4000
],
"MockInterface": [
3021
]
},
"id": 4001,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2877,
"literals": [
"solidity",
"^",
"0.4",
".23"
],
"nodeType": "PragmaDirective",
"src": "0:24:25"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": null,
"fullyImplemented": false,
"id": 3021,
"linearizedBaseContracts": [
3021
],
"name": "MockInterface",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked",
"id": 2882,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2880,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2879,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2882,
"src": "358:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2878,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "358:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "357:16:25"
},
"payable": false,
"returnParameters": {
"id": 2881,
"nodeType": "ParameterList",
"parameters": [],
"src": "382:0:25"
},
"scope": 3021,
"src": "334:49:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2887,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2885,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2884,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2887,
"src": "413:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2883,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "413:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "412:15:25"
},
"payable": false,
"returnParameters": {
"id": 2886,
"nodeType": "ParameterList",
"parameters": [],
"src": "436:0:25"
},
"scope": 3021,
"src": "385:52:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2892,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2890,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2889,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2892,
"src": "467:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2888,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "467:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "466:15:25"
},
"payable": false,
"returnParameters": {
"id": 2891,
"nodeType": "ParameterList",
"parameters": [],
"src": "490:0:25"
},
"scope": 3021,
"src": "439:52:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2897,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2895,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2894,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2897,
"src": "524:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2893,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "524:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "523:18:25"
},
"payable": false,
"returnParameters": {
"id": 2896,
"nodeType": "ParameterList",
"parameters": [],
"src": "550:0:25"
},
"scope": 3021,
"src": "493:58:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2900,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2898,
"nodeType": "ParameterList",
"parameters": [],
"src": "577:2:25"
},
"payable": false,
"returnParameters": {
"id": 2899,
"nodeType": "ParameterList",
"parameters": [],
"src": "588:0:25"
},
"scope": 3021,
"src": "554:35:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2905,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2903,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2902,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 2905,
"src": "626:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 2901,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "626:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "625:16:25"
},
"payable": false,
"returnParameters": {
"id": 2904,
"nodeType": "ParameterList",
"parameters": [],
"src": "650:0:25"
},
"scope": 3021,
"src": "591:60:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2908,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2906,
"nodeType": "ParameterList",
"parameters": [],
"src": "681:2:25"
},
"payable": false,
"returnParameters": {
"id": 2907,
"nodeType": "ParameterList",
"parameters": [],
"src": "692:0:25"
},
"scope": 3021,
"src": "653:40:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked",
"id": 2915,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2913,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2910,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2915,
"src": "1222:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2909,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1222:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2912,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2915,
"src": "1236:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2911,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1236:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1221:30:25"
},
"payable": false,
"returnParameters": {
"id": 2914,
"nodeType": "ParameterList",
"parameters": [],
"src": "1260:0:25"
},
"scope": 3021,
"src": "1195:66:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2922,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2920,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2917,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2922,
"src": "1294:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2916,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1294:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2919,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2922,
"src": "1308:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2918,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1308:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1293:29:25"
},
"payable": false,
"returnParameters": {
"id": 2921,
"nodeType": "ParameterList",
"parameters": [],
"src": "1331:0:25"
},
"scope": 3021,
"src": "1263:69:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2929,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2927,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2924,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2929,
"src": "1365:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2923,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1365:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2926,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2929,
"src": "1379:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2925,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1379:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1364:29:25"
},
"payable": false,
"returnParameters": {
"id": 2928,
"nodeType": "ParameterList",
"parameters": [],
"src": "1402:0:25"
},
"scope": 3021,
"src": "1334:69:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2936,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2934,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2931,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2936,
"src": "1439:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2930,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1439:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2933,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2936,
"src": "1453:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2932,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1453:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1438:32:25"
},
"payable": false,
"returnParameters": {
"id": 2935,
"nodeType": "ParameterList",
"parameters": [],
"src": "1479:0:25"
},
"scope": 3021,
"src": "1405:75:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2941,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2939,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2938,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2941,
"src": "1510:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2937,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1510:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1509:14:25"
},
"payable": false,
"returnParameters": {
"id": 2940,
"nodeType": "ParameterList",
"parameters": [],
"src": "1532:0:25"
},
"scope": 3021,
"src": "1483:50:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2948,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2946,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2943,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2948,
"src": "1573:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2942,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1573:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2945,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 2948,
"src": "1587:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 2944,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1587:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1572:30:25"
},
"payable": false,
"returnParameters": {
"id": 2947,
"nodeType": "ParameterList",
"parameters": [],
"src": "1611:0:25"
},
"scope": 3021,
"src": "1535:77:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2953,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2951,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2950,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 2953,
"src": "1646:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2949,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1646:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1645:14:25"
},
"payable": false,
"returnParameters": {
"id": 2952,
"nodeType": "ParameterList",
"parameters": [],
"src": "1668:0:25"
},
"scope": 3021,
"src": "1614:55:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata",
"id": 2960,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2958,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2955,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2960,
"src": "2089:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2954,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2089:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2957,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2960,
"src": "2105:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2956,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2105:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2088:32:25"
},
"payable": false,
"returnParameters": {
"id": 2959,
"nodeType": "ParameterList",
"parameters": [],
"src": "2129:0:25"
},
"scope": 3021,
"src": "2060:70:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2967,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2965,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2962,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2967,
"src": "2165:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2961,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2165:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2964,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2967,
"src": "2181:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2963,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2181:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2164:31:25"
},
"payable": false,
"returnParameters": {
"id": 2966,
"nodeType": "ParameterList",
"parameters": [],
"src": "2204:0:25"
},
"scope": 3021,
"src": "2132:73:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2974,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2972,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2969,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2974,
"src": "2240:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2968,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2240:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2971,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2974,
"src": "2256:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2970,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2256:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2239:31:25"
},
"payable": false,
"returnParameters": {
"id": 2973,
"nodeType": "ParameterList",
"parameters": [],
"src": "2279:0:25"
},
"scope": 3021,
"src": "2207:73:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2981,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2979,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2976,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2981,
"src": "2318:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2975,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2318:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2978,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 2981,
"src": "2334:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2977,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2334:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2317:34:25"
},
"payable": false,
"returnParameters": {
"id": 2980,
"nodeType": "ParameterList",
"parameters": [],
"src": "2360:0:25"
},
"scope": 3021,
"src": "2282:79:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2986,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2984,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2983,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2986,
"src": "2393:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2982,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2393:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2392:16:25"
},
"payable": false,
"returnParameters": {
"id": 2985,
"nodeType": "ParameterList",
"parameters": [],
"src": "2417:0:25"
},
"scope": 3021,
"src": "2364:54:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2993,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2991,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2988,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2993,
"src": "2460:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2987,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2460:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2990,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 2993,
"src": "2476:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 2989,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2476:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2459:32:25"
},
"payable": false,
"returnParameters": {
"id": 2992,
"nodeType": "ParameterList",
"parameters": [],
"src": "2500:0:25"
},
"scope": 3021,
"src": "2420:81:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 2998,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2996,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2995,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 2998,
"src": "2537:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2994,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2537:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2536:16:25"
},
"payable": false,
"returnParameters": {
"id": 2997,
"nodeType": "ParameterList",
"parameters": [],
"src": "2561:0:25"
},
"scope": 3021,
"src": "2503:59:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Returns the number of times anything has been called on this mock since last reset",
"id": 3003,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCount",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2999,
"nodeType": "ParameterList",
"parameters": [],
"src": "2691:2:25"
},
"payable": false,
"returnParameters": {
"id": 3002,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3001,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3003,
"src": "2712:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3000,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2712:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2711:6:25"
},
"scope": 3021,
"src": "2667:51:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it",
"id": 3010,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForMethod",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3006,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3005,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3010,
"src": "3005:12:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3004,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3005:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3004:14:25"
},
"payable": false,
"returnParameters": {
"id": 3009,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3008,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3010,
"src": "3037:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3007,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3037:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3036:6:25"
},
"scope": 3021,
"src": "2971:72:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param calldata ABI encoded calldata (methodId and arguments)",
"id": 3017,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForCalldata",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3013,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3012,
"name": "calldata",
"nodeType": "VariableDeclaration",
"scope": 3017,
"src": "3263:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3011,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3263:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3262:16:25"
},
"payable": false,
"returnParameters": {
"id": 3016,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3015,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3017,
"src": "3297:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3014,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3297:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3296:6:25"
},
"scope": 3021,
"src": "3227:76:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": "@dev Resets all mocked methods and invocation counts.",
"id": 3020,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "reset",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3018,
"nodeType": "ParameterList",
"parameters": [],
"src": "3389:2:25"
},
"payable": false,
"returnParameters": {
"id": 3019,
"nodeType": "ParameterList",
"parameters": [],
"src": "3400:0:25"
},
"scope": 3021,
"src": "3375:26:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 4001,
"src": "26:3377:25"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3022,
"name": "MockInterface",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3021,
"src": "3478:13:25",
"typeDescriptions": {
"typeIdentifier": "t_contract$_MockInterface_$3021",
"typeString": "contract MockInterface"
}
},
"id": 3023,
"nodeType": "InheritanceSpecifier",
"src": "3478:13:25"
}
],
"contractDependencies": [
3021
],
"contractKind": "contract",
"documentation": "Implementation of the MockInterface.",
"fullyImplemented": true,
"id": 4000,
"linearizedBaseContracts": [
4000,
3021
],
"name": "MockContract",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "MockContract.MockType",
"id": 3027,
"members": [
{
"id": 3024,
"name": "Return",
"nodeType": "EnumValue",
"src": "3511:6:25"
},
{
"id": 3025,
"name": "Revert",
"nodeType": "EnumValue",
"src": "3519:6:25"
},
{
"id": 3026,
"name": "OutOfGas",
"nodeType": "EnumValue",
"src": "3527:8:25"
}
],
"name": "MockType",
"nodeType": "EnumDefinition",
"src": "3495:42:25"
},
{
"constant": true,
"id": 3030,
"name": "MOCKS_LIST_START",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3541:50:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3028,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3541:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "01",
"id": 3029,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3584:7:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2",
"typeString": "literal_string \"\u0001\""
},
"value": "\u0001"
},
"visibility": "public"
},
{
"constant": true,
"id": 3033,
"name": "MOCKS_LIST_END",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3594:45:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes"
},
"typeName": {
"id": 3031,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3594:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"argumentTypes": null,
"hexValue": "30786666",
"id": 3032,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3633:6:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513",
"typeString": "literal_string \"0xff\""
},
"value": "0xff"
},
"visibility": "public"
},
{
"constant": true,
"id": 3038,
"name": "MOCKS_LIST_END_HASH",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3642:71:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3034,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3642:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3036,
"name": "MOCKS_LIST_END",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3033,
"src": "3698:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
],
"id": 3035,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "3688:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3037,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3688:25:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "public"
},
{
"constant": true,
"id": 3041,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3716:51:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3039,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "3716:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": {
"argumentTypes": null,
"hexValue": "01",
"id": 3040,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3760:7:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2",
"typeString": "literal_string \"\u0001\""
},
"value": "\u0001"
},
"visibility": "public"
},
{
"constant": false,
"id": 3045,
"name": "calldataMocks",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3832:39:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes)"
},
"typeName": {
"id": 3044,
"keyType": {
"id": 3042,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3840:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "3832:25:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes)"
},
"valueType": {
"id": 3043,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3851:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3049,
"name": "calldataMockTypes",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3874:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes => enum MockContract.MockType)"
},
"typeName": {
"id": 3048,
"keyType": {
"id": 3046,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3882:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"nodeType": "Mapping",
"src": "3874:26:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes => enum MockContract.MockType)"
},
"valueType": {
"contractScope": null,
"id": 3047,
"name": "MockType",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3027,
"src": "3891:8:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3053,
"name": "calldataExpectations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3921:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes => bytes)"
},
"typeName": {
"id": 3052,
"keyType": {
"id": 3050,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3929:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"nodeType": "Mapping",
"src": "3921:23:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes => bytes)"
},
"valueType": {
"id": 3051,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3938:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3057,
"name": "calldataRevertMessage",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "3968:46:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes => string)"
},
"typeName": {
"id": 3056,
"keyType": {
"id": 3054,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3976:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"nodeType": "Mapping",
"src": "3968:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes => string)"
},
"valueType": {
"id": 3055,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3985:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3061,
"name": "calldataInvocations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4017:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 3060,
"keyType": {
"id": 3058,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4025:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "4017:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 3059,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4036:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3065,
"name": "methodIdMocks",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4065:39:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
},
"typeName": {
"id": 3064,
"keyType": {
"id": 3062,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4073:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4065:25:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
},
"valueType": {
"id": 3063,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4083:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3069,
"name": "methodIdMockTypes",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4107:45:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
},
"typeName": {
"id": 3068,
"keyType": {
"id": 3066,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4115:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4107:27:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
},
"valueType": {
"contractScope": null,
"id": 3067,
"name": "MockType",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3027,
"src": "4125:8:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3073,
"name": "methodIdExpectations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4155:45:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes)"
},
"typeName": {
"id": 3072,
"keyType": {
"id": 3070,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4163:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4155:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes)"
},
"valueType": {
"id": 3071,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4173:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3077,
"name": "methodIdRevertMessages",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4203:48:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string)"
},
"typeName": {
"id": 3076,
"keyType": {
"id": 3074,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4211:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "4203:25:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string)"
},
"valueType": {
"id": 3075,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4221:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3081,
"name": "methodIdInvocations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4254:44:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 3080,
"keyType": {
"id": 3078,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4262:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "4254:24:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 3079,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4273:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3083,
"name": "fallbackMockType",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4302:25:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"typeName": {
"contractScope": null,
"id": 3082,
"name": "MockType",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3027,
"src": "4302:8:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3085,
"name": "fallbackExpectation",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4330:25:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes"
},
"typeName": {
"id": 3084,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4330:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3087,
"name": "fallbackRevertMessage",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4358:28:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 3086,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4358:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3089,
"name": "invocations",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4389:16:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3088,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4389:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3091,
"name": "resetCount",
"nodeType": "VariableDeclaration",
"scope": 4000,
"src": "4408:15:25",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3090,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4408:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 3106,
"nodeType": "Block",
"src": "4448:114:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3098,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3094,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4452:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3096,
"indexExpression": {
"argumentTypes": null,
"id": 3095,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "4466:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4452:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3097,
"name": "MOCKS_LIST_END",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3033,
"src": "4486:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"src": "4452:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3099,
"nodeType": "ExpressionStatement",
"src": "4452:48:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3104,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3100,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4504:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3102,
"indexExpression": {
"argumentTypes": null,
"id": 3101,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4518:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4504:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3103,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4540:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4504:54:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3105,
"nodeType": "ExpressionStatement",
"src": "4504:54:25"
}
]
},
"documentation": null,
"id": 3107,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3092,
"nodeType": "ParameterList",
"parameters": [],
"src": "4438:2:25"
},
"payable": false,
"returnParameters": {
"id": 3093,
"nodeType": "ParameterList",
"parameters": [],
"src": "4448:0:25"
},
"scope": 4000,
"src": "4427:135:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3140,
"nodeType": "Block",
"src": "4619:196:25",
"statements": [
{
"assignments": [
3113
],
"declarations": [
{
"constant": false,
"id": 3113,
"name": "callHash",
"nodeType": "VariableDeclaration",
"scope": 3141,
"src": "4623:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3112,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4623:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3117,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3115,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3109,
"src": "4652:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3114,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "4642:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4642:15:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4623:34:25"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3118,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4665:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3120,
"indexExpression": {
"argumentTypes": null,
"id": 3119,
"name": "callHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3113,
"src": "4679:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4665:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3121,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4665:30:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3122,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4699:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "4665:35:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3139,
"nodeType": "IfStatement",
"src": "4661:151:25",
"trueBody": {
"id": 3138,
"nodeType": "Block",
"src": "4702:110:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3130,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3124,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4707:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3126,
"indexExpression": {
"argumentTypes": null,
"id": 3125,
"name": "callHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3113,
"src": "4721:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4707:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3127,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4733:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3129,
"indexExpression": {
"argumentTypes": null,
"id": 3128,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "4747:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4733:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "4707:57:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3131,
"nodeType": "ExpressionStatement",
"src": "4707:57:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3132,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "4769:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3134,
"indexExpression": {
"argumentTypes": null,
"id": 3133,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "4783:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4769:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3135,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3109,
"src": "4803:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "4769:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3137,
"nodeType": "ExpressionStatement",
"src": "4769:38:25"
}
]
}
}
]
},
"documentation": null,
"id": 3141,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "trackCalldataMock",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3110,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3109,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3141,
"src": "4592:17:25",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3108,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4592:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4591:19:25"
},
"payable": false,
"returnParameters": {
"id": 3111,
"nodeType": "ParameterList",
"parameters": [],
"src": "4619:0:25"
},
"scope": 4000,
"src": "4565:250:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3167,
"nodeType": "Block",
"src": "4870:161:25",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 3150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3146,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4878:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3148,
"indexExpression": {
"argumentTypes": null,
"id": 3147,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3143,
"src": "4892:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4878:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 3149,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4905:3:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "4878:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3166,
"nodeType": "IfStatement",
"src": "4874:154:25",
"trueBody": {
"id": 3165,
"nodeType": "Block",
"src": "4910:118:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3157,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3151,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4915:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3153,
"indexExpression": {
"argumentTypes": null,
"id": 3152,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3143,
"src": "4929:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4915:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3154,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4941:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3156,
"indexExpression": {
"argumentTypes": null,
"id": 3155,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4955:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4941:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4915:59:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3158,
"nodeType": "ExpressionStatement",
"src": "4915:59:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3163,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3159,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "4979:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3161,
"indexExpression": {
"argumentTypes": null,
"id": 3160,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "4993:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4979:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3162,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3143,
"src": "5015:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4979:44:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3164,
"nodeType": "ExpressionStatement",
"src": "4979:44:25"
}
]
}
}
]
},
"documentation": null,
"id": 3168,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "trackMethodIdMock",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3143,
"name": "methodId",
"nodeType": "VariableDeclaration",
"scope": 3168,
"src": "4845:15:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3142,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4845:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4844:17:25"
},
"payable": false,
"returnParameters": {
"id": 3145,
"nodeType": "ParameterList",
"parameters": [],
"src": "4870:0:25"
},
"scope": 4000,
"src": "4818:213:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3182,
"nodeType": "Block",
"src": "5084:76:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3173,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5088:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3174,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5107:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3175,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5107:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5088:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3177,
"nodeType": "ExpressionStatement",
"src": "5088:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3180,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3178,
"name": "fallbackExpectation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3085,
"src": "5126:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3179,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3170,
"src": "5148:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "5126:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3181,
"nodeType": "ExpressionStatement",
"src": "5126:30:25"
}
]
},
"documentation": null,
"id": 3183,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_givenAnyReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3171,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3170,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3183,
"src": "5059:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3169,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5059:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5058:16:25"
},
"payable": false,
"returnParameters": {
"id": 3172,
"nodeType": "ParameterList",
"parameters": [],
"src": "5084:0:25"
},
"scope": 4000,
"src": "5034:126:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3192,
"nodeType": "Block",
"src": "5212:33:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3189,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3185,
"src": "5232:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3188,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5216:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3190,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5216:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3191,
"nodeType": "ExpressionStatement",
"src": "5216:25:25"
}
]
},
"documentation": null,
"id": 3193,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3186,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3185,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3193,
"src": "5187:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3184,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5187:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5186:16:25"
},
"payable": false,
"returnParameters": {
"id": 3187,
"nodeType": "ParameterList",
"parameters": [],
"src": "5212:0:25"
},
"scope": 4000,
"src": "5163:82:25",
"stateMutability": "nonpayable",
"superFunction": 2882,
"visibility": "external"
},
{
"body": {
"id": 3211,
"nodeType": "Block",
"src": "5300:74:25",
"statements": [
{
"assignments": [
3199
],
"declarations": [
{
"constant": false,
"id": 3199,
"name": "flag",
"nodeType": "VariableDeclaration",
"scope": 3212,
"src": "5304:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3198,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "5304:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3204,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 3200,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3195,
"src": "5316:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3202,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5331:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"id": 3203,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "5316:16:25",
"trueExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3201,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5327:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5304:28:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3207,
"name": "flag",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3199,
"src": "5364:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3206,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "5352:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3208,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5352:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3205,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5336:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3209,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5336:34:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3210,
"nodeType": "ExpressionStatement",
"src": "5336:34:25"
}
]
},
"documentation": null,
"id": 3212,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3196,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3195,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3212,
"src": "5276:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3194,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5276:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5275:15:25"
},
"payable": false,
"returnParameters": {
"id": 3197,
"nodeType": "ParameterList",
"parameters": [],
"src": "5300:0:25"
},
"scope": 4000,
"src": "5248:126:25",
"stateMutability": "nonpayable",
"superFunction": 2887,
"visibility": "external"
},
{
"body": {
"id": 3223,
"nodeType": "Block",
"src": "5429:47:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3219,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3214,
"src": "5461:8:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3218,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "5449:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5449:21:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3217,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5433:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3221,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5433:38:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3222,
"nodeType": "ExpressionStatement",
"src": "5433:38:25"
}
]
},
"documentation": null,
"id": 3224,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3215,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3214,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3224,
"src": "5405:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3213,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "5405:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5404:15:25"
},
"payable": false,
"returnParameters": {
"id": 3216,
"nodeType": "ParameterList",
"parameters": [],
"src": "5429:0:25"
},
"scope": 4000,
"src": "5377:99:25",
"stateMutability": "nonpayable",
"superFunction": 2892,
"visibility": "external"
},
{
"body": {
"id": 3235,
"nodeType": "Block",
"src": "5537:49:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3231,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3226,
"src": "5572:8:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3230,
"name": "addressToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3844,
"src": "5557:14:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (address) pure returns (bytes memory)"
}
},
"id": 3232,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5557:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3229,
"name": "_givenAnyReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3183,
"src": "5541:15:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3233,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5541:41:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3234,
"nodeType": "ExpressionStatement",
"src": "5541:41:25"
}
]
},
"documentation": null,
"id": 3236,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3227,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3226,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3236,
"src": "5510:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3225,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5510:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5509:18:25"
},
"payable": false,
"returnParameters": {
"id": 3228,
"nodeType": "ParameterList",
"parameters": [],
"src": "5537:0:25"
},
"scope": 4000,
"src": "5479:107:25",
"stateMutability": "nonpayable",
"superFunction": 2897,
"visibility": "external"
},
{
"body": {
"id": 3248,
"nodeType": "Block",
"src": "5624:72:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3239,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5628:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3240,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5647:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3241,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5647:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5628:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3243,
"nodeType": "ExpressionStatement",
"src": "5628:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3246,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3244,
"name": "fallbackRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3087,
"src": "5666:21:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3245,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5690:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "5666:26:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3247,
"nodeType": "ExpressionStatement",
"src": "5666:26:25"
}
]
},
"documentation": null,
"id": 3249,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3237,
"nodeType": "ParameterList",
"parameters": [],
"src": "5612:2:25"
},
"payable": false,
"returnParameters": {
"id": 3238,
"nodeType": "ParameterList",
"parameters": [],
"src": "5624:0:25"
},
"scope": 4000,
"src": "5589:107:25",
"stateMutability": "nonpayable",
"superFunction": 2900,
"visibility": "external"
},
{
"body": {
"id": 3263,
"nodeType": "Block",
"src": "5759:77:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3257,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3254,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5763:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3255,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5782:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3256,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5782:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5763:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3258,
"nodeType": "ExpressionStatement",
"src": "5763:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3261,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3259,
"name": "fallbackRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3087,
"src": "5801:21:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3260,
"name": "message",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3251,
"src": "5825:7:25",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "5801:31:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3262,
"nodeType": "ExpressionStatement",
"src": "5801:31:25"
}
]
},
"documentation": null,
"id": 3264,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3252,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3251,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 3264,
"src": "5734:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 3250,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5734:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5733:16:25"
},
"payable": false,
"returnParameters": {
"id": 3253,
"nodeType": "ParameterList",
"parameters": [],
"src": "5759:0:25"
},
"scope": 4000,
"src": "5699:137:25",
"stateMutability": "nonpayable",
"superFunction": 2905,
"visibility": "external"
},
{
"body": {
"id": 3272,
"nodeType": "Block",
"src": "5879:44:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3270,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3267,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "5883:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3268,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "5902:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3269,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5902:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5883:36:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3271,
"nodeType": "ExpressionStatement",
"src": "5883:36:25"
}
]
},
"documentation": null,
"id": 3273,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenAnyRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3265,
"nodeType": "ParameterList",
"parameters": [],
"src": "5867:2:25"
},
"payable": false,
"returnParameters": {
"id": 3266,
"nodeType": "ParameterList",
"parameters": [],
"src": "5879:0:25"
},
"scope": 4000,
"src": "5839:84:25",
"stateMutability": "nonpayable",
"superFunction": 2908,
"visibility": "external"
},
{
"body": {
"id": 3297,
"nodeType": "Block",
"src": "5993:117:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3285,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3280,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "5997:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3282,
"indexExpression": {
"argumentTypes": null,
"id": 3281,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3275,
"src": "6015:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5997:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3283,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "6023:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3284,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6023:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "5997:41:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3286,
"nodeType": "ExpressionStatement",
"src": "5997:41:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3291,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3287,
"name": "calldataExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3053,
"src": "6042:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes memory => bytes storage ref)"
}
},
"id": 3289,
"indexExpression": {
"argumentTypes": null,
"id": 3288,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3275,
"src": "6063:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6042:26:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3290,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3277,
"src": "6071:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "6042:37:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3292,
"nodeType": "ExpressionStatement",
"src": "6042:37:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3294,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3275,
"src": "6101:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3293,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "6083:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6083:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3296,
"nodeType": "ExpressionStatement",
"src": "6083:23:25"
}
]
},
"documentation": null,
"id": 3298,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_givenCalldataReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3278,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3275,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3298,
"src": "5956:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3274,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5956:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3277,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3298,
"src": "5968:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3276,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5968:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5955:28:25"
},
"payable": false,
"returnParameters": {
"id": 3279,
"nodeType": "ParameterList",
"parameters": [],
"src": "5993:0:25"
},
"scope": 4000,
"src": "5926:184:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3310,
"nodeType": "Block",
"src": "6180:44:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3306,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3300,
"src": "6205:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"id": 3307,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3302,
"src": "6211:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3305,
"name": "_givenCalldataReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3298,
"src": "6184:20:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3308,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6184:36:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3309,
"nodeType": "ExpressionStatement",
"src": "6184:36:25"
}
]
},
"documentation": null,
"id": 3311,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3303,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3300,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3311,
"src": "6142:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3299,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6142:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3302,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3311,
"src": "6154:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3301,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6154:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6141:28:25"
},
"payable": false,
"returnParameters": {
"id": 3304,
"nodeType": "ParameterList",
"parameters": [],
"src": "6180:0:25"
},
"scope": 4000,
"src": "6113:111:25",
"stateMutability": "nonpayable",
"superFunction": 2960,
"visibility": "external"
},
{
"body": {
"id": 3332,
"nodeType": "Block",
"src": "6296:83:25",
"statements": [
{
"assignments": [
3319
],
"declarations": [
{
"constant": false,
"id": 3319,
"name": "flag",
"nodeType": "VariableDeclaration",
"scope": 3333,
"src": "6300:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3318,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6300:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3324,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 3320,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3315,
"src": "6312:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3322,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6327:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"id": 3323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "6312:16:25",
"trueExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3321,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6323:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6300:28:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3326,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3313,
"src": "6351:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3328,
"name": "flag",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3319,
"src": "6369:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3327,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "6357:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6357:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3325,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6332:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3330,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6332:43:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3331,
"nodeType": "ExpressionStatement",
"src": "6332:43:25"
}
]
},
"documentation": null,
"id": 3333,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3316,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3313,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3333,
"src": "6260:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3312,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6260:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3315,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3333,
"src": "6272:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3314,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6272:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6259:27:25"
},
"payable": false,
"returnParameters": {
"id": 3317,
"nodeType": "ParameterList",
"parameters": [],
"src": "6296:0:25"
},
"scope": 4000,
"src": "6227:152:25",
"stateMutability": "nonpayable",
"superFunction": 2967,
"visibility": "external"
},
{
"body": {
"id": 3347,
"nodeType": "Block",
"src": "6451:55:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3341,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3335,
"src": "6474:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3343,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3337,
"src": "6492:8:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3342,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "6480:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3344,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6480:21:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3340,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6455:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3345,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6455:47:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3346,
"nodeType": "ExpressionStatement",
"src": "6455:47:25"
}
]
},
"documentation": null,
"id": 3348,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3338,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3335,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3348,
"src": "6415:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3334,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6415:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3337,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3348,
"src": "6427:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3336,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6427:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6414:27:25"
},
"payable": false,
"returnParameters": {
"id": 3339,
"nodeType": "ParameterList",
"parameters": [],
"src": "6451:0:25"
},
"scope": 4000,
"src": "6382:124:25",
"stateMutability": "nonpayable",
"superFunction": 2974,
"visibility": "external"
},
{
"body": {
"id": 3362,
"nodeType": "Block",
"src": "6584:58:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3356,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3350,
"src": "6607:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3358,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3352,
"src": "6628:8:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3357,
"name": "addressToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3844,
"src": "6613:14:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (address) pure returns (bytes memory)"
}
},
"id": 3359,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6613:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3355,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6588:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6588:50:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3361,
"nodeType": "ExpressionStatement",
"src": "6588:50:25"
}
]
},
"documentation": null,
"id": 3363,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3353,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3350,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3363,
"src": "6545:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3349,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6545:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3352,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3363,
"src": "6557:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3351,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6557:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6544:30:25"
},
"payable": false,
"returnParameters": {
"id": 3354,
"nodeType": "ParameterList",
"parameters": [],
"src": "6584:0:25"
},
"scope": 4000,
"src": "6509:133:25",
"stateMutability": "nonpayable",
"superFunction": 2981,
"visibility": "external"
},
{
"body": {
"id": 3393,
"nodeType": "Block",
"src": "6709:164:25",
"statements": [
{
"assignments": [
3371
],
"declarations": [
{
"constant": false,
"id": 3371,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3394,
"src": "6713:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3370,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "6713:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3375,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3373,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3365,
"src": "6743:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3372,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "6729:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3374,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6729:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6713:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3381,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3376,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "6752:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3378,
"indexExpression": {
"argumentTypes": null,
"id": 3377,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3371,
"src": "6770:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6752:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3379,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "6780:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3380,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6780:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "6752:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3382,
"nodeType": "ExpressionStatement",
"src": "6752:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3387,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3383,
"name": "methodIdExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3073,
"src": "6799:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes storage ref)"
}
},
"id": 3385,
"indexExpression": {
"argumentTypes": null,
"id": 3384,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3371,
"src": "6820:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6799:28:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3386,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3367,
"src": "6830:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"src": "6799:39:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3388,
"nodeType": "ExpressionStatement",
"src": "6799:39:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3390,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3371,
"src": "6860:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3389,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "6842:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6842:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3392,
"nodeType": "ExpressionStatement",
"src": "6842:25:25"
}
]
},
"documentation": null,
"id": 3394,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_givenMethodReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3368,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3365,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3394,
"src": "6673:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3364,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6673:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3367,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3394,
"src": "6685:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3366,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6685:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6672:28:25"
},
"payable": false,
"returnParameters": {
"id": 3369,
"nodeType": "ParameterList",
"parameters": [],
"src": "6709:0:25"
},
"scope": 4000,
"src": "6645:228:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3406,
"nodeType": "Block",
"src": "6940:42:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3402,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3396,
"src": "6963:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"id": 3403,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3398,
"src": "6969:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3401,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "6944:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3404,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6944:34:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3405,
"nodeType": "ExpressionStatement",
"src": "6944:34:25"
}
]
},
"documentation": null,
"id": 3407,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3399,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3396,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3407,
"src": "6903:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3395,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6903:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3398,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3407,
"src": "6915:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3397,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6915:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6902:28:25"
},
"payable": false,
"returnParameters": {
"id": 3400,
"nodeType": "ParameterList",
"parameters": [],
"src": "6940:0:25"
},
"scope": 4000,
"src": "6876:106:25",
"stateMutability": "nonpayable",
"superFunction": 2915,
"visibility": "external"
},
{
"body": {
"id": 3428,
"nodeType": "Block",
"src": "7052:83:25",
"statements": [
{
"assignments": [
3415
],
"declarations": [
{
"constant": false,
"id": 3415,
"name": "flag",
"nodeType": "VariableDeclaration",
"scope": 3429,
"src": "7056:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3414,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7056:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3420,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 3416,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3411,
"src": "7068:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3418,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7083:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"id": 3419,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "7068:16:25",
"trueExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 3417,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7079:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7056:28:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3422,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3409,
"src": "7107:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3424,
"name": "flag",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3415,
"src": "7125:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3423,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "7113:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3425,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7113:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3421,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "7088:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3426,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7088:43:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3427,
"nodeType": "ExpressionStatement",
"src": "7088:43:25"
}
]
},
"documentation": null,
"id": 3429,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3412,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3409,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3429,
"src": "7016:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3408,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7016:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3411,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3429,
"src": "7028:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3410,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7028:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7015:27:25"
},
"payable": false,
"returnParameters": {
"id": 3413,
"nodeType": "ParameterList",
"parameters": [],
"src": "7052:0:25"
},
"scope": 4000,
"src": "6985:150:25",
"stateMutability": "nonpayable",
"superFunction": 2922,
"visibility": "external"
},
{
"body": {
"id": 3443,
"nodeType": "Block",
"src": "7205:55:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3437,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3431,
"src": "7228:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3439,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3433,
"src": "7246:8:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3438,
"name": "uintToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3860,
"src": "7234:11:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
}
},
"id": 3440,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7234:21:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3436,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "7209:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3441,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7209:47:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3442,
"nodeType": "ExpressionStatement",
"src": "7209:47:25"
}
]
},
"documentation": null,
"id": 3444,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnUint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3434,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3431,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3444,
"src": "7169:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3430,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7169:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3433,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3444,
"src": "7181:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3432,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "7181:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7168:27:25"
},
"payable": false,
"returnParameters": {
"id": 3435,
"nodeType": "ParameterList",
"parameters": [],
"src": "7205:0:25"
},
"scope": 4000,
"src": "7138:122:25",
"stateMutability": "nonpayable",
"superFunction": 2929,
"visibility": "external"
},
{
"body": {
"id": 3458,
"nodeType": "Block",
"src": "7336:58:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3452,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3446,
"src": "7359:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3454,
"name": "response",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3448,
"src": "7380:8:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3453,
"name": "addressToBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3844,
"src": "7365:14:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (address) pure returns (bytes memory)"
}
},
"id": 3455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7365:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3451,
"name": "_givenMethodReturn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3394,
"src": "7340:18:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 3456,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7340:50:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3457,
"nodeType": "ExpressionStatement",
"src": "7340:50:25"
}
]
},
"documentation": null,
"id": 3459,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodReturnAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3449,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3446,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3459,
"src": "7297:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3445,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7297:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3448,
"name": "response",
"nodeType": "VariableDeclaration",
"scope": 3459,
"src": "7309:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3447,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7309:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7296:30:25"
},
"payable": false,
"returnParameters": {
"id": 3450,
"nodeType": "ParameterList",
"parameters": [],
"src": "7336:0:25"
},
"scope": 4000,
"src": "7263:131:25",
"stateMutability": "nonpayable",
"superFunction": 2936,
"visibility": "external"
},
{
"body": {
"id": 3481,
"nodeType": "Block",
"src": "7447:112:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3469,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3464,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "7451:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3466,
"indexExpression": {
"argumentTypes": null,
"id": 3465,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3461,
"src": "7469:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7451:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3467,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "7477:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3468,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7477:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "7451:41:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3470,
"nodeType": "ExpressionStatement",
"src": "7451:41:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3475,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3471,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "7496:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3473,
"indexExpression": {
"argumentTypes": null,
"id": 3472,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3461,
"src": "7518:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7496:27:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3474,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7526:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "7496:32:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3476,
"nodeType": "ExpressionStatement",
"src": "7496:32:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3478,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3461,
"src": "7550:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3477,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "7532:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3479,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7532:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3480,
"nodeType": "ExpressionStatement",
"src": "7532:23:25"
}
]
},
"documentation": null,
"id": 3482,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3462,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3461,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3482,
"src": "7426:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3460,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7426:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7425:12:25"
},
"payable": false,
"returnParameters": {
"id": 3463,
"nodeType": "ParameterList",
"parameters": [],
"src": "7447:0:25"
},
"scope": 4000,
"src": "7397:162:25",
"stateMutability": "nonpayable",
"superFunction": 2986,
"visibility": "external"
},
{
"body": {
"id": 3504,
"nodeType": "Block",
"src": "7610:121:25",
"statements": [
{
"assignments": [
3488
],
"declarations": [
{
"constant": false,
"id": 3488,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3505,
"src": "7614:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3487,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "7614:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3492,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3490,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3484,
"src": "7644:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3489,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "7630:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3491,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7630:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7614:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3498,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3493,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "7653:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3495,
"indexExpression": {
"argumentTypes": null,
"id": 3494,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3488,
"src": "7671:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7653:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3496,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "7681:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3497,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7681:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "7653:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3499,
"nodeType": "ExpressionStatement",
"src": "7653:43:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3501,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3488,
"src": "7718:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3500,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "7700:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7700:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3503,
"nodeType": "ExpressionStatement",
"src": "7700:25:25"
}
]
},
"documentation": null,
"id": 3505,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3485,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3484,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3505,
"src": "7589:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3483,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7589:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7588:12:25"
},
"payable": false,
"returnParameters": {
"id": 3486,
"nodeType": "ParameterList",
"parameters": [],
"src": "7610:0:25"
},
"scope": 4000,
"src": "7562:169:25",
"stateMutability": "nonpayable",
"superFunction": 2941,
"visibility": "external"
},
{
"body": {
"id": 3529,
"nodeType": "Block",
"src": "7811:117:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3517,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3512,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "7815:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3514,
"indexExpression": {
"argumentTypes": null,
"id": 3513,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "7833:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7815:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3515,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "7841:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3516,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7841:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "7815:41:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3518,
"nodeType": "ExpressionStatement",
"src": "7815:41:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3523,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3519,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "7860:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3521,
"indexExpression": {
"argumentTypes": null,
"id": 3520,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "7882:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7860:27:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3522,
"name": "message",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3509,
"src": "7890:7:25",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "7860:37:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3524,
"nodeType": "ExpressionStatement",
"src": "7860:37:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3526,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "7919:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3525,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "7901:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3527,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7901:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3528,
"nodeType": "ExpressionStatement",
"src": "7901:23:25"
}
]
},
"documentation": null,
"id": 3530,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3510,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3507,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3530,
"src": "7774:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3506,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7774:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3509,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 3530,
"src": "7786:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 3508,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7786:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7773:28:25"
},
"payable": false,
"returnParameters": {
"id": 3511,
"nodeType": "ParameterList",
"parameters": [],
"src": "7811:0:25"
},
"scope": 4000,
"src": "7734:194:25",
"stateMutability": "nonpayable",
"superFunction": 2993,
"visibility": "external"
},
{
"body": {
"id": 3560,
"nodeType": "Block",
"src": "8006:165:25",
"statements": [
{
"assignments": [
3538
],
"declarations": [
{
"constant": false,
"id": 3538,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3561,
"src": "8010:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3537,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "8010:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3542,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3540,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3532,
"src": "8040:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3539,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "8026:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3541,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8026:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8010:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3543,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "8049:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3545,
"indexExpression": {
"argumentTypes": null,
"id": 3544,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3538,
"src": "8067:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8049:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3546,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "8077:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3547,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8077:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "8049:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3549,
"nodeType": "ExpressionStatement",
"src": "8049:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3554,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3550,
"name": "methodIdRevertMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3077,
"src": "8096:22:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string storage ref)"
}
},
"id": 3552,
"indexExpression": {
"argumentTypes": null,
"id": 3551,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3538,
"src": "8119:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8096:30:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3553,
"name": "message",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3534,
"src": "8129:7:25",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "8096:40:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3555,
"nodeType": "ExpressionStatement",
"src": "8096:40:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3557,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3538,
"src": "8158:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3556,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "8140:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8140:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3559,
"nodeType": "ExpressionStatement",
"src": "8140:25:25"
}
]
},
"documentation": null,
"id": 3561,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRevertWithMessage",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3535,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3532,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3561,
"src": "7969:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3531,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7969:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3534,
"name": "message",
"nodeType": "VariableDeclaration",
"scope": 3561,
"src": "7981:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 3533,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7981:6:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7968:28:25"
},
"payable": false,
"returnParameters": {
"id": 3536,
"nodeType": "ParameterList",
"parameters": [],
"src": "8006:0:25"
},
"scope": 4000,
"src": "7931:240:25",
"stateMutability": "nonpayable",
"superFunction": 2948,
"visibility": "external"
},
{
"body": {
"id": 3577,
"nodeType": "Block",
"src": "8229:78:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3571,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3566,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "8233:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3568,
"indexExpression": {
"argumentTypes": null,
"id": 3567,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3563,
"src": "8251:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8233:23:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3569,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "8259:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3570,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8259:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "8233:43:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3572,
"nodeType": "ExpressionStatement",
"src": "8233:43:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3574,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3563,
"src": "8298:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3573,
"name": "trackCalldataMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3141,
"src": "8280:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
"id": 3575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8280:23:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3576,
"nodeType": "ExpressionStatement",
"src": "8280:23:25"
}
]
},
"documentation": null,
"id": 3578,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenCalldataRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3564,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3563,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3578,
"src": "8208:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3562,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8208:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8207:12:25"
},
"payable": false,
"returnParameters": {
"id": 3565,
"nodeType": "ParameterList",
"parameters": [],
"src": "8229:0:25"
},
"scope": 4000,
"src": "8174:133:25",
"stateMutability": "nonpayable",
"superFunction": 2998,
"visibility": "external"
},
{
"body": {
"id": 3600,
"nodeType": "Block",
"src": "8363:122:25",
"statements": [
{
"assignments": [
3584
],
"declarations": [
{
"constant": false,
"id": 3584,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "8367:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3583,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "8367:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3588,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3586,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3580,
"src": "8397:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3585,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "8383:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3587,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8383:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8367:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3589,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "8406:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3591,
"indexExpression": {
"argumentTypes": null,
"id": 3590,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3584,
"src": "8424:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8406:25:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3592,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "8434:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3593,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8434:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "8406:45:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3595,
"nodeType": "ExpressionStatement",
"src": "8406:45:25"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3597,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3584,
"src": "8473:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 3596,
"name": "trackMethodIdMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3168,
"src": "8455:17:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 3598,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8455:25:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3599,
"nodeType": "ExpressionStatement",
"src": "8455:25:25"
}
]
},
"documentation": null,
"id": 3601,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "givenMethodRunOutOfGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3581,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3580,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3601,
"src": "8342:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3579,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8342:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8341:12:25"
},
"payable": false,
"returnParameters": {
"id": 3582,
"nodeType": "ParameterList",
"parameters": [],
"src": "8363:0:25"
},
"scope": 4000,
"src": "8310:175:25",
"stateMutability": "nonpayable",
"superFunction": 2953,
"visibility": "external"
},
{
"body": {
"id": 3608,
"nodeType": "Block",
"src": "8539:26:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3606,
"name": "invocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3089,
"src": "8550:11:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3605,
"id": 3607,
"nodeType": "Return",
"src": "8543:18:25"
}
]
},
"documentation": null,
"id": 3609,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCount",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3602,
"nodeType": "ParameterList",
"parameters": [],
"src": "8512:2:25"
},
"payable": false,
"returnParameters": {
"id": 3605,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3604,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3609,
"src": "8533:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3603,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8533:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8532:6:25"
},
"scope": 4000,
"src": "8488:77:25",
"stateMutability": "nonpayable",
"superFunction": 3003,
"visibility": "external"
},
{
"body": {
"id": 3632,
"nodeType": "Block",
"src": "8638:122:25",
"statements": [
{
"assignments": [
3617
],
"declarations": [
{
"constant": false,
"id": 3617,
"name": "method",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "8642:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3616,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "8642:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3621,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3619,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3611,
"src": "8672:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"id": 3618,
"name": "bytesToBytes4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3835,
"src": "8658:13:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (bytes memory) pure returns (bytes4)"
}
},
"id": 3620,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8658:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8642:35:25"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3622,
"name": "methodIdInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3081,
"src": "8688:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3630,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3626,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "8735:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3627,
"name": "method",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3617,
"src": "8747:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"argumentTypes": null,
"id": 3624,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "8718:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3625,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8718:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3628,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8718:36:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3623,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "8708:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8708:47:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8688:68:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3615,
"id": 3631,
"nodeType": "Return",
"src": "8681:75:25"
}
]
},
"documentation": null,
"id": 3633,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForMethod",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3612,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3611,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "8602:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3610,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8602:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8601:12:25"
},
"payable": false,
"returnParameters": {
"id": 3615,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3614,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3633,
"src": "8632:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3613,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8632:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8631:6:25"
},
"scope": 4000,
"src": "8568:192:25",
"stateMutability": "nonpayable",
"superFunction": 3010,
"visibility": "external"
},
{
"body": {
"id": 3650,
"nodeType": "Block",
"src": "8835:81:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3640,
"name": "calldataInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3061,
"src": "8846:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3648,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3644,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "8893:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3645,
"name": "call",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3635,
"src": "8905:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"expression": {
"argumentTypes": null,
"id": 3642,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "8876:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3643,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8876:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8876:34:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3641,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "8866:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8866:45:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8846:66:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3639,
"id": 3649,
"nodeType": "Return",
"src": "8839:73:25"
}
]
},
"documentation": null,
"id": 3651,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "invocationCountForCalldata",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3636,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3635,
"name": "call",
"nodeType": "VariableDeclaration",
"scope": 3651,
"src": "8799:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3634,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8799:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8798:12:25"
},
"payable": false,
"returnParameters": {
"id": 3639,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3638,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3651,
"src": "8829:4:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3637,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "8829:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8828:6:25"
},
"scope": 4000,
"src": "8763:153:25",
"stateMutability": "nonpayable",
"superFunction": 3017,
"visibility": "external"
},
{
"body": {
"id": 3783,
"nodeType": "Block",
"src": "8945:1265:25",
"statements": [
{
"assignments": [
3655
],
"declarations": [
{
"constant": false,
"id": 3655,
"name": "nextMock",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "8984:21:25",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3654,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8984:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3659,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3656,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9008:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3658,
"indexExpression": {
"argumentTypes": null,
"id": 3657,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "9022:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9008:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8984:55:25"
},
{
"assignments": [
3661
],
"declarations": [
{
"constant": false,
"id": 3661,
"name": "mockHash",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "9043:16:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3660,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9043:7:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3665,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3663,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9072:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3662,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "9062:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3664,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "9062:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9043:38:25"
},
{
"body": {
"id": 3706,
"nodeType": "Block",
"src": "9153:355:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3674,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3669,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "9184:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3671,
"indexExpression": {
"argumentTypes": null,
"id": 3670,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9202:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9184:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3672,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "9214:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3673,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "9214:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "9184:45:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3675,
"nodeType": "ExpressionStatement",
"src": "9184:45:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3680,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3676,
"name": "calldataExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3053,
"src": "9234:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes memory => bytes storage ref)"
}
},
"id": 3678,
"indexExpression": {
"argumentTypes": null,
"id": 3677,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9255:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9234:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3679,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9267:5:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9234:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3681,
"nodeType": "ExpressionStatement",
"src": "9234:38:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3686,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3682,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "9277:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3684,
"indexExpression": {
"argumentTypes": null,
"id": 3683,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9299:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9277:31:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3685,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9311:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9277:36:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3687,
"nodeType": "ExpressionStatement",
"src": "9277:36:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3692,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3688,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9348:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3689,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9359:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3691,
"indexExpression": {
"argumentTypes": null,
"id": 3690,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9373:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9359:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "9348:34:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3693,
"nodeType": "ExpressionStatement",
"src": "9348:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3698,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3694,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9417:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3696,
"indexExpression": {
"argumentTypes": null,
"id": 3695,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9431:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9417:23:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3697,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9443:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9417:28:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3699,
"nodeType": "ExpressionStatement",
"src": "9417:28:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3704,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3700,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9473:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3702,
"name": "nextMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3655,
"src": "9494:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3701,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "9484:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3703,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "9484:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9473:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3705,
"nodeType": "ExpressionStatement",
"src": "9473:30:25"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3666,
"name": "mockHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3661,
"src": "9120:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"id": 3667,
"name": "MOCKS_LIST_END_HASH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3038,
"src": "9132:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9120:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3707,
"nodeType": "WhileStatement",
"src": "9114:394:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3712,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3708,
"name": "calldataMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3045,
"src": "9527:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
"typeString": "mapping(bytes32 => bytes storage ref)"
}
},
"id": 3710,
"indexExpression": {
"argumentTypes": null,
"id": 3709,
"name": "MOCKS_LIST_START",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3030,
"src": "9541:16:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9527:31:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3711,
"name": "MOCKS_LIST_END",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3033,
"src": "9561:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"src": "9527:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3713,
"nodeType": "ExpressionStatement",
"src": "9527:48:25"
},
{
"assignments": [
3715
],
"declarations": [
{
"constant": false,
"id": 3715,
"name": "nextAnyMock",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "9613:18:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3714,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "9613:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3719,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3716,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "9634:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3718,
"indexExpression": {
"argumentTypes": null,
"id": 3717,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "9648:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9634:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9613:54:25"
},
{
"body": {
"id": 3758,
"nodeType": "Block",
"src": "9712:316:25",
"statements": [
{
"assignments": [
3724
],
"declarations": [
{
"constant": false,
"id": 3724,
"name": "currentAnyMock",
"nodeType": "VariableDeclaration",
"scope": 3784,
"src": "9717:21:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3723,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "9717:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3726,
"initialValue": {
"argumentTypes": null,
"id": 3725,
"name": "nextAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3715,
"src": "9741:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9717:35:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3732,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3727,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "9757:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3729,
"indexExpression": {
"argumentTypes": null,
"id": 3728,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9775:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9757:33:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3730,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "9793:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3731,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "9793:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "9757:51:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3733,
"nodeType": "ExpressionStatement",
"src": "9757:51:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3738,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3734,
"name": "methodIdExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3073,
"src": "9813:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes storage ref)"
}
},
"id": 3736,
"indexExpression": {
"argumentTypes": null,
"id": 3735,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9834:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9813:36:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3737,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9852:5:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9813:44:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3739,
"nodeType": "ExpressionStatement",
"src": "9813:44:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3744,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3740,
"name": "methodIdRevertMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3077,
"src": "9862:22:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string storage ref)"
}
},
"id": 3742,
"indexExpression": {
"argumentTypes": null,
"id": 3741,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9885:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9862:38:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3743,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9903:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "9862:43:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 3745,
"nodeType": "ExpressionStatement",
"src": "9862:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3746,
"name": "nextAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3715,
"src": "9910:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3747,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "9924:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3749,
"indexExpression": {
"argumentTypes": null,
"id": 3748,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "9938:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9924:29:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "9910:43:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3751,
"nodeType": "ExpressionStatement",
"src": "9910:43:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3756,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3752,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "9988:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3754,
"indexExpression": {
"argumentTypes": null,
"id": 3753,
"name": "currentAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3724,
"src": "10002:14:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "9988:29:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "307830",
"id": 3755,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10020:3:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "9988:35:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3757,
"nodeType": "ExpressionStatement",
"src": "9988:35:25"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 3722,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3720,
"name": "nextAnyMock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3715,
"src": "9677:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"id": 3721,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "9692:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "9677:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3759,
"nodeType": "WhileStatement",
"src": "9671:357:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3764,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3760,
"name": "methodIdMocks",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3065,
"src": "10047:13:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$",
"typeString": "mapping(bytes4 => bytes4)"
}
},
"id": 3762,
"indexExpression": {
"argumentTypes": null,
"id": 3761,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "10061:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "10047:33:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3763,
"name": "SENTINEL_ANY_MOCKS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "10083:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "10047:54:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3765,
"nodeType": "ExpressionStatement",
"src": "10047:54:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3766,
"name": "fallbackExpectation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3085,
"src": "10106:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "",
"id": 3767,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10128:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"src": "10106:24:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 3769,
"nodeType": "ExpressionStatement",
"src": "10106:24:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3770,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "10134:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3771,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "10153:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3772,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Return",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "10153:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "10134:34:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"id": 3774,
"nodeType": "ExpressionStatement",
"src": "10134:34:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3777,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3775,
"name": "invocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3089,
"src": "10172:11:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 3776,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10186:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "10172:15:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3778,
"nodeType": "ExpressionStatement",
"src": "10172:15:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3781,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3779,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "10191:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3780,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10205:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "10191:15:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3782,
"nodeType": "ExpressionStatement",
"src": "10191:15:25"
}
]
},
"documentation": null,
"id": 3784,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "reset",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3652,
"nodeType": "ParameterList",
"parameters": [],
"src": "8933:2:25"
},
"payable": false,
"returnParameters": {
"id": 3653,
"nodeType": "ParameterList",
"parameters": [],
"src": "8945:0:25"
},
"scope": 4000,
"src": "8919:1291:25",
"stateMutability": "nonpayable",
"superFunction": 3020,
"visibility": "external"
},
{
"body": {
"id": 3794,
"nodeType": "Block",
"src": "10242:157:25",
"statements": [
{
"body": {
"id": 3792,
"nodeType": "Block",
"src": "10258:138:25",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 3789,
"name": "s",
"nodeType": "VariableDeclaration",
"scope": 3795,
"src": "10263:6:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3788,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "10263:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3790,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "10263:6:25"
},
{
"externalReferences": [
{
"s": {
"declaration": 3789,
"isOffset": false,
"isSlot": false,
"src": "10334:1:25",
"valueSize": 1
}
}
],
"id": 3791,
"nodeType": "InlineAssembly",
"operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}",
"src": "10274:122:25"
}
]
},
"condition": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3787,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10252:4:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"id": 3793,
"nodeType": "WhileStatement",
"src": "10246:150:25"
}
]
},
"documentation": null,
"id": 3795,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "useAllGas",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3785,
"nodeType": "ParameterList",
"parameters": [],
"src": "10231:2:25"
},
"payable": false,
"returnParameters": {
"id": 3786,
"nodeType": "ParameterList",
"parameters": [],
"src": "10242:0:25"
},
"scope": 4000,
"src": "10213:186:25",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3834,
"nodeType": "Block",
"src": "10464:122:25",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 3803,
"name": "out",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10470:10:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3802,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "10470:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3804,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "10470:10:25"
},
{
"body": {
"id": 3830,
"nodeType": "Block",
"src": "10515:52:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3828,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3815,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3803,
"src": "10523:3:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 3827,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 3821,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3817,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3797,
"src": "10537:1:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3819,
"indexExpression": {
"argumentTypes": null,
"id": 3818,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10539:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "10537:4:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30784646",
"id": 3820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10544:4:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "10537:11:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 3816,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "10530:6:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes4_$",
"typeString": "type(bytes4)"
},
"typeName": "bytes4"
},
"id": 3822,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "10530:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3825,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3823,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10554:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "38",
"id": 3824,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10558:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "10554:5:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 3826,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "10553:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "10530:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "10523:37:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 3829,
"nodeType": "ExpressionStatement",
"src": "10523:37:25"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3809,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10503:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"hexValue": "34",
"id": 3810,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10507:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
},
"src": "10503:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3831,
"initializationExpression": {
"assignments": [
3806
],
"declarations": [
{
"constant": false,
"id": 3806,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10491:6:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3805,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "10491:4:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3808,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 3807,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10500:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "10491:10:25"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 3813,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "10510:3:25",
"subExpression": {
"argumentTypes": null,
"id": 3812,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3806,
"src": "10510:1:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3814,
"nodeType": "ExpressionStatement",
"src": "10510:3:25"
},
"nodeType": "ForStatement",
"src": "10486:81:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3832,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3803,
"src": "10579:3:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 3801,
"id": 3833,
"nodeType": "Return",
"src": "10572:10:25"
}
]
},
"documentation": null,
"id": 3835,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "bytesToBytes4",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3798,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3797,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10425:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3796,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10425:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10424:9:25"
},
"payable": false,
"returnParameters": {
"id": 3801,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3800,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3835,
"src": "10456:6:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3799,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "10456:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10455:8:25"
},
"scope": 4000,
"src": "10402:184:25",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3843,
"nodeType": "Block",
"src": "10654:189:25",
"statements": [
{
"externalReferences": [
{
"b": {
"declaration": 3840,
"isOffset": false,
"isSlot": false,
"src": "10827:1:25",
"valueSize": 1
}
},
{
"a": {
"declaration": 3837,
"isOffset": false,
"isSlot": false,
"src": "10780:1:25",
"valueSize": 1
}
}
],
"id": 3842,
"nodeType": "InlineAssembly",
"operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}",
"src": "10661:182:25"
}
]
},
"documentation": null,
"id": 3844,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "addressToBytes",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3838,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3837,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 3844,
"src": "10613:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3836,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10613:7:25",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10612:11:25"
},
"payable": false,
"returnParameters": {
"id": 3841,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3840,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3844,
"src": "10646:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3839,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10646:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10645:9:25"
},
"scope": 4000,
"src": "10589:254:25",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3859,
"nodeType": "Block",
"src": "10909:68:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3856,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3851,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3849,
"src": "10916:1:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "3332",
"id": 3854,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10930:2:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
}
],
"id": 3853,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "10920:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 3852,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10924:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 3855,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "10920:13:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"src": "10916:17:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3857,
"nodeType": "ExpressionStatement",
"src": "10916:17:25"
},
{
"externalReferences": [
{
"x": {
"declaration": 3846,
"isOffset": false,
"isSlot": false,
"src": "10970:1:25",
"valueSize": 1
}
},
{
"b": {
"declaration": 3849,
"isOffset": false,
"isSlot": false,
"src": "10962:1:25",
"valueSize": 1
}
}
],
"id": 3858,
"nodeType": "InlineAssembly",
"operations": "{\n mstore(add(b, 32), x)\n}",
"src": "10940:37:25"
}
]
},
"documentation": null,
"id": 3860,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "uintToBytes",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3847,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3846,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 3860,
"src": "10867:9:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3845,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10867:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10866:11:25"
},
"payable": false,
"returnParameters": {
"id": 3850,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3849,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 3860,
"src": "10900:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3848,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "10900:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10899:9:25"
},
"scope": 4000,
"src": "10846:131:25",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
},
{
"body": {
"id": 3998,
"nodeType": "Block",
"src": "11008:1178:25",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 3864,
"name": "methodId",
"nodeType": "VariableDeclaration",
"scope": 3999,
"src": "11012:15:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3863,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "11012:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3865,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "11012:15:25"
},
{
"externalReferences": [
{
"methodId": {
"declaration": 3864,
"isOffset": false,
"isSlot": false,
"src": "11045:8:25",
"valueSize": 1
}
}
],
"id": 3866,
"nodeType": "InlineAssembly",
"operations": "{\n methodId := calldataload(0)\n}",
"src": "11031:94:25"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3873,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3867,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "11127:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3870,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3868,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11145:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11145:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11127:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3871,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11158:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3872,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11158:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11127:46:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3882,
"nodeType": "IfStatement",
"src": "11123:101:25",
"trueBody": {
"id": 3881,
"nodeType": "Block",
"src": "11175:49:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3875,
"name": "calldataRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3057,
"src": "11187:21:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$",
"typeString": "mapping(bytes memory => string storage ref)"
}
},
"id": 3878,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3876,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11209:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3877,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11209:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11187:31:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 3874,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4020,
4021
],
"referencedDeclaration": 4021,
"src": "11180:6:25",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 3879,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11180:39:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3880,
"nodeType": "ExpressionStatement",
"src": "11180:39:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3883,
"name": "calldataMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3049,
"src": "11231:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes memory => enum MockContract.MockType)"
}
},
"id": 3886,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3884,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11249:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3885,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11249:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11231:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3887,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11262:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3888,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11262:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11231:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3894,
"nodeType": "IfStatement",
"src": "11227:75:25",
"trueBody": {
"id": 3893,
"nodeType": "Block",
"src": "11281:21:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3890,
"name": "useAllGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3795,
"src": "11286:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3891,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11286:11:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3892,
"nodeType": "ExpressionStatement",
"src": "11286:11:25"
}
]
}
},
{
"assignments": [
3896
],
"declarations": [
{
"constant": false,
"id": 3896,
"name": "result",
"nodeType": "VariableDeclaration",
"scope": 3999,
"src": "11305:19:25",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3895,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11305:5:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3901,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3897,
"name": "calldataExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3053,
"src": "11327:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$",
"typeString": "mapping(bytes memory => bytes storage ref)"
}
},
"id": 3900,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3898,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "11348:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11348:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11327:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11305:52:25"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3905,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3902,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11402:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3903,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11402:13:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3904,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11419:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "11402:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3938,
"nodeType": "IfStatement",
"src": "11398:262:25",
"trueBody": {
"id": 3937,
"nodeType": "Block",
"src": "11422:238:25",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3911,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3906,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "11431:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3908,
"indexExpression": {
"argumentTypes": null,
"id": 3907,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11449:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11431:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3909,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11462:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3910,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11462:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11431:46:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3919,
"nodeType": "IfStatement",
"src": "11427:104:25",
"trueBody": {
"id": 3918,
"nodeType": "Block",
"src": "11479:52:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3913,
"name": "methodIdRevertMessages",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3077,
"src": "11492:22:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$",
"typeString": "mapping(bytes4 => string storage ref)"
}
},
"id": 3915,
"indexExpression": {
"argumentTypes": null,
"id": 3914,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11515:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11492:32:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 3912,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4020,
4021
],
"referencedDeclaration": 4021,
"src": "11485:6:25",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 3916,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11485:40:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3917,
"nodeType": "ExpressionStatement",
"src": "11485:40:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3925,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3920,
"name": "methodIdMockTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3069,
"src": "11539:17:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$",
"typeString": "mapping(bytes4 => enum MockContract.MockType)"
}
},
"id": 3922,
"indexExpression": {
"argumentTypes": null,
"id": 3921,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11557:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11539:27:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3923,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11570:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3924,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11570:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11539:48:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3930,
"nodeType": "IfStatement",
"src": "11535:77:25",
"trueBody": {
"id": 3929,
"nodeType": "Block",
"src": "11589:23:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3926,
"name": "useAllGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3795,
"src": "11595:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11595:11:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3928,
"nodeType": "ExpressionStatement",
"src": "11595:11:25"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3935,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3931,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11616:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3932,
"name": "methodIdExpectations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3073,
"src": "11625:20:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$",
"typeString": "mapping(bytes4 => bytes storage ref)"
}
},
"id": 3934,
"indexExpression": {
"argumentTypes": null,
"id": 3933,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "11646:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11625:30:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "11616:39:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3936,
"nodeType": "ExpressionStatement",
"src": "11616:39:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3942,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3939,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11705:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3940,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11705:13:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3941,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11722:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "11705:18:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3967,
"nodeType": "IfStatement",
"src": "11701:218:25",
"trueBody": {
"id": 3966,
"nodeType": "Block",
"src": "11725:194:25",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3943,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "11734:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3944,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11754:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3945,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "Revert",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11754:15:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11734:35:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3952,
"nodeType": "IfStatement",
"src": "11730:82:25",
"trueBody": {
"id": 3951,
"nodeType": "Block",
"src": "11771:41:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3948,
"name": "fallbackRevertMessage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3087,
"src": "11784:21:25",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 3947,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4020,
4021
],
"referencedDeclaration": 4021,
"src": "11777:6:25",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 3949,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11777:29:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3950,
"nodeType": "ExpressionStatement",
"src": "11777:29:25"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
},
"id": 3956,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3953,
"name": "fallbackMockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3083,
"src": "11820:16:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3954,
"name": "MockType",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3027,
"src": "11840:8:25",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_enum$_MockType_$3027_$",
"typeString": "type(enum MockContract.MockType)"
}
},
"id": 3955,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "OutOfGas",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11840:17:25",
"typeDescriptions": {
"typeIdentifier": "t_enum$_MockType_$3027",
"typeString": "enum MockContract.MockType"
}
},
"src": "11820:37:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3961,
"nodeType": "IfStatement",
"src": "11816:66:25",
"trueBody": {
"id": 3960,
"nodeType": "Block",
"src": "11859:23:25",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3957,
"name": "useAllGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3795,
"src": "11865:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3958,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11865:11:25",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3959,
"nodeType": "ExpressionStatement",
"src": "11865:11:25"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3964,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3962,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3896,
"src": "11886:6:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3963,
"name": "fallbackExpectation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3085,
"src": "11895:19:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"src": "11886:28:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3965,
"nodeType": "ExpressionStatement",
"src": "11886:28:25"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 3970,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3968,
"name": "invocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3089,
"src": "11946:11:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3969,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11961:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "11946:16:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3971,
"nodeType": "ExpressionStatement",
"src": "11946:16:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3982,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3972,
"name": "methodIdInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3081,
"src": "11966:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3980,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3976,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "12013:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 3977,
"name": "methodId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3864,
"src": "12025:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"argumentTypes": null,
"id": 3974,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "11996:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3975,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "11996:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3978,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11996:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3973,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "11986:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3979,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11986:49:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "11966:70:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3981,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12040:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "11966:75:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3983,
"nodeType": "ExpressionStatement",
"src": "11966:75:25"
},
{
"expression": {
"argumentTypes": null,
"id": 3995,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 3984,
"name": "calldataInvocations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3061,
"src": "12045:19:25",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3993,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3988,
"name": "resetCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3091,
"src": "12092:10:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3989,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4015,
"src": "12104:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3990,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "12104:8:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
],
"expression": {
"argumentTypes": null,
"id": 3986,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4002,
"src": "12075:3:25",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3987,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "12075:16:25",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "12075:38:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3985,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4009,
"src": "12065:9:25",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 3992,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "12065:49:25",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "12045:70:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 3994,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12119:1:25",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "12045:75:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3996,
"nodeType": "ExpressionStatement",
"src": "12045:75:25"
},
{
"externalReferences": [
{
"result": {
"declaration": 3896,
"isOffset": false,
"isSlot": false,
"src": "12156:6:25",
"valueSize": 1
}
},
{
"result": {
"declaration": 3896,
"isOffset": false,
"isSlot": false,
"src": "12171:6:25",
"valueSize": 1
}
}
],
"id": 3997,
"nodeType": "InlineAssembly",
"operations": "{\n return(add(0x20, result), mload(result))\n}",
"src": "12125:61:25"
}
]
},
"documentation": null,
"id": 3999,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3861,
"nodeType": "ParameterList",
"parameters": [],
"src": "10988:2:25"
},
"payable": true,
"returnParameters": {
"id": 3862,
"nodeType": "ParameterList",
"parameters": [],
"src": "11008:0:25"
},
"scope": 4000,
"src": "10980:1206:25",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 4001,
"src": "3453:8735:25"
}
],
"src": "0:12189:25"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-10-05T14:25:58.953Z"
}