{ "contractName": "MockContract", "abi": [ { "constant": true, "inputs": [], "name": "MOCKS_LIST_END_HASH", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MOCKS_LIST_START", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "MOCKS_LIST_END", "outputs": [ { "name": "", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "SENTINEL_ANY_MOCKS", "outputs": [ { "name": "", "type": "bytes4" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "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": "call", "type": "bytes" }, { "name": "response", "type": "bytes" } ], "name": "givenCalldataReturn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "bool" } ], "name": "givenCalldataReturnBool", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "uint256" } ], "name": "givenCalldataReturnUint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "address" } ], "name": "givenCalldataReturnAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "bytes" } ], "name": "givenMethodReturn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "bool" } ], "name": "givenMethodReturnBool", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "uint256" } ], "name": "givenMethodReturnUint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "response", "type": "address" } ], "name": "givenMethodReturnAddress", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" } ], "name": "givenCalldataRevert", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" } ], "name": "givenMethodRevert", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "message", "type": "string" } ], "name": "givenCalldataRevertWithMessage", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "message", "type": "string" } ], "name": "givenMethodRevertWithMessage", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" } ], "name": "givenCalldataRunOutOfGas", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" } ], "name": "givenMethodRunOutOfGas", "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": "call", "type": "bytes" } ], "name": "invocationCountForMethod", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "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": "0x60806040523480156200001157600080fd5b506040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906200009792919062000168565b507f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555062000217565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ab57805160ff1916838001178555620001dc565b82800160010185558215620001dc579182015b82811115620001db578251825591602001919060010190620001be565b5b509050620001eb9190620001ef565b5090565b6200021491905b8082111562000210576000816000905550600101620001f6565b5090565b90565b6132ad80620002276000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a20119f14610a6c57806321fed4d614610a975780632ed238dc14610ad257806336ff0ee514610b055780633956dc6b14610b345780634937c4f614610b4b578063586984a414610b9a5780635a3855ab14610be95780636193659414610c3057806367aad04a14610c83578063682b479714610cb657806368ab6f2f14610cf95780636f40075614610d345780637cd96ee414610d7b57806387abab6514610e0b5780639a1dc86b14610e465780639eaeed7514610e99578063aa788c5514610eec578063af21ac7814610f27578063b3901f2914610f54578063c6ee167f14610faf578063cf11ff5d14611002578063d6fe97781461105d578063d73ca0ac14611098578063d826f88f146110dd578063e211b8a5146110f4578063eb861f691461110b578063f07da22914611146578063f5afa9c1146111af575b6000606060003591506001600281111561018b57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156101ca57fe5b14156102b45760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b50509250505060405180910390fd5b6002808111156102c057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156102ff57fe5b141561030e5761030d6111f4565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090506000815114156106d757600160028111156103e657fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561045057fe5b14156105655760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b50509250505060405180910390fd5b60028081111561057157fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156105db57fe5b14156105ea576105e96111f4565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050505090505b6000815114156108a357600160028111156106ee57fe5b600a60009054906101000a900460ff16600281111561070957fe5b14156107cf57600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c05780601f10610795576101008083540402835291602001916107c0565b820191906000526020600020905b8154815290600101906020018083116107a357829003601f168201915b50509250505060405180910390fd5b6002808111156107db57fe5b600a60009054906101000a900460ff1660028111156107f657fe5b1415610805576108046111f4565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156109575780518252602082019150602081019050602083039250610932565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550600160046000600e5460003660405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b602083101515610a1457805182526020820191506020810190506020830392506109ef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550805181602001f35b348015610a7857600080fd5b50610a81611219565b6040518082815260200191505060405180910390f35b348015610aa357600080fd5b50610ad0600480360381019080803590602001908201803590602001919091929391929390505050611223565b005b348015610ade57600080fd5b50610ae76112a9565b60405180826000191660001916815260200191505060405180910390f35b348015610b1157600080fd5b50610b32600480360381019080803515159060200190929190505050611344565b005b348015610b4057600080fd5b50610b4961136f565b005b348015610b5757600080fd5b50610b84600480360381019080803590602001908201803590602001919091929391929390505050611395565b6040518082815260200191505060405180910390f35b348015610ba657600080fd5b50610bd36004803603810190808035906020019082018035906020019190919293919293905050506114c3565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610c2e60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919050505061157b565b005b348015610c3c57600080fd5b50610c816004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506115db565b005b348015610c8f57600080fd5b50610c9861164f565b60405180826000191660001916815260200191505060405180910390f35b348015610cc257600080fd5b50610cf7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b005b348015610d0557600080fd5b50610d32600480360381019080803590602001908201803590602001919091929391929390505050611687565b005b348015610d4057600080fd5b50610d79600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611747565b005b348015610d8757600080fd5b50610d906117a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd0578082015181840152602081019050610db5565b50505050905090810190601f168015610dfd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e1757600080fd5b50610e446004803603810190808035906020019082018035906020019190919293919293905050506117e0565b005b348015610e5257600080fd5b50610e9760048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061181a565b005b348015610ea557600080fd5b50610eea60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061193d565b005b348015610ef857600080fd5b50610f256004803603810190808035906020019082018035906020019190919293919293905050506119f9565b005b348015610f3357600080fd5b50610f5260048036038101908080359060200190929190505050611ab9565b005b348015610f6057600080fd5b50610fad600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acd565b005b348015610fbb57600080fd5b50611000600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611b16565b005b34801561100e57600080fd5b5061105b600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8a565b005b34801561106957600080fd5b50611096600480360381019080803590602001908201803590602001919091929391929390505050611bd3565b005b3480156110a457600080fd5b506110db60048036038101908080359060200190820180359060200191909192939192939080359060200190929190505050611c12565b005b3480156110e957600080fd5b506110f2611c5b565b005b34801561110057600080fd5b5061110961269b565b005b34801561111757600080fd5b506111446004803603810190808035906020019082018035906020019190919293919293905050506126e8565b005b34801561115257600080fd5b5061115b6127b7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156111bb57600080fd5b506111f2600480360381019080803590602001908201803590602001919091929391929390803590602001909291905050506127db565b005b60005b600115611216576060600060c060008060066107d05a03f190506111f7565b50565b6000600d54905090565b60026001838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561126557fe5b02179055506112a582828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561131457805182526020820191506020810190506020830392506112ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600081611352576000611355565b60015b60ff16905061136b6113668261298a565b6129ce565b5050565b6002600a60006101000a81548160ff0219169083600281111561138e57fe5b0217905550565b6000806113d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114765780518252602082019150602081019050602083039250611451565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000205491505092915050565b600060046000600e54858560405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152f578051825260208201915060208101905060208303925061150a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002054905092915050565b60008161158957600061158c565b60015b60ff1690506115d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506115d08361298a565b612b02565b50505050565b61164984848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612bf6565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61168461167f82612d10565b6129ce565b50565b60006116c483838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561173457fe5b021790555061174281612d42565b505050565b600081611755576000611758565b60015b60ff1690506117a184848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061179c8361298a565b612b02565b50505050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff021916908360028111156117ff57fe5b02179055508181600c9190611815929190612fd5565b505050565b600061185785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118c757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020919061192c929190612fd5565b5061193681612d42565b5050505050565b600180858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561197e57fe5b021790555081816003868660405180838380828437820191505092505050908152602001604051809103902091906119b7929190612fd5565b506119f384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b50505050565b6000611a3683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611aa657fe5b0217905550611ab481612d42565b505050565b611aca611ac58261298a565b6129ce565b50565b611b1183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611b0c83612d10565b612b02565b505050565b611b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b02565b50505050565b611bce83838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611bc983612d10565b612b02565b505050565b611c0e82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506129ce565b5050565b611c5683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c518361298a565b612b02565b505050565b606060008060008060007f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b50505050509350836040518082805190602001908083835b602083101515611d6d5780518252602082019150602081019050602083039250611d48565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611e085780518252602082019150602081019050602083039250611de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156121505760006001856040518082805190602001908083835b602083101515611e7f5780518252602082019150602081019050602083039250611e5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611ecd57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b602083101515611f1b5780518252602082019150602081019050602083039250611ef6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611f61929190613055565b5060206040519081016040528060008152506003856040518082805190602001908083835b602083101515611fab5780518252602082019150602081019050602083039250611f86565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611ff19291906130d5565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120a05780601f10612075576101008083540402835291602001916120a0565b820191906000526020600020905b81548152906001019060200180831161208357829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906120e5929190613055565b50836040518082805190602001908083835b60208310151561211c57805182526020820191506020810190506020830392506120f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611d9d565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906121d3929190613155565b50600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561256757819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561234a57fe5b0217905550602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906123c4929190613055565b50602060405190810160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061243a9291906130d5565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550612272565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055506020604051908101604052806000815250600b9080519060200190612657929190613055565b506000600a60006101000a81548160ff0219169083600281111561267757fe5b02179055506000600d819055506001600e6000828254019250508190555050505050565b6001600a60006101000a81548160ff021916908360028111156126ba57fe5b02179055506020604051908101604052806000815250600c90805190602001906126e59291906130d5565b50565b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561272957fe5b021790555060206040519081016040528060008152506003838360405180838380828437820191505092505050908152602001604051809103902090805190602001906127779291906130d5565b506127b382828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61281f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061281a8361298a565b612b02565b505050565b6000816040518082805190602001908083835b60208310151561285c5780518252602082019150602081019050602083039250612837565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415612986576000807f010000000000000000000000000000000000000000000000000000000000000060001916600019168152602001908152602001600020600080836000191660001916815260200190815260200160002090805460018160011615610100020316600290046129359291906131d5565b50816000807f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000209080519060200190612984929190613155565b505b5050565b606060206040519080825280601f01601f1916602001820160405280156129c05781602001602082028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156129ed57fe5b021790555080600b9080519060200190612a08929190613155565b5050565b60008060008090505b6004811015612af8576008810260ff7f0100000000000000000000000000000000000000000000000000000000000000028583815181101515612a5457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a9004821791508080600101915050612a15565b8192505050919050565b6000612b0d83612a0c565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612b7d57fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612be7929190613155565b50612bf181612d42565b505050565b60006001836040518082805190602001908083835b602083101515612c305780518252602082019150602081019050602083039250612c0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612c7e57fe5b0217905550806002836040518082805190602001908083835b602083101515612cbc5780518252602082019150602081019050602083039250612c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190612d02929190613155565b50612d0c82612824565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b60007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415612fd257600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061301657803560ff1916838001178555613044565b82800160010185558215613044579182015b82811115613043578235825591602001919060010190613028565b5b509050613051919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061309657805160ff19168380011785556130c4565b828001600101855582156130c4579182015b828111156130c35782518255916020019190600101906130a8565b5b5090506130d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061311657805160ff1916838001178555613144565b82800160010185558215613144579182015b82811115613143578251825591602001919060010190613128565b5b509050613151919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061319657805160ff19168380011785556131c4565b828001600101855582156131c4579182015b828111156131c35782518255916020019190600101906131a8565b5b5090506131d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320e578054855561324b565b8280016001018555821561324b57600052602060002091601f016020900482015b8281111561324a57825482559160010191906001019061322f565b5b509050613258919061325c565b5090565b61327e91905b8082111561327a576000816000905550600101613262565b5090565b905600a165627a7a723058207c38230b81180ba3e31c43529a6ce1803521c383ed5e28844c054a59afa495110029", "deployedBytecode": "0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a20119f14610a6c57806321fed4d614610a975780632ed238dc14610ad257806336ff0ee514610b055780633956dc6b14610b345780634937c4f614610b4b578063586984a414610b9a5780635a3855ab14610be95780636193659414610c3057806367aad04a14610c83578063682b479714610cb657806368ab6f2f14610cf95780636f40075614610d345780637cd96ee414610d7b57806387abab6514610e0b5780639a1dc86b14610e465780639eaeed7514610e99578063aa788c5514610eec578063af21ac7814610f27578063b3901f2914610f54578063c6ee167f14610faf578063cf11ff5d14611002578063d6fe97781461105d578063d73ca0ac14611098578063d826f88f146110dd578063e211b8a5146110f4578063eb861f691461110b578063f07da22914611146578063f5afa9c1146111af575b6000606060003591506001600281111561018b57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156101ca57fe5b14156102b45760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b50509250505060405180910390fd5b6002808111156102c057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156102ff57fe5b141561030e5761030d6111f4565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090506000815114156106d757600160028111156103e657fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561045057fe5b14156105655760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b50509250505060405180910390fd5b60028081111561057157fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156105db57fe5b14156105ea576105e96111f4565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050505090505b6000815114156108a357600160028111156106ee57fe5b600a60009054906101000a900460ff16600281111561070957fe5b14156107cf57600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c05780601f10610795576101008083540402835291602001916107c0565b820191906000526020600020905b8154815290600101906020018083116107a357829003601f168201915b50509250505060405180910390fd5b6002808111156107db57fe5b600a60009054906101000a900460ff1660028111156107f657fe5b1415610805576108046111f4565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156109575780518252602082019150602081019050602083039250610932565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550600160046000600e5460003660405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b602083101515610a1457805182526020820191506020810190506020830392506109ef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550805181602001f35b348015610a7857600080fd5b50610a81611219565b6040518082815260200191505060405180910390f35b348015610aa357600080fd5b50610ad0600480360381019080803590602001908201803590602001919091929391929390505050611223565b005b348015610ade57600080fd5b50610ae76112a9565b60405180826000191660001916815260200191505060405180910390f35b348015610b1157600080fd5b50610b32600480360381019080803515159060200190929190505050611344565b005b348015610b4057600080fd5b50610b4961136f565b005b348015610b5757600080fd5b50610b84600480360381019080803590602001908201803590602001919091929391929390505050611395565b6040518082815260200191505060405180910390f35b348015610ba657600080fd5b50610bd36004803603810190808035906020019082018035906020019190919293919293905050506114c3565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610c2e60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919050505061157b565b005b348015610c3c57600080fd5b50610c816004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506115db565b005b348015610c8f57600080fd5b50610c9861164f565b60405180826000191660001916815260200191505060405180910390f35b348015610cc257600080fd5b50610cf7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b005b348015610d0557600080fd5b50610d32600480360381019080803590602001908201803590602001919091929391929390505050611687565b005b348015610d4057600080fd5b50610d79600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611747565b005b348015610d8757600080fd5b50610d906117a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd0578082015181840152602081019050610db5565b50505050905090810190601f168015610dfd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e1757600080fd5b50610e446004803603810190808035906020019082018035906020019190919293919293905050506117e0565b005b348015610e5257600080fd5b50610e9760048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061181a565b005b348015610ea557600080fd5b50610eea60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061193d565b005b348015610ef857600080fd5b50610f256004803603810190808035906020019082018035906020019190919293919293905050506119f9565b005b348015610f3357600080fd5b50610f5260048036038101908080359060200190929190505050611ab9565b005b348015610f6057600080fd5b50610fad600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acd565b005b348015610fbb57600080fd5b50611000600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611b16565b005b34801561100e57600080fd5b5061105b600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8a565b005b34801561106957600080fd5b50611096600480360381019080803590602001908201803590602001919091929391929390505050611bd3565b005b3480156110a457600080fd5b506110db60048036038101908080359060200190820180359060200191909192939192939080359060200190929190505050611c12565b005b3480156110e957600080fd5b506110f2611c5b565b005b34801561110057600080fd5b5061110961269b565b005b34801561111757600080fd5b506111446004803603810190808035906020019082018035906020019190919293919293905050506126e8565b005b34801561115257600080fd5b5061115b6127b7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156111bb57600080fd5b506111f2600480360381019080803590602001908201803590602001919091929391929390803590602001909291905050506127db565b005b60005b600115611216576060600060c060008060066107d05a03f190506111f7565b50565b6000600d54905090565b60026001838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561126557fe5b02179055506112a582828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561131457805182526020820191506020810190506020830392506112ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600081611352576000611355565b60015b60ff16905061136b6113668261298a565b6129ce565b5050565b6002600a60006101000a81548160ff0219169083600281111561138e57fe5b0217905550565b6000806113d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114765780518252602082019150602081019050602083039250611451565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000205491505092915050565b600060046000600e54858560405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152f578051825260208201915060208101905060208303925061150a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002054905092915050565b60008161158957600061158c565b60015b60ff1690506115d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506115d08361298a565b612b02565b50505050565b61164984848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612bf6565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61168461167f82612d10565b6129ce565b50565b60006116c483838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561173457fe5b021790555061174281612d42565b505050565b600081611755576000611758565b60015b60ff1690506117a184848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061179c8361298a565b612b02565b50505050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff021916908360028111156117ff57fe5b02179055508181600c9190611815929190612fd5565b505050565b600061185785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118c757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020919061192c929190612fd5565b5061193681612d42565b5050505050565b600180858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561197e57fe5b021790555081816003868660405180838380828437820191505092505050908152602001604051809103902091906119b7929190612fd5565b506119f384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b50505050565b6000611a3683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611aa657fe5b0217905550611ab481612d42565b505050565b611aca611ac58261298a565b6129ce565b50565b611b1183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611b0c83612d10565b612b02565b505050565b611b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b02565b50505050565b611bce83838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611bc983612d10565b612b02565b505050565b611c0e82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506129ce565b5050565b611c5683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c518361298a565b612b02565b505050565b606060008060008060007f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b50505050509350836040518082805190602001908083835b602083101515611d6d5780518252602082019150602081019050602083039250611d48565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611e085780518252602082019150602081019050602083039250611de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156121505760006001856040518082805190602001908083835b602083101515611e7f5780518252602082019150602081019050602083039250611e5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611ecd57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b602083101515611f1b5780518252602082019150602081019050602083039250611ef6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611f61929190613055565b5060206040519081016040528060008152506003856040518082805190602001908083835b602083101515611fab5780518252602082019150602081019050602083039250611f86565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611ff19291906130d5565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120a05780601f10612075576101008083540402835291602001916120a0565b820191906000526020600020905b81548152906001019060200180831161208357829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906120e5929190613055565b50836040518082805190602001908083835b60208310151561211c57805182526020820191506020810190506020830392506120f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611d9d565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906121d3929190613155565b50600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561256757819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561234a57fe5b0217905550602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906123c4929190613055565b50602060405190810160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061243a9291906130d5565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550612272565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055506020604051908101604052806000815250600b9080519060200190612657929190613055565b506000600a60006101000a81548160ff0219169083600281111561267757fe5b02179055506000600d819055506001600e6000828254019250508190555050505050565b6001600a60006101000a81548160ff021916908360028111156126ba57fe5b02179055506020604051908101604052806000815250600c90805190602001906126e59291906130d5565b50565b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561272957fe5b021790555060206040519081016040528060008152506003838360405180838380828437820191505092505050908152602001604051809103902090805190602001906127779291906130d5565b506127b382828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61281f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061281a8361298a565b612b02565b505050565b6000816040518082805190602001908083835b60208310151561285c5780518252602082019150602081019050602083039250612837565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415612986576000807f010000000000000000000000000000000000000000000000000000000000000060001916600019168152602001908152602001600020600080836000191660001916815260200190815260200160002090805460018160011615610100020316600290046129359291906131d5565b50816000807f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000209080519060200190612984929190613155565b505b5050565b606060206040519080825280601f01601f1916602001820160405280156129c05781602001602082028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156129ed57fe5b021790555080600b9080519060200190612a08929190613155565b5050565b60008060008090505b6004811015612af8576008810260ff7f0100000000000000000000000000000000000000000000000000000000000000028583815181101515612a5457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a9004821791508080600101915050612a15565b8192505050919050565b6000612b0d83612a0c565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612b7d57fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612be7929190613155565b50612bf181612d42565b505050565b60006001836040518082805190602001908083835b602083101515612c305780518252602082019150602081019050602083039250612c0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612c7e57fe5b0217905550806002836040518082805190602001908083835b602083101515612cbc5780518252602082019150602081019050602083039250612c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190612d02929190613155565b50612d0c82612824565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b60007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415612fd257600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061301657803560ff1916838001178555613044565b82800160010185558215613044579182015b82811115613043578235825591602001919060010190613028565b5b509050613051919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061309657805160ff19168380011785556130c4565b828001600101855582156130c4579182015b828111156130c35782518255916020019190600101906130a8565b5b5090506130d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061311657805160ff1916838001178555613144565b82800160010185558215613144579182015b82811115613143578251825591602001919060010190613128565b5b509050613151919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061319657805160ff19168380011785556131c4565b828001600101855582156131c4579182015b828111156131c35782518255916020019190600101906131a8565b5b5090506131d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320e578054855561324b565b8280016001018555821561324b57600052602060002091601f016020900482015b8281111561324a57825482559160010191906001019061322f565b5b509050613258919061325c565b5090565b61327e91905b8082111561327a576000816000905550600101613262565b5090565b905600a165627a7a723058207c38230b81180ba3e31c43529a6ce1803521c383ed5e28844c054a59afa495110029", "sourceMap": "3453:8735:25:-;;;4427:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;4427:135:25;4486:14;;;;;;;;;;;;;;;;;;4452:13;:31;4466:16;4452:31;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;4540:18;4504:13;:33;4518:18;4504:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;;3453:8735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "3453:8735:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11012:15;11305:19;11070:1;11057:15;11045:27;;11158:15;11127:46;;;;;;;;:17;11145:8;;11127:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11123:101;;;11187:21;11209:8;;11187:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11180:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11123:101;11262:17;11231:48;;;;;;;;:17;11249:8;;11231:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11227:75;;;11286:11;:9;:11::i;:::-;11227:75;11327:20;11348:8;;11327:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11305:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11419:1;11402:6;:13;:18;11398:262;;;11462:15;11431:46;;;;;;;;:17;:27;11449:8;11431:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11427:104;;;11492:22;:32;11515:8;11492:32;;;;;;;;;;;;;;;;;11485:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11427:104;11570:17;11539:48;;;;;;;;:17;:27;11557:8;11539:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11535:77;;;11595:11;:9;:11::i;:::-;11535:77;11625:20;:30;11646:8;11625:30;;;;;;;;;;;;;;;;;11616:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11398:262;11722:1;11705:6;:13;:18;11701:218;;;11754:15;11734:35;;;;;;;;:16;;;;;;;;;;;:35;;;;;;;;;11730:82;;;11784:21;11777:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11730:82;11840:17;11820:37;;;;;;;;:16;;;;;;;;;;;:37;;;;;;;;;11816:66;;;11865:11;:9;:11::i;:::-;11816:66;11895:19;11886:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11701:218;11961:1;11946:11;;:16;;;;;;;;;;;12040:1;11966:19;:70;12013:10;;12025:8;11996:38;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11996:38:25;;;11986:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11986:49:25;;;;;;;;;;;;;;;;11966:70;;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;12119:1;12045:19;:70;12092:10;;12104:8;;12075:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12075:38:25;;;12065:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12065:49:25;;;;;;;;;;;;;;;;12045:70;;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;12171:6;12165:13;12156:6;12150:4;12146:17;12139:40;8488:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8488:77:25;;;;;;;;;;;;;;;;;;;;;;;8174:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8174:133:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3642:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3642:71:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5248:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5248:126:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5839:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5839:84:25;;;;;;8568:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8568:192:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8763:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8763:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6227:152:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6113:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6113:111:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3541:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5479:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5479:107:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8310:175:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6985:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6985:150:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3594:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3594:45:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3594:45:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5699:137:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7931:240:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7734:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7734:194:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7562:169:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5377:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5377:99:25;;;;;;;;;;;;;;;;;;;;;;;;;;6509:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6509:133:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6876:106:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7263:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7263:131:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5163:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5163:82:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6382:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6382:124:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8919:1291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8919:1291:25;;;;;;5589:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5589:107:25;;;;;;7397:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7397:162:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3716:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3716:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7138:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7138:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10213:186;10263:6;10246:150;10252:4;10246:150;;;10382:4;10377:3;10371:4;10366:3;10363:1;10360;10353:4;10348:3;10344:14;10339:48;10334:53;;10283:109;;;10213:186;:::o;8488:77::-;8533:4;8550:11;;8543:18;;8488:77;:::o;8174:133::-;8259:17;8233;8251:4;;8233:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8280:23;8298:4;;8280:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;8174:133;;:::o;3642:71::-;3698:14;;;;;;;;;;;;;;;;;;3688:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3688:25:25;;;;;;;;;;;;;;;;3642:71;:::o;5248:126::-;5304:9;5316:8;:16;;5331:1;5316:16;;;5327:1;5316:16;5304:28;;;;5336:34;5352:17;5364:4;5352:11;:17::i;:::-;5336:15;:34::i;:::-;5248:126;;:::o;5839:84::-;5902:17;5883:16;;:36;;;;;;;;;;;;;;;;;;;;;;;;5839:84::o;8568:192::-;8632:4;8642:13;8658:19;8672:4;;8658:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8642:35;;8688:19;:68;8735:10;;8747:6;8718:36;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8718:36:25;;;8708:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8708:47:25;;;;;;;;;;;;;;;;8688:68;;;;;;;;;;;;;;;;;;8681:75;;8568:192;;;;;:::o;8763:153::-;8829:4;8846:19;:66;8893:10;;8905:4;;8876:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8876:34:25;;;8866:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8866:45:25;;;;;;;;;;;;;;;;8846:66;;;;;;;;;;;;;;;;;;8839:73;;8763:153;;;;:::o;6227:152::-;6300:9;6312:8;:16;;6327:1;6312:16;;;6323:1;6312:16;6300:28;;;;6332:43;6351:4;;6332:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6357:17;6369:4;6357:11;:17::i;:::-;6332:18;:43::i;:::-;6227:152;;;;:::o;6113:111::-;6184:36;6205:4;;6184:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6211:8;;6184:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;:36::i;:::-;6113:111;;;;:::o;3541:50::-;;;:::o;5479:107::-;5541:41;5557:24;5572:8;5557:14;:24::i;:::-;5541:15;:41::i;:::-;5479:107;:::o;8310:175::-;8367:13;8383:19;8397:4;;8383:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8367:35;;8434:17;8406;:25;8424:6;8406:25;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;8455:25;8473:6;8455:17;:25::i;:::-;8310:175;;;:::o;6985:150::-;7056:9;7068:8;:16;;7083:1;7068:16;;;7079:1;7068:16;7056:28;;;;7088:43;7107:4;;7088:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7113:17;7125:4;7113:11;:17::i;:::-;7088:18;:43::i;:::-;6985:150;;;;:::o;3594:45::-;;;;;;;;;;;;;;;;;;;;:::o;5699:137::-;5782:15;5763:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5825:7;;5801:21;:31;;;;;;;:::i;:::-;;5699:137;;:::o;7931:240::-;8010:13;8026:19;8040:4;;8026:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8010:35;;8077:15;8049:17;:25;8067:6;8049:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8129:7;;8096:22;:30;8119:6;8096:30;;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;8140:25;8158:6;8140:17;:25::i;:::-;7931:240;;;;;:::o;7734:194::-;7841:15;7815:17;7833:4;;7815:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7890:7;;7860:21;7882:4;;7860:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;7901:23;7919:4;;7901:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;7734:194;;;;:::o;7562:169::-;7614:13;7630:19;7644:4;;7630:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;7614:35;;7681:15;7653:17;:25;7671:6;7653:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;7700:25;7718:6;7700:17;:25::i;:::-;7562:169;;;:::o;5377:99::-;5433:38;5449:21;5461:8;5449:11;:21::i;:::-;5433:15;:38::i;:::-;5377:99;:::o;6509:133::-;6588:50;6607:4;;6588:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6613:24;6628:8;6613:14;:24::i;:::-;6588:18;:50::i;:::-;6509:133;;;:::o;6876:106::-;6944:34;6963:4;;6944:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6969:8;;6944:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;:34::i;:::-;6876:106;;;;:::o;7263:131::-;7340:50;7359:4;;7340:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:24;7380:8;7365:14;:24::i;:::-;7340:18;:50::i;:::-;7263:131;;;:::o;5163:82::-;5216:25;5232:8;;5216:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:25::i;:::-;5163:82;;:::o;6382:124::-;6455:47;6474:4;;6455:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6480:21;6492:8;6480:11;:21::i;:::-;6455:18;:47::i;:::-;6382:124;;;:::o;8919:1291::-;8984:21;9043:16;9613:18;9717:21;9008:13;:31;9022:16;9008:31;;;;;;;;;;;;;;;;;8984:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9072:8;9062:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9062:19:25;;;;;;;;;;;;;;;;9043:38;;9114:394;3698:14;;;;;;;;;;;;;;;;;;3688:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3688:25:25;;;;;;;;;;;;;;;;9120:31;;;:8;:31;;;;;9114:394;;;9214:15;9184:17;9202:8;9184:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9184:27:25;;;;;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;9234:38;;;;;;;;;;;;;:20;9255:8;9234:30;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9234:30:25;;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;9277:36;;;;;;;;;;;;;:21;9299:8;9277:31;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9277:31:25;;;;;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;9359:13;:23;9373:8;9359:23;;;;;;;;;;;;;;;;;9348:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9417:28;;;;;;;;;;;;;:13;:23;9431:8;9417:23;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;9494:8;9484:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9484:19:25;;;;;;;;;;;;;;;;9473:30;;9114:394;;;9561:14;;;;;;;;;;;;;;;;;;9527:13;:31;9541:16;9527:31;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;9634:13;:33;9648:18;9634:33;;;;;;;;;;;;;;;;;;;;;;;;;;;9613:54;;9671:357;9692:18;9677:33;;;:11;:33;;;;;9671:357;;;9741:11;9717:35;;9793:15;9757:17;:33;9775:14;9757:33;;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;9813:44;;;;;;;;;;;;;:20;:36;9834:14;9813:36;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;:::i;:::-;;9862:43;;;;;;;;;;;;;:22;:38;9885:14;9862:38;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;:::i;:::-;;9924:13;:29;9938:14;9924:29;;;;;;;;;;;;;;;;;;;;;;;;;;;9910:43;;10020:3;9988:35;;:13;:29;10002:14;9988:29;;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;9671:357;;;10083:18;10047:13;:33;10061:18;10047:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;;10106:24;;;;;;;;;;;;;:19;:24;;;;;;;;;;;;:::i;:::-;;10153:15;10134:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;10186:1;10172:11;:15;;;;10205:1;10191:10;;:15;;;;;;;;;;;8919:1291;;;;:::o;5589:107::-;5647:15;5628:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5666:26;;;;;;;;;;;;;:21;:26;;;;;;;;;;;;:::i;:::-;;5589:107::o;7397:162::-;7477:15;7451:17;7469:4;;7451:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7496:32;;;;;;;;;;;;;:21;7518:4;;7496:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:::i;:::-;;7532:23;7550:4;;7532:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;7397:162;;:::o;3716:51::-;;;:::o;7138:122::-;7209:47;7228:4;;7209:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:21;7246:8;7234:11;:21::i;:::-;7209:18;:47::i;:::-;7138:122;;;:::o;4565:250::-;4623:16;4652:4;4642:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4642:15:25;;;;;;;;;;;;;;;;4623:34;;4699:1;4665:13;:23;4679:8;4665:23;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;:35;4661:151;;;4733:13;:31;4747:16;4733:31;;;;;;;;;;;;;;;;;4707:13;:23;4721:8;4707:23;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4803:4;4769:13;:31;4783:16;4769:31;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;4661:151;4565:250;;:::o;10846:131::-;10900:7;10930:2;10920:13;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10920:13:25;;;;10916:17;;10970:1;10965:2;10962:1;10958:10;10951:21;10949:25;;;:::o;5034:126::-;5107:15;5088:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5148:8;5126:19;:30;;;;;;;;;;;;:::i;:::-;;5034:126;:::o;10402:184::-;10456:6;10470:10;10491:6;10500:1;10491:10;;10486:81;10507:1;10503;:5;10486:81;;;10558:1;10554;:5;10544:4;10537:11;;:1;10539;10537:4;;;;;;;;;;;;;;;;;;;;:11;10530:19;;;:30;;;;;;;;10523:37;;;;10510:3;;;;;;;10486:81;;;10579:3;10572:10;;10402:184;;;;;:::o;6645:228::-;6713:13;6729:19;6743:4;6729:13;:19::i;:::-;6713:35;;6780:15;6752:17;:25;6770:6;6752:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;6830:8;6799:20;:28;6820:6;6799:28;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;:::i;:::-;;6842:25;6860:6;6842:17;:25::i;:::-;6645:228;;;:::o;5926:184::-;6023:15;5997:17;6015:4;5997:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5997:23:25;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;6071:8;6042:20;6063:4;6042:26;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6042:26:25;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;:::i;:::-;;6083:23;6101:4;6083:17;:23::i;:::-;5926:184;;:::o;10589:254::-;10646:7;10696:4;10690:11;10780:1;10734:44;10730:52;10725:2;10722:1;10718:10;10711:72;10813:2;10810:1;10806:10;10800:4;10793:24;10832:1;10827:6;;10670:170;;;;:::o;4818:213::-;4905:3;4878:30;;:13;:23;4892:8;4878:23;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;4874:154;;;4941:13;:33;4955:18;4941:33;;;;;;;;;;;;;;;;;;;;;;;;;;;4915:13;:23;4929:8;4915:23;;;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;5015:8;4979:13;:33;4993:18;4979:33;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;4874:154;4818:213;:::o;3453:8735::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "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.946Z" }