{ "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": "call", "type": "bytes" }, { "name": "response", "type": "bytes" } ], "name": "givenReturn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "method", "type": "bytes4" }, { "name": "response", "type": "bytes" } ], "name": "givenReturnAny", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" } ], "name": "givenRevert", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "method", "type": "bytes4" } ], "name": "givenRevertAny", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" }, { "name": "message", "type": "string" } ], "name": "givenRevertWithMessage", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "method", "type": "bytes4" }, { "name": "message", "type": "string" } ], "name": "givenRevertAnyWithMessage", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "call", "type": "bytes" } ], "name": "givenOutOfGas", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "method", "type": "bytes4" } ], "name": "givenOutOfGasAny", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "reset", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523480156200001157600080fd5b506040805190810160405280600481526020017f3078666600000000000000000000000000000000000000000000000000000000815250600080600180026000191660001916815260200190815260200160002090805190602001906200007a9291906200014b565b5060017c0100000000000000000000000000000000000000000000000000000000026004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550620001fa565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018e57805160ff1916838001178555620001bf565b82800160010185558215620001bf579182015b82811115620001be578251825591602001919060010190620001a1565b5b509050620001ce9190620001d2565b5090565b620001f791905b80821115620001f3576000816000905550600101620001d9565b5090565b90565b61231c806200020a6000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806311bcf7b21461062f578063122e523f146106985780632ed238dc1461072a57806350b908731461075d5780635fd1e7fa146107c657806367aad04a146108125780636ef7920f146108455780637a63538b146108915780637cd96ee414610923578063b947d020146109b3578063d826f88f14610a62578063f07da22914610a79578063fc95802514610ae2575b600060606000359150600160028111156100db57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561011a57fe5b14156102045760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156101f55780601f106101ca576101008083540402835291602001916101f5565b820191906000526020600020905b8154815290600101906020018083116101d857829003601f168201915b50509250505060405180910390fd5b60028081111561021057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561024f57fe5b141561025e5761025d610b91565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103185780601f106102ed57610100808354040283529160200191610318565b820191906000526020600020905b8154815290600101906020018083116102fb57829003601f168201915b50505050509050600081511415610627576001600281111561033657fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156103a057fe5b14156104b55760076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50509250505060405180910390fd5b6002808111156104c157fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561052b57fe5b141561053a57610539610b91565b5b60066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505090505b805181602001f35b34801561063b57600080fd5b50610696600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ba6565b005b3480156106a457600080fd5b5061072860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c3f565b005b34801561073657600080fd5b5061073f610d25565b60405180826000191660001916815260200191505060405180910390f35b34801561076957600080fd5b506107c4600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610dc0565b005b3480156107d257600080fd5b5061081060048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610ee8565b005b34801561081e57600080fd5b50610827610f67565b60405180826000191660001916815260200191505060405180910390f35b34801561085157600080fd5b5061088f60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f6e565b005b34801561089d57600080fd5b5061092160048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fed565b005b34801561092f57600080fd5b506109386110d3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561097857808201518184015260208101905061095d565b50505050905090810190601f1680156109a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109bf57600080fd5b50610a60600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061110c565b005b348015610a6e57600080fd5b50610a77611225565b005b348015610a8557600080fd5b50610a8e611bc7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610aee57600080fd5b50610b8f600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611beb565b005b5b600115610ba457600160405455610b92565b565b60026001826040518082805190602001908083835b602083101515610be05780518252602082019150602081019050602083039250610bbb565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610c2e57fe5b0217905550610c3c81611d05565b50565b600160056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610cad57fe5b02179055508060076000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190610d179291906120c4565b50610d2182611e31565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515610d905780518252602082019150602081019050602083039250610d6b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600180826040518082805190602001908083835b602083101515610df95780518252602082019150602081019050602083039250610dd4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610e4757fe5b021790555060206040519081016040528060008152506003826040518082805190602001908083835b602083101515610e955780518252602082019150602081019050602083039250610e70565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610edb9291906120c4565b50610ee581611d05565b50565b600160056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610f5657fe5b0217905550610f6481611e31565b50565b6001800281565b600260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610fdc57fe5b0217905550610fea81611e31565b50565b600060056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561105b57fe5b02179055508060066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906110c5929190612144565b506110cf82611e31565b5050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b600180836040518082805190602001908083835b6020831015156111455780518252602082019150602081019050602083039250611120565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561119357fe5b0217905550806003836040518082805190602001908083835b6020831015156111d157805182526020820191506020810190506020830392506111ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906112179291906120c4565b5061122182611d05565b5050565b6060600080600080600060018002600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b50505050509350836040518082805190602001908083835b60208310151561131a57805182526020820191506020810190506020830392506112f5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156113b55780518252602082019150602081019050602083039250611390565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156116fd5760006001856040518082805190602001908083835b60208310151561142c5780518252602082019150602081019050602083039250611407565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561147a57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b6020831015156114c857805182526020820191506020810190506020830392506114a3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061150e9291906121c4565b5060206040519081016040528060008152506003856040518082805190602001908083835b6020831015156115585780518252602082019150602081019050602083039250611533565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061159e9291906120c4565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561164d5780601f106116225761010080835404028352916020019161164d565b820191906000526020600020905b81548152906001019060200180831161163057829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906116929291906121c4565b50836040518082805190602001908083835b6020831015156116c957805182526020820191506020810190506020830392506116a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061134a565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525060008060018002600019166000191681526020019081526020016000209080519060200190611763929190612144565b506004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b60017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611af757819050600060056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118da57fe5b0217905550602060405190810160405280600081525060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119549291906121c4565b50602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119ca9291906120c4565b5060046000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550611802565b60017c0100000000000000000000000000000000000000000000000000000000026004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555050505050565b60017c01000000000000000000000000000000000000000000000000000000000281565b60006001836040518082805190602001908083835b602083101515611c255780518252602082019150602081019050602083039250611c00565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611c7357fe5b0217905550806002836040518082805190602001908083835b602083101515611cb15780518252602082019150602081019050602083039250611c8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611cf7929190612144565b50611d0182611d05565b5050565b6000816040518082805190602001908083835b602083101515611d3d5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415611e2d57600080600180026000191660001916815260200190815260200160002060008083600019166000191681526020019081526020016000209080546001816001161561010002031660029004611df9929190612244565b508160008060018002600019166000191681526020019081526020016000209080519060200190611e2b929190612144565b505b5050565b60007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156120c1576004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550806004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210557805160ff1916838001178555612133565b82800160010185558215612133579182015b82811115612132578251825591602001919060010190612117565b5b50905061214091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061218557805160ff19168380011785556121b3565b828001600101855582156121b3579182015b828111156121b2578251825591602001919060010190612197565b5b5090506121c091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061220557805160ff1916838001178555612233565b82800160010185558215612233579182015b82811115612232578251825591602001919060010190612217565b5b50905061224091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227d57805485556122ba565b828001600101855582156122ba57600052602060002091601f016020900482015b828111156122b957825482559160010191906001019061229e565b5b5090506122c791906122cb565b5090565b6122ed91905b808211156122e95760008160009055506001016122d1565b5090565b905600a165627a7a72305820e3d9d37bc53f32c931f3f9481042543fd8b3c9d309d8b8ccac2c32e98ff9c7bb0029", "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806311bcf7b21461062f578063122e523f146106985780632ed238dc1461072a57806350b908731461075d5780635fd1e7fa146107c657806367aad04a146108125780636ef7920f146108455780637a63538b146108915780637cd96ee414610923578063b947d020146109b3578063d826f88f14610a62578063f07da22914610a79578063fc95802514610ae2575b600060606000359150600160028111156100db57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561011a57fe5b14156102045760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156101f55780601f106101ca576101008083540402835291602001916101f5565b820191906000526020600020905b8154815290600101906020018083116101d857829003601f168201915b50509250505060405180910390fd5b60028081111561021057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16600281111561024f57fe5b141561025e5761025d610b91565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103185780601f106102ed57610100808354040283529160200191610318565b820191906000526020600020905b8154815290600101906020018083116102fb57829003601f168201915b50505050509050600081511415610627576001600281111561033657fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156103a057fe5b14156104b55760076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b50509250505060405180910390fd5b6002808111156104c157fe5b60056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561052b57fe5b141561053a57610539610b91565b5b60066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561061f5780601f106105f45761010080835404028352916020019161061f565b820191906000526020600020905b81548152906001019060200180831161060257829003601f168201915b505050505090505b805181602001f35b34801561063b57600080fd5b50610696600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ba6565b005b3480156106a457600080fd5b5061072860048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c3f565b005b34801561073657600080fd5b5061073f610d25565b60405180826000191660001916815260200191505060405180910390f35b34801561076957600080fd5b506107c4600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610dc0565b005b3480156107d257600080fd5b5061081060048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610ee8565b005b34801561081e57600080fd5b50610827610f67565b60405180826000191660001916815260200191505060405180910390f35b34801561085157600080fd5b5061088f60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610f6e565b005b34801561089d57600080fd5b5061092160048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fed565b005b34801561092f57600080fd5b506109386110d3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561097857808201518184015260208101905061095d565b50505050905090810190601f1680156109a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109bf57600080fd5b50610a60600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061110c565b005b348015610a6e57600080fd5b50610a77611225565b005b348015610a8557600080fd5b50610a8e611bc7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610aee57600080fd5b50610b8f600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611beb565b005b5b600115610ba457600160405455610b92565b565b60026001826040518082805190602001908083835b602083101515610be05780518252602082019150602081019050602083039250610bbb565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610c2e57fe5b0217905550610c3c81611d05565b50565b600160056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610cad57fe5b02179055508060076000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190610d179291906120c4565b50610d2182611e31565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515610d905780518252602082019150602081019050602083039250610d6b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600180826040518082805190602001908083835b602083101515610df95780518252602082019150602081019050602083039250610dd4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115610e4757fe5b021790555060206040519081016040528060008152506003826040518082805190602001908083835b602083101515610e955780518252602082019150602081019050602083039250610e70565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610edb9291906120c4565b50610ee581611d05565b50565b600160056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610f5657fe5b0217905550610f6481611e31565b50565b6001800281565b600260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115610fdc57fe5b0217905550610fea81611e31565b50565b600060056000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561105b57fe5b02179055508060066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906110c5929190612144565b506110cf82611e31565b5050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b600180836040518082805190602001908083835b6020831015156111455780518252602082019150602081019050602083039250611120565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561119357fe5b0217905550806003836040518082805190602001908083835b6020831015156111d157805182526020820191506020810190506020830392506111ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906112179291906120c4565b5061122182611d05565b5050565b6060600080600080600060018002600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112dd5780601f106112b2576101008083540402835291602001916112dd565b820191906000526020600020905b8154815290600101906020018083116112c057829003601f168201915b50505050509350836040518082805190602001908083835b60208310151561131a57805182526020820191506020810190506020830392506112f5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156113b55780518252602082019150602081019050602083039250611390565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156116fd5760006001856040518082805190602001908083835b60208310151561142c5780518252602082019150602081019050602083039250611407565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561147a57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b6020831015156114c857805182526020820191506020810190506020830392506114a3565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061150e9291906121c4565b5060206040519081016040528060008152506003856040518082805190602001908083835b6020831015156115585780518252602082019150602081019050602083039250611533565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061159e9291906120c4565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561164d5780601f106116225761010080835404028352916020019161164d565b820191906000526020600020905b81548152906001019060200180831161163057829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906116929291906121c4565b50836040518082805190602001908083835b6020831015156116c957805182526020820191506020810190506020830392506116a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020925061134a565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525060008060018002600019166000191681526020019081526020016000209080519060200190611763929190612144565b506004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b60017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611af757819050600060056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118da57fe5b0217905550602060405190810160405280600081525060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119549291906121c4565b50602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906119ca9291906120c4565b5060046000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550611802565b60017c0100000000000000000000000000000000000000000000000000000000026004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555050505050565b60017c01000000000000000000000000000000000000000000000000000000000281565b60006001836040518082805190602001908083835b602083101515611c255780518252602082019150602081019050602083039250611c00565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611c7357fe5b0217905550806002836040518082805190602001908083835b602083101515611cb15780518252602082019150602081019050602083039250611c8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611cf7929190612144565b50611d0182611d05565b5050565b6000816040518082805190602001908083835b602083101515611d3d5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415611e2d57600080600180026000191660001916815260200190815260200160002060008083600019166000191681526020019081526020016000209080546001816001161561010002031660029004611df9929190612244565b508160008060018002600019166000191681526020019081526020016000209080519060200190611e2b929190612144565b505b5050565b60007c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156120c1576004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260046000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550806004600060017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210557805160ff1916838001178555612133565b82800160010185558215612133579182015b82811115612132578251825591602001919060010190612117565b5b50905061214091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061218557805160ff19168380011785556121b3565b828001600101855582156121b3579182015b828111156121b2578251825591602001919060010190612197565b5b5090506121c091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061220557805160ff1916838001178555612233565b82800160010185558215612233579182015b82811115612232578251825591602001919060010190612217565b5b50905061224091906122cb565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061227d57805485556122ba565b828001600101855582156122ba57600052602060002091601f016020900482015b828111156122b957825482559160010191906001019061229e565b5b5090506122c791906122cb565b5090565b6122ed91905b808211156122e95760008160009055506001016122d1565b5090565b905600a165627a7a72305820e3d9d37bc53f32c931f3f9481042543fd8b3c9d309d8b8ccac2c32e98ff9c7bb0029", "sourceMap": "26:4585:27:-;;;703:115;8:9:-1;5:2;;;30:1;27;20:12;5:2;703:115:27;747:14;;;;;;;;;;;;;;;;;;721:5;:23;140:3;727:16;;721:23;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:::i;:::-;;312:3;796:18;;765:8;:28;312:3;774:18;;765:28;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;26:4585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "26:4585:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3978:15;4203:19;4036:1;4023:15;4011:27;;4072:15;4049:38;;;;;;;;:9;4059:8;;4049:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;4045:85;;;4101:13;4115:8;;4101:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4094:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4045:85;4160:17;4137:40;;;;;;;;:9;4147:8;;4137:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;;;;;4133:67;;;4184:11;:9;:11::i;:::-;4133:67;4225:12;4238:8;;4225:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4203:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4325:1;4308:6;:13;:18;4304:241;;;4363:15;4337:41;;;;;;;;:12;:22;4350:8;4337:22;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;4333:93;;;4393:16;:26;4410:8;4393:26;;;;;;;;;;;;;;;;;4386:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4333:93;4460:17;4434:43;;;;;;;;:12;:22;4447:8;4434:22;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;;;;;4430:72;;;4485:11;:9;:11::i;:::-;4430:72;4515:15;:25;4531:8;4515:25;;;;;;;;;;;;;;;;;4506:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4304:241;4594:6;4588:13;4579:6;4573:4;4569:17;4562:40;2536:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:104:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2350:183:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;194:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;194:71:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1935:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1935:128:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2066:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2066:118:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;97:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;97:46:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2643:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2643:121:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1760:172:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;146:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:45:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;146:45:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2187:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2187:160:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2767:1076;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2767:1076:27;;;;;;268:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;268:47:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1608:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1608:149:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3846:99;3879:63;3885:4;3879:63;;;3931:1;3924:4;3918:11;3911:22;3905:33;;;3846:99::o;2536:104::-;2600:17;2582:9;2592:4;2582: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;;;2582:15:27;;;;;;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;2621:15;2631:4;2621:9;:15::i;:::-;2536:104;:::o;2350:183::-;2450:15;2427:12;:20;2440:6;2427:20;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;2496:7;2469:16;:24;2486:6;2469:24;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;:::i;:::-;;2507:20;2520:6;2507:12;:20::i;:::-;2350:183;;:::o;194:71::-;250:14;;;;;;;;;;;;;;;;;;240: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;;;240:25:27;;;;;;;;;;;;;;;;194:71;:::o;1935:128::-;1997:15;1979:9;1989:4;1979: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;;;1979:15:27;;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;2016:24;;;;;;;;;;;;;:13;2030:4;2016: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;;;2016:19:27;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;:::i;:::-;;2044:15;2054:4;2044:9;:15::i;:::-;1935:128;:::o;2066:118::-;2139:15;2116:12;:20;2129:6;2116:20;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;2158:20;2171:6;2158:12;:20::i;:::-;2066:118;:::o;97:46::-;140:3;97:46;;;:::o;2643:121::-;2718:17;2695:12;:20;2708:6;2695:20;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;;;;;;;2739:20;2752:6;2739:12;:20::i;:::-;2643:121;:::o;1760:172::-;1849:15;1826:12;:20;1839:6;1826:20;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;1894:8;1868:15;:23;1884:6;1868:23;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;:::i;:::-;;1906:20;1919:6;1906:12;:20::i;:::-;1760:172;;:::o;146:45::-;;;;;;;;;;;;;;;;;;;;:::o;2187:160::-;2276:15;2258:9;2268:4;2258: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;;;2258:15:27;;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;2317:7;2295:13;2309:4;2295: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;;;2295:19:27;;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:::i;:::-;;2328:15;2338:4;2328:9;:15::i;:::-;2187:160;;:::o;2767:1076::-;2822:21;2873:16;3387:18;3486:21;2846:5;:23;140:3;2852:16;;2846:23;;;;;;;;;;;;;;;;;2822:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2902:8;2892: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;;;2892:19:27;;;;;;;;;;;;;;;;2873:38;;2944:354;250:14;;;;;;;;;;;;;;;;;;240: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;;;240:25:27;;;;;;;;;;;;;;;;2950:31;;;:8;:31;;;;;2944:354;;;3036:15;3014:9;3024:8;3014: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;;;3014:19:27;;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;3056:30;;;;;;;;;;;;;:12;3069:8;3056:22;;;;;;;;;;;;;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;;;3056:22:27;;;;;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;3091:28;;;;;;;;;;;;;:13;3105:8;3091: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;;;3091:23:27;;;;;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;3165:5;:15;3171:8;3165:15;;;;;;;;;;;;;;;;;3154:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3215:20;;;;;;;;;;;;;:5;:15;3221:8;3215:15;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;:::i;:::-;;3284:8;3274: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;;;3274:19:27;;;;;;;;;;;;;;;;3263:30;;2944:354;;;3343:14;;;;;;;;;;;;;;;;;;3317:5;:23;140:3;3323:16;;3317:23;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:::i;:::-;;3408:8;:28;312:3;3417:18;;3408:28;;;;;;;;;;;;;;;;;;;;;;;;;;;3387:49;;3440:331;312:3;3461:18;;3446:33;;;:11;:33;;;;;3440:331;;;3510:11;3486:35;;3557:15;3526:12;:28;3539:14;3526:28;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;;;;;;;3577:39;;;;;;;;;;;;;:15;:31;3593:14;3577:31;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;:::i;:::-;;3621:37;;;;;;;;;;;;;:16;:32;3638:14;3621:32;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;:::i;:::-;;3677:8;:24;3686:14;3677:24;;;;;;;;;;;;;;;;;;;;;;;;;;;3663:38;;3763:3;3736:30;;:8;:24;3745:14;3736:24;;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;;3440:331;;;312:3;3821:18;;3790:8;:28;312:3;3799:18;;3790:28;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;2767:1076;;;;:::o;268:47::-;312:3;268:47;;;:::o;1608:149::-;1686:15;1668:9;1678:4;1668: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;;;1668:15:27;;;;;;;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;1726:8;1705:12;1718:4;1705:18;;;;;;;;;;;;;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;;;1705:18:27;;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:::i;:::-;;1738:15;1748:4;1738:9;:15::i;:::-;1608:149;;:::o;821:203::-;864:16;893:4;883: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;;;883:15:27;;;;;;;;;;;;;;;;864:34;;932:1;906:5;:15;912:8;906:15;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;:27;902:119;;;958:5;:23;140:3;964:16;;958:23;;;;;;;;;;;;;;;;;940:5;:15;946:8;940:15;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1012:4;986:5;:23;140:3;992:16;;986:23;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;:::i;:::-;;902:119;821:203;;:::o;1027:188::-;1104:3;1082:25;;:8;:18;1091:8;1082:18;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;1078:134;;;1135:8;:28;312:3;1144:18;;1135:28;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:8;:18;1123:8;1114:18;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;;1199:8;1168;:28;312:3;1177:18;;1168:28;;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;1078:134;1027:188;:::o;26:4585::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.23;\n\ncontract MockContract {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = 0x1;\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 = 0x1;\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) mocks;\n\tmapping(bytes => MockType) mockTypes;\n\tmapping(bytes => bytes) expectations;\n\tmapping(bytes => string) revertMessage;\n\n\tmapping(bytes4 => bytes4) anyMocks;\n\tmapping(bytes4 => MockType) mockTypesAny;\n\tmapping(bytes4 => bytes) expectationsAny;\n\tmapping(bytes4 => string) revertMessageAny;\n\n\tconstructor() {\n\t\tmocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tanyMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackMock(bytes call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (mocks[callHash].length == 0) {\n\t\t\tmocks[callHash] = mocks[MOCKS_LIST_START];\n\t\t\tmocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackAnyMock(bytes4 methodId) private {\n\t\tif (anyMocks[methodId] == 0x0) {\n\t\t\tanyMocks[methodId] = anyMocks[SENTINEL_ANY_MOCKS];\n\t\t\tanyMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\t/**\n\t * @dev Stores a response that the contract will return if the fallback function is called with the given method name and matching arguments.\n\t * @param call ABI encoded calldata that if invoked on this contract will return `response`. Parameter values need to match exactly.\n\t * @param response ABI encoded response that will be returned if this contract is invoked with `call`\n\t */\n\tfunction givenReturn(bytes call, bytes response) public {\n\t\tmockTypes[call] = MockType.Return;\n\t\texpectations[call] = response;\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenReturnAny(bytes4 method, bytes response) public {\n\t\tmockTypesAny[method] = MockType.Return;\n\t\texpectationsAny[method] = response;\n\t\ttrackAnyMock(method);\t\t\n\t}\n\n\tfunction givenRevert(bytes call) public {\n\t\tmockTypes[call] = MockType.Revert;\n\t\trevertMessage[call] = \"\";\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenRevertAny(bytes4 method) public {\n\t\tmockTypesAny[method] = MockType.Revert;\n\t\ttrackAnyMock(method);\t\t\n\t}\n\n\tfunction givenRevertWithMessage(bytes call, string message) public {\n\t\tmockTypes[call] = MockType.Revert;\n\t\trevertMessage[call] = message;\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenRevertAnyWithMessage(bytes4 method, string message) public {\n\t\tmockTypesAny[method] = MockType.Revert;\n\t\trevertMessageAny[method] = message;\n\t\ttrackAnyMock(method);\t\t\n\t}\n\n\tfunction givenOutOfGas(bytes call) public {\n\t\tmockTypes[call] = MockType.OutOfGas;\n\t\ttrackMock(call);\n\t}\n\n\tfunction givenOutOfGasAny(bytes4 method) public {\n\t\tmockTypesAny[method] = MockType.OutOfGas;\n\t\ttrackAnyMock(method);\t\n\t}\n\n\tfunction reset() public {\n\t\t// Reset all exact mocks\n\t\tbytes memory nextMock = mocks[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\tmockTypes[nextMock] = MockType.Return;\n\t\t\texpectations[nextMock] = hex\"\";\n\t\t\trevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = mocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tmocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tmocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any mocks\n\t\tbytes4 nextAnyMock = anyMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmockTypesAny[currentAnyMock] = MockType.Return;\n\t\t\texpectationsAny[currentAnyMock] = hex\"\";\n\t\t\trevertMessageAny[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = anyMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tanyMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tanyMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tassembly {\n\t\t\t\tsstore(sload(0x40), 1)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction() payable public {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\t\tif (mockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(revertMessage[msg.data]);\n\t\t}\n\t\tif (mockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = expectations[msg.data];\n\n\t\t// Check any mocks if there is no expected result\n\t\tif (result.length == 0) {\n\t\t\tif (mockTypesAny[methodId] == MockType.Revert) {\n\t\t\t\trevert(revertMessageAny[methodId]);\n\t\t\t}\n\t\t\tif (mockTypesAny[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = expectationsAny[methodId];\n\t\t}\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": [ 4476 ] }, "id": 4477, "nodeType": "SourceUnit", "nodes": [ { "id": 3969, "literals": [ "solidity", "^", "0.4", ".23" ], "nodeType": "PragmaDirective", "src": "0:24:27" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4476, "linearizedBaseContracts": [ 4476 ], "name": "MockContract", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "MockContract.MockType", "id": 3973, "members": [ { "id": 3970, "name": "Return", "nodeType": "EnumValue", "src": "67:6:27" }, { "id": 3971, "name": "Revert", "nodeType": "EnumValue", "src": "75:6:27" }, { "id": 3972, "name": "OutOfGas", "nodeType": "EnumValue", "src": "83:8:27" } ], "name": "MockType", "nodeType": "EnumDefinition", "src": "51:42:27" }, { "constant": true, "id": 3976, "name": "MOCKS_LIST_START", "nodeType": "VariableDeclaration", "scope": 4476, "src": "97:46:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3974, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "97:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "argumentTypes": null, "hexValue": "307831", "id": 3975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "140:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x1" }, "visibility": "public" }, { "constant": true, "id": 3979, "name": "MOCKS_LIST_END", "nodeType": "VariableDeclaration", "scope": 4476, "src": "146:45:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes" }, "typeName": { "id": 3977, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "146:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": { "argumentTypes": null, "hexValue": "30786666", "id": 3978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "185:6:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", "typeString": "literal_string \"0xff\"" }, "value": "0xff" }, "visibility": "public" }, { "constant": true, "id": 3984, "name": "MOCKS_LIST_END_HASH", "nodeType": "VariableDeclaration", "scope": 4476, "src": "194:71:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3980, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "194:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3982, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "250:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } ], "id": 3981, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "240:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 3983, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "240:25:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "public" }, { "constant": true, "id": 3987, "name": "SENTINEL_ANY_MOCKS", "nodeType": "VariableDeclaration", "scope": 4476, "src": "268:47:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 3985, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "268:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": { "argumentTypes": null, "hexValue": "307831", "id": 3986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "312:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x1" }, "visibility": "public" }, { "constant": false, "id": 3991, "name": "mocks", "nodeType": "VariableDeclaration", "scope": 4476, "src": "380:31:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes)" }, "typeName": { "id": 3990, "keyType": { "id": 3988, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "388:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "380:25:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes)" }, "valueType": { "id": 3989, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "399:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3995, "name": "mockTypes", "nodeType": "VariableDeclaration", "scope": 4476, "src": "414:36:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes => enum MockContract.MockType)" }, "typeName": { "id": 3994, "keyType": { "id": 3992, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "422:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "nodeType": "Mapping", "src": "414:26:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes => enum MockContract.MockType)" }, "valueType": { "contractScope": null, "id": 3993, "name": "MockType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3973, "src": "431:8:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3999, "name": "expectations", "nodeType": "VariableDeclaration", "scope": 4476, "src": "453:36:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes => bytes)" }, "typeName": { "id": 3998, "keyType": { "id": 3996, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "461:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "nodeType": "Mapping", "src": "453:23:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes => bytes)" }, "valueType": { "id": 3997, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "470:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4003, "name": "revertMessage", "nodeType": "VariableDeclaration", "scope": 4476, "src": "492:38:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes => string)" }, "typeName": { "id": 4002, "keyType": { "id": 4000, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "500:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "nodeType": "Mapping", "src": "492:24:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes => string)" }, "valueType": { "id": 4001, "name": "string", "nodeType": "ElementaryTypeName", "src": "509:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4007, "name": "anyMocks", "nodeType": "VariableDeclaration", "scope": 4476, "src": "534:34:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" }, "typeName": { "id": 4006, "keyType": { "id": 4004, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "542:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "534:25:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" }, "valueType": { "id": 4005, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "552:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4011, "name": "mockTypesAny", "nodeType": "VariableDeclaration", "scope": 4476, "src": "571:40:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" }, "typeName": { "id": 4010, "keyType": { "id": 4008, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "579:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "571:27:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" }, "valueType": { "contractScope": null, "id": 4009, "name": "MockType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3973, "src": "589:8:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4015, "name": "expectationsAny", "nodeType": "VariableDeclaration", "scope": 4476, "src": "614:40:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes)" }, "typeName": { "id": 4014, "keyType": { "id": 4012, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "622:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "614:24:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes)" }, "valueType": { "id": 4013, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "632:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4019, "name": "revertMessageAny", "nodeType": "VariableDeclaration", "scope": 4476, "src": "657:42:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string)" }, "typeName": { "id": 4018, "keyType": { "id": 4016, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "665:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "657:25:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string)" }, "valueType": { "id": 4017, "name": "string", "nodeType": "ElementaryTypeName", "src": "675:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } } }, "value": null, "visibility": "internal" }, { "body": { "id": 4034, "nodeType": "Block", "src": "717:101:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4022, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "721:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4024, "indexExpression": { "argumentTypes": null, "id": 4023, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "727:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "721:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4025, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "747:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, "src": "721:40:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4027, "nodeType": "ExpressionStatement", "src": "721:40:27" }, { "expression": { "argumentTypes": null, "id": 4032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4028, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "765:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4030, "indexExpression": { "argumentTypes": null, "id": 4029, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "774:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "765:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4031, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "796:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "765:49:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4033, "nodeType": "ExpressionStatement", "src": "765:49:27" } ] }, "documentation": null, "id": 4035, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 4020, "nodeType": "ParameterList", "parameters": [], "src": "714:2:27" }, "payable": false, "returnParameters": { "id": 4021, "nodeType": "ParameterList", "parameters": [], "src": "717:0:27" }, "scope": 4476, "src": "703:115:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4068, "nodeType": "Block", "src": "860:164:27", "statements": [ { "assignments": [ 4041 ], "declarations": [ { "constant": false, "id": 4041, "name": "callHash", "nodeType": "VariableDeclaration", "scope": 4069, "src": "864:16:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4040, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "864:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 4045, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4043, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4037, "src": "893:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4042, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "883:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 4044, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "883:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "864:34:27" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4051, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4046, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "906:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4048, "indexExpression": { "argumentTypes": null, "id": 4047, "name": "callHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4041, "src": "912:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "906:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4049, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "906:22:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 4050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "932:1:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "906:27:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4067, "nodeType": "IfStatement", "src": "902:119:27", "trueBody": { "id": 4066, "nodeType": "Block", "src": "935:86:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4052, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "940:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4054, "indexExpression": { "argumentTypes": null, "id": 4053, "name": "callHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4041, "src": "946:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "940:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4055, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "958:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4057, "indexExpression": { "argumentTypes": null, "id": 4056, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "964:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "958:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "940:41:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4059, "nodeType": "ExpressionStatement", "src": "940:41:27" }, { "expression": { "argumentTypes": null, "id": 4064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4060, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "986:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4062, "indexExpression": { "argumentTypes": null, "id": 4061, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "992:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "986:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4063, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4037, "src": "1012:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "986:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4065, "nodeType": "ExpressionStatement", "src": "986:30:27" } ] } } ] }, "documentation": null, "id": 4069, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "trackMock", "nodeType": "FunctionDefinition", "parameters": { "id": 4038, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4037, "name": "call", "nodeType": "VariableDeclaration", "scope": 4069, "src": "840:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4036, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "840:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "839:12:27" }, "payable": false, "returnParameters": { "id": 4039, "nodeType": "ParameterList", "parameters": [], "src": "860:0:27" }, "scope": 4476, "src": "821:203:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 4095, "nodeType": "Block", "src": "1074:141:27", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4074, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1082:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4076, "indexExpression": { "argumentTypes": null, "id": 4075, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4071, "src": "1091:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1082:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "307830", "id": 4077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1104:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0x0" }, "src": "1082:25:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4094, "nodeType": "IfStatement", "src": "1078:134:27", "trueBody": { "id": 4093, "nodeType": "Block", "src": "1109:103:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4079, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1114:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4081, "indexExpression": { "argumentTypes": null, "id": 4080, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4071, "src": "1123:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1114:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4082, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1135:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4084, "indexExpression": { "argumentTypes": null, "id": 4083, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "1144:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1135:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1114:49:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4086, "nodeType": "ExpressionStatement", "src": "1114:49:27" }, { "expression": { "argumentTypes": null, "id": 4091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4087, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1168:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4089, "indexExpression": { "argumentTypes": null, "id": 4088, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "1177:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1168:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4090, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4071, "src": "1199:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1168:39:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4092, "nodeType": "ExpressionStatement", "src": "1168:39:27" } ] } } ] }, "documentation": null, "id": 4096, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "trackAnyMock", "nodeType": "FunctionDefinition", "parameters": { "id": 4072, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4071, "name": "methodId", "nodeType": "VariableDeclaration", "scope": 4096, "src": "1049:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4070, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1049:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "1048:17:27" }, "payable": false, "returnParameters": { "id": 4073, "nodeType": "ParameterList", "parameters": [], "src": "1074:0:27" }, "scope": 4476, "src": "1027:188:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 4120, "nodeType": "Block", "src": "1664:93:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4103, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "1668:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4105, "indexExpression": { "argumentTypes": null, "id": 4104, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4098, "src": "1678:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1668:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4106, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "1686:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1686:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "1668:33:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4109, "nodeType": "ExpressionStatement", "src": "1668:33:27" }, { "expression": { "argumentTypes": null, "id": 4114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4110, "name": "expectations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3999, "src": "1705:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, "id": 4112, "indexExpression": { "argumentTypes": null, "id": 4111, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4098, "src": "1718:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1705:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4113, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4100, "src": "1726:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "1705:29:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4115, "nodeType": "ExpressionStatement", "src": "1705:29:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4117, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4098, "src": "1748:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4116, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "1738:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4118, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1738:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4119, "nodeType": "ExpressionStatement", "src": "1738:15:27" } ] }, "documentation": "@dev Stores a response that the contract will return if the fallback function is called with the given method name and matching arguments.\n@param call ABI encoded calldata that if invoked on this contract will return `response`. Parameter values need to match exactly.\n@param response ABI encoded response that will be returned if this contract is invoked with `call`", "id": 4121, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenReturn", "nodeType": "FunctionDefinition", "parameters": { "id": 4101, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4098, "name": "call", "nodeType": "VariableDeclaration", "scope": 4121, "src": "1629:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4097, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1629:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4100, "name": "response", "nodeType": "VariableDeclaration", "scope": 4121, "src": "1641:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4099, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1641:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1628:28:27" }, "payable": false, "returnParameters": { "id": 4102, "nodeType": "ParameterList", "parameters": [], "src": "1664:0:27" }, "scope": 4476, "src": "1608:149:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4145, "nodeType": "Block", "src": "1822:110:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4128, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "1826:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4130, "indexExpression": { "argumentTypes": null, "id": 4129, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "1839:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1826:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4131, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "1849:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4132, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1849:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "1826:38:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4134, "nodeType": "ExpressionStatement", "src": "1826:38:27" }, { "expression": { "argumentTypes": null, "id": 4139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4135, "name": "expectationsAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "1868:15:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, "id": 4137, "indexExpression": { "argumentTypes": null, "id": 4136, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "1884:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1868:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4138, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "1894:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "1868:34:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4140, "nodeType": "ExpressionStatement", "src": "1868:34:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4142, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "1919:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4141, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "1906:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4143, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1906:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4144, "nodeType": "ExpressionStatement", "src": "1906:20:27" } ] }, "documentation": null, "id": 4146, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenReturnAny", "nodeType": "FunctionDefinition", "parameters": { "id": 4126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4123, "name": "method", "nodeType": "VariableDeclaration", "scope": 4146, "src": "1784:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4122, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1784:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4125, "name": "response", "nodeType": "VariableDeclaration", "scope": 4146, "src": "1799:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4124, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1799:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1783:31:27" }, "payable": false, "returnParameters": { "id": 4127, "nodeType": "ParameterList", "parameters": [], "src": "1822:0:27" }, "scope": 4476, "src": "1760:172:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4168, "nodeType": "Block", "src": "1975:88:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4151, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "1979:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4153, "indexExpression": { "argumentTypes": null, "id": 4152, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4148, "src": "1989:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1979:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4154, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "1997:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4155, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1997:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "1979:33:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4157, "nodeType": "ExpressionStatement", "src": "1979:33:27" }, { "expression": { "argumentTypes": null, "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4158, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "2016:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4160, "indexExpression": { "argumentTypes": null, "id": 4159, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4148, "src": "2030:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2016:19:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2038:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "2016:24:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4163, "nodeType": "ExpressionStatement", "src": "2016:24:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4165, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4148, "src": "2054:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4164, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "2044:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4166, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2044:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4167, "nodeType": "ExpressionStatement", "src": "2044:15:27" } ] }, "documentation": null, "id": 4169, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevert", "nodeType": "FunctionDefinition", "parameters": { "id": 4149, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4148, "name": "call", "nodeType": "VariableDeclaration", "scope": 4169, "src": "1956:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4147, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1956:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1955:12:27" }, "payable": false, "returnParameters": { "id": 4150, "nodeType": "ParameterList", "parameters": [], "src": "1975:0:27" }, "scope": 4476, "src": "1935:128:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4185, "nodeType": "Block", "src": "2112:72:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4174, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "2116:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4176, "indexExpression": { "argumentTypes": null, "id": 4175, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4171, "src": "2129:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2116:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4177, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2139:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4178, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2139:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2116:38:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4180, "nodeType": "ExpressionStatement", "src": "2116:38:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4182, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4171, "src": "2171:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4181, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "2158:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4183, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2158:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4184, "nodeType": "ExpressionStatement", "src": "2158:20:27" } ] }, "documentation": null, "id": 4186, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevertAny", "nodeType": "FunctionDefinition", "parameters": { "id": 4172, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4171, "name": "method", "nodeType": "VariableDeclaration", "scope": 4186, "src": "2090:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4170, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2090:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "2089:15:27" }, "payable": false, "returnParameters": { "id": 4173, "nodeType": "ParameterList", "parameters": [], "src": "2112:0:27" }, "scope": 4476, "src": "2066:118:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4210, "nodeType": "Block", "src": "2254:93:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4193, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "2258:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4195, "indexExpression": { "argumentTypes": null, "id": 4194, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4188, "src": "2268:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2258:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4196, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2276:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4197, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2276:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2258:33:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4199, "nodeType": "ExpressionStatement", "src": "2258:33:27" }, { "expression": { "argumentTypes": null, "id": 4204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4200, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "2295:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4202, "indexExpression": { "argumentTypes": null, "id": 4201, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4188, "src": "2309:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2295:19:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4203, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4190, "src": "2317:7:27", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2295:29:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4205, "nodeType": "ExpressionStatement", "src": "2295:29:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4207, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4188, "src": "2338:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4206, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "2328:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4208, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2328:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4209, "nodeType": "ExpressionStatement", "src": "2328:15:27" } ] }, "documentation": null, "id": 4211, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { "id": 4191, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4188, "name": "call", "nodeType": "VariableDeclaration", "scope": 4211, "src": "2219:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4187, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2219:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4190, "name": "message", "nodeType": "VariableDeclaration", "scope": 4211, "src": "2231:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4189, "name": "string", "nodeType": "ElementaryTypeName", "src": "2231:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "2218:28:27" }, "payable": false, "returnParameters": { "id": 4192, "nodeType": "ParameterList", "parameters": [], "src": "2254:0:27" }, "scope": 4476, "src": "2187:160:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4235, "nodeType": "Block", "src": "2423:110:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4218, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "2427:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4220, "indexExpression": { "argumentTypes": null, "id": 4219, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4213, "src": "2440:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2427:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4221, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2450:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4222, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2450:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2427:38:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4224, "nodeType": "ExpressionStatement", "src": "2427:38:27" }, { "expression": { "argumentTypes": null, "id": 4229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4225, "name": "revertMessageAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4019, "src": "2469:16:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, "id": 4227, "indexExpression": { "argumentTypes": null, "id": 4226, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4213, "src": "2486:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2469:24:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4228, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4215, "src": "2496:7:27", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2469:34:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4230, "nodeType": "ExpressionStatement", "src": "2469:34:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4232, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4213, "src": "2520:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4231, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "2507:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2507:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4234, "nodeType": "ExpressionStatement", "src": "2507:20:27" } ] }, "documentation": null, "id": 4236, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevertAnyWithMessage", "nodeType": "FunctionDefinition", "parameters": { "id": 4216, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4213, "name": "method", "nodeType": "VariableDeclaration", "scope": 4236, "src": "2385:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4212, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2385:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4215, "name": "message", "nodeType": "VariableDeclaration", "scope": 4236, "src": "2400:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4214, "name": "string", "nodeType": "ElementaryTypeName", "src": "2400:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "2384:31:27" }, "payable": false, "returnParameters": { "id": 4217, "nodeType": "ParameterList", "parameters": [], "src": "2423:0:27" }, "scope": 4476, "src": "2350:183:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4252, "nodeType": "Block", "src": "2578:62:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4241, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "2582:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4243, "indexExpression": { "argumentTypes": null, "id": 4242, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4238, "src": "2592:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2582:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4244, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2600:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4245, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2600:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2582:35:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4247, "nodeType": "ExpressionStatement", "src": "2582:35:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4249, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4238, "src": "2631:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4248, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "2621:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4250, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2621:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4251, "nodeType": "ExpressionStatement", "src": "2621:15:27" } ] }, "documentation": null, "id": 4253, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenOutOfGas", "nodeType": "FunctionDefinition", "parameters": { "id": 4239, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4238, "name": "call", "nodeType": "VariableDeclaration", "scope": 4253, "src": "2559:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4237, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2559:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2558:12:27" }, "payable": false, "returnParameters": { "id": 4240, "nodeType": "ParameterList", "parameters": [], "src": "2578:0:27" }, "scope": 4476, "src": "2536:104:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4269, "nodeType": "Block", "src": "2691:73:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4258, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "2695:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4260, "indexExpression": { "argumentTypes": null, "id": 4259, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4255, "src": "2708:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2695:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4261, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2718:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4262, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2718:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2695:40:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4264, "nodeType": "ExpressionStatement", "src": "2695:40:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4266, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4255, "src": "2752:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4265, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "2739:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4267, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2739:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4268, "nodeType": "ExpressionStatement", "src": "2739:20:27" } ] }, "documentation": null, "id": 4270, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenOutOfGasAny", "nodeType": "FunctionDefinition", "parameters": { "id": 4256, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4255, "name": "method", "nodeType": "VariableDeclaration", "scope": 4270, "src": "2669:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4254, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2669:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "2668:15:27" }, "payable": false, "returnParameters": { "id": 4257, "nodeType": "ParameterList", "parameters": [], "src": "2691:0:27" }, "scope": 4476, "src": "2643:121:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4385, "nodeType": "Block", "src": "2791:1052:27", "statements": [ { "assignments": [ 4274 ], "declarations": [ { "constant": false, "id": 4274, "name": "nextMock", "nodeType": "VariableDeclaration", "scope": 4386, "src": "2822:21:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4273, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2822:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 4278, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4275, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "2846:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4277, "indexExpression": { "argumentTypes": null, "id": 4276, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "2852:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2846:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "2822:47:27" }, { "assignments": [ 4280 ], "declarations": [ { "constant": false, "id": 4280, "name": "mockHash", "nodeType": "VariableDeclaration", "scope": 4386, "src": "2873:16:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4279, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2873:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 4284, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4282, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "2902:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4281, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "2892:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 4283, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2892:19:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "2873:38:27" }, { "body": { "id": 4325, "nodeType": "Block", "src": "2983:315:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4288, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "3014:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4290, "indexExpression": { "argumentTypes": null, "id": 4289, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3024:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3014:19:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4291, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "3036:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3036:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "3014:37:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4294, "nodeType": "ExpressionStatement", "src": "3014:37:27" }, { "expression": { "argumentTypes": null, "id": 4299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4295, "name": "expectations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3999, "src": "3056:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, "id": 4297, "indexExpression": { "argumentTypes": null, "id": 4296, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3069:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3056:22:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3081:5:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3056:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4300, "nodeType": "ExpressionStatement", "src": "3056:30:27" }, { "expression": { "argumentTypes": null, "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4301, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "3091:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4303, "indexExpression": { "argumentTypes": null, "id": 4302, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3105:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3091:23:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4304, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3117:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3091:28:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4306, "nodeType": "ExpressionStatement", "src": "3091:28:27" }, { "expression": { "argumentTypes": null, "id": 4311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4307, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3154:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4308, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "3165:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4310, "indexExpression": { "argumentTypes": null, "id": 4309, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "3171:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3165:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "3154:26:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 4312, "nodeType": "ExpressionStatement", "src": "3154:26:27" }, { "expression": { "argumentTypes": null, "id": 4317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4313, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "3215:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4315, "indexExpression": { "argumentTypes": null, "id": 4314, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "3221:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3215:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3233:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3215:20:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4318, "nodeType": "ExpressionStatement", "src": "3215:20:27" }, { "expression": { "argumentTypes": null, "id": 4323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4319, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "3263:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4321, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3284:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4320, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "3274:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 4322, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3274:19:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "3263:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 4324, "nodeType": "ExpressionStatement", "src": "3263:30:27" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 4287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4285, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "2950:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 4286, "name": "MOCKS_LIST_END_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3984, "src": "2962:19:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2950:31:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4326, "nodeType": "WhileStatement", "src": "2944:354:27" }, { "expression": { "argumentTypes": null, "id": 4331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4327, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "3317:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4329, "indexExpression": { "argumentTypes": null, "id": 4328, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "3323:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3317:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4330, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "3343:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, "src": "3317:40:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4332, "nodeType": "ExpressionStatement", "src": "3317:40:27" }, { "assignments": [ 4334 ], "declarations": [ { "constant": false, "id": 4334, "name": "nextAnyMock", "nodeType": "VariableDeclaration", "scope": 4386, "src": "3387:18:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4333, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3387:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "id": 4338, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4335, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3408:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4337, "indexExpression": { "argumentTypes": null, "id": 4336, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3417:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3408:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", "src": "3387:49:27" }, { "body": { "id": 4377, "nodeType": "Block", "src": "3481:290:27", "statements": [ { "assignments": [ 4343 ], "declarations": [ { "constant": false, "id": 4343, "name": "currentAnyMock", "nodeType": "VariableDeclaration", "scope": 4386, "src": "3486:21:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4342, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3486:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "id": 4345, "initialValue": { "argumentTypes": null, "id": 4344, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4334, "src": "3510:11:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", "src": "3486:35:27" }, { "expression": { "argumentTypes": null, "id": 4351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4346, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "3526:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4348, "indexExpression": { "argumentTypes": null, "id": 4347, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3539:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3526:28:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4349, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "3557:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4350, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3557:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "3526:46:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4352, "nodeType": "ExpressionStatement", "src": "3526:46:27" }, { "expression": { "argumentTypes": null, "id": 4357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4353, "name": "expectationsAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "3577:15:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, "id": 4355, "indexExpression": { "argumentTypes": null, "id": 4354, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3593:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3577:31:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3611:5:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3577:39:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4358, "nodeType": "ExpressionStatement", "src": "3577:39:27" }, { "expression": { "argumentTypes": null, "id": 4363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4359, "name": "revertMessageAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4019, "src": "3621:16:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, "id": 4361, "indexExpression": { "argumentTypes": null, "id": 4360, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3638:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3621:32:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4362, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3656:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3621:37:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4364, "nodeType": "ExpressionStatement", "src": "3621:37:27" }, { "expression": { "argumentTypes": null, "id": 4369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4365, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4334, "src": "3663:11:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4366, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3677:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4368, "indexExpression": { "argumentTypes": null, "id": 4367, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3686:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3677:24:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "3663:38:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4370, "nodeType": "ExpressionStatement", "src": "3663:38:27" }, { "expression": { "argumentTypes": null, "id": 4375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4371, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3736:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4373, "indexExpression": { "argumentTypes": null, "id": 4372, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3745:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3736:24:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "307830", "id": 4374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3763:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0x0" }, "src": "3736:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4376, "nodeType": "ExpressionStatement", "src": "3736:30:27" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4339, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4334, "src": "3446:11:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 4340, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3461:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "3446:33:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4378, "nodeType": "WhileStatement", "src": "3440:331:27" }, { "expression": { "argumentTypes": null, "id": 4383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4379, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3790:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4381, "indexExpression": { "argumentTypes": null, "id": 4380, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3799:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3790:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4382, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3821:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "3790:49:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4384, "nodeType": "ExpressionStatement", "src": "3790:49:27" } ] }, "documentation": null, "id": 4386, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "reset", "nodeType": "FunctionDefinition", "parameters": { "id": 4271, "nodeType": "ParameterList", "parameters": [], "src": "2781:2:27" }, "payable": false, "returnParameters": { "id": 4272, "nodeType": "ParameterList", "parameters": [], "src": "2791:0:27" }, "scope": 4476, "src": "2767:1076:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4393, "nodeType": "Block", "src": "3875:70:27", "statements": [ { "body": { "id": 4391, "nodeType": "Block", "src": "3891:51:27", "statements": [ { "externalReferences": [], "id": 4390, "nodeType": "InlineAssembly", "operations": "{\n sstore(sload(0x40), 1)\n}", "src": "3896:46:27" } ] }, "condition": { "argumentTypes": null, "hexValue": "74727565", "id": 4389, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3885:4:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "id": 4392, "nodeType": "WhileStatement", "src": "3879:63:27" } ] }, "documentation": null, "id": 4394, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "useAllGas", "nodeType": "FunctionDefinition", "parameters": { "id": 4387, "nodeType": "ParameterList", "parameters": [], "src": "3864:2:27" }, "payable": false, "returnParameters": { "id": 4388, "nodeType": "ParameterList", "parameters": [], "src": "3875:0:27" }, "scope": 4476, "src": "3846:99:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 4474, "nodeType": "Block", "src": "3974:635:27", "statements": [ { "assignments": [], "declarations": [ { "constant": false, "id": 4398, "name": "methodId", "nodeType": "VariableDeclaration", "scope": 4475, "src": "3978:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4397, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3978:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "id": 4399, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "3978:15:27" }, { "externalReferences": [ { "methodId": { "declaration": 4398, "isOffset": false, "isSlot": false, "src": "4011:8:27", "valueSize": 1 } } ], "id": 4400, "nodeType": "InlineAssembly", "operations": "{\n methodId := calldataload(0)\n}", "src": "3997:50:27" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4401, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "4049:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4404, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4059:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4059:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4049:19:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4405, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4072:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4406, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4072:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4049:38:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4416, "nodeType": "IfStatement", "src": "4045:85:27", "trueBody": { "id": 4415, "nodeType": "Block", "src": "4089:41:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4409, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "4101:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4412, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4115:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4115:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4101:23:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "id": 4408, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 4496, 4497 ], "referencedDeclaration": 4497, "src": "4094:6:27", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 4413, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4094:31:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4414, "nodeType": "ExpressionStatement", "src": "4094:31:27" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4417, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "4137:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4420, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4418, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4147:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4147:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4137:19:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4421, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4160:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4422, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4160:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4137:40:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4428, "nodeType": "IfStatement", "src": "4133:67:27", "trueBody": { "id": 4427, "nodeType": "Block", "src": "4179:21:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 4424, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4394, "src": "4184:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 4425, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4184:11:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4426, "nodeType": "ExpressionStatement", "src": "4184:11:27" } ] } }, { "assignments": [ 4430 ], "declarations": [ { "constant": false, "id": 4430, "name": "result", "nodeType": "VariableDeclaration", "scope": 4475, "src": "4203:19:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4429, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4203:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 4435, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4431, "name": "expectations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3999, "src": "4225:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, "id": 4434, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4432, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4238:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4238:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4225:22:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "4203:44:27" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4436, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4430, "src": "4308:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 4437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4308:13:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 4438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4325:1:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "4308:18:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4472, "nodeType": "IfStatement", "src": "4304:241:27", "trueBody": { "id": 4471, "nodeType": "Block", "src": "4328:217:27", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4440, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "4337:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4442, "indexExpression": { "argumentTypes": null, "id": 4441, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4350:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4337:22:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4443, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4363:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4444, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4363:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4337:41:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4453, "nodeType": "IfStatement", "src": "4333:93:27", "trueBody": { "id": 4452, "nodeType": "Block", "src": "4380:46:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4447, "name": "revertMessageAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4019, "src": "4393:16:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, "id": 4449, "indexExpression": { "argumentTypes": null, "id": 4448, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4410:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4393:26:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "id": 4446, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 4496, 4497 ], "referencedDeclaration": 4497, "src": "4386:6:27", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 4450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4386:34:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4451, "nodeType": "ExpressionStatement", "src": "4386:34:27" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4454, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "4434:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4456, "indexExpression": { "argumentTypes": null, "id": 4455, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4447:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4434:22:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4457, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4460:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4460:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4434:43:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4464, "nodeType": "IfStatement", "src": "4430:72:27", "trueBody": { "id": 4463, "nodeType": "Block", "src": "4479:23:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 4460, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4394, "src": "4485:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 4461, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4485:11:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4462, "nodeType": "ExpressionStatement", "src": "4485:11:27" } ] } }, { "expression": { "argumentTypes": null, "id": 4469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4465, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4430, "src": "4506:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4466, "name": "expectationsAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "4515:15:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, "id": 4468, "indexExpression": { "argumentTypes": null, "id": 4467, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4531:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4515:25:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "4506:34:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 4470, "nodeType": "ExpressionStatement", "src": "4506:34:27" } ] } }, { "externalReferences": [ { "result": { "declaration": 4430, "isOffset": false, "isSlot": false, "src": "4579:6:27", "valueSize": 1 } }, { "result": { "declaration": 4430, "isOffset": false, "isSlot": false, "src": "4594:6:27", "valueSize": 1 } } ], "id": 4473, "nodeType": "InlineAssembly", "operations": "{\n return(add(0x20, result), mload(result))\n}", "src": "4548:61:27" } ] }, "documentation": null, "id": 4475, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 4395, "nodeType": "ParameterList", "parameters": [], "src": "3956:2:27" }, "payable": true, "returnParameters": { "id": 4396, "nodeType": "ParameterList", "parameters": [], "src": "3974:0:27" }, "scope": 4476, "src": "3948:661:27", "stateMutability": "payable", "superFunction": null, "visibility": "public" } ], "scope": 4477, "src": "26:4585:27" } ], "src": "0:4612:27" }, "legacyAST": { "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", "exportedSymbols": { "MockContract": [ 4476 ] }, "id": 4477, "nodeType": "SourceUnit", "nodes": [ { "id": 3969, "literals": [ "solidity", "^", "0.4", ".23" ], "nodeType": "PragmaDirective", "src": "0:24:27" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4476, "linearizedBaseContracts": [ 4476 ], "name": "MockContract", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "MockContract.MockType", "id": 3973, "members": [ { "id": 3970, "name": "Return", "nodeType": "EnumValue", "src": "67:6:27" }, { "id": 3971, "name": "Revert", "nodeType": "EnumValue", "src": "75:6:27" }, { "id": 3972, "name": "OutOfGas", "nodeType": "EnumValue", "src": "83:8:27" } ], "name": "MockType", "nodeType": "EnumDefinition", "src": "51:42:27" }, { "constant": true, "id": 3976, "name": "MOCKS_LIST_START", "nodeType": "VariableDeclaration", "scope": 4476, "src": "97:46:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3974, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "97:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "argumentTypes": null, "hexValue": "307831", "id": 3975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "140:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x1" }, "visibility": "public" }, { "constant": true, "id": 3979, "name": "MOCKS_LIST_END", "nodeType": "VariableDeclaration", "scope": 4476, "src": "146:45:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes" }, "typeName": { "id": 3977, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "146:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": { "argumentTypes": null, "hexValue": "30786666", "id": 3978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "185:6:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", "typeString": "literal_string \"0xff\"" }, "value": "0xff" }, "visibility": "public" }, { "constant": true, "id": 3984, "name": "MOCKS_LIST_END_HASH", "nodeType": "VariableDeclaration", "scope": 4476, "src": "194:71:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3980, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "194:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3982, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "250:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } ], "id": 3981, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "240:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 3983, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "240:25:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "public" }, { "constant": true, "id": 3987, "name": "SENTINEL_ANY_MOCKS", "nodeType": "VariableDeclaration", "scope": 4476, "src": "268:47:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 3985, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "268:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": { "argumentTypes": null, "hexValue": "307831", "id": 3986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "312:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x1" }, "visibility": "public" }, { "constant": false, "id": 3991, "name": "mocks", "nodeType": "VariableDeclaration", "scope": 4476, "src": "380:31:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes)" }, "typeName": { "id": 3990, "keyType": { "id": 3988, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "388:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "380:25:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes)" }, "valueType": { "id": 3989, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "399:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3995, "name": "mockTypes", "nodeType": "VariableDeclaration", "scope": 4476, "src": "414:36:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes => enum MockContract.MockType)" }, "typeName": { "id": 3994, "keyType": { "id": 3992, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "422:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "nodeType": "Mapping", "src": "414:26:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes => enum MockContract.MockType)" }, "valueType": { "contractScope": null, "id": 3993, "name": "MockType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3973, "src": "431:8:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3999, "name": "expectations", "nodeType": "VariableDeclaration", "scope": 4476, "src": "453:36:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes => bytes)" }, "typeName": { "id": 3998, "keyType": { "id": 3996, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "461:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "nodeType": "Mapping", "src": "453:23:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes => bytes)" }, "valueType": { "id": 3997, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "470:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4003, "name": "revertMessage", "nodeType": "VariableDeclaration", "scope": 4476, "src": "492:38:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes => string)" }, "typeName": { "id": 4002, "keyType": { "id": 4000, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "500:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "nodeType": "Mapping", "src": "492:24:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes => string)" }, "valueType": { "id": 4001, "name": "string", "nodeType": "ElementaryTypeName", "src": "509:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4007, "name": "anyMocks", "nodeType": "VariableDeclaration", "scope": 4476, "src": "534:34:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" }, "typeName": { "id": 4006, "keyType": { "id": 4004, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "542:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "534:25:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" }, "valueType": { "id": 4005, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "552:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4011, "name": "mockTypesAny", "nodeType": "VariableDeclaration", "scope": 4476, "src": "571:40:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" }, "typeName": { "id": 4010, "keyType": { "id": 4008, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "579:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "571:27:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" }, "valueType": { "contractScope": null, "id": 4009, "name": "MockType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3973, "src": "589:8:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4015, "name": "expectationsAny", "nodeType": "VariableDeclaration", "scope": 4476, "src": "614:40:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes)" }, "typeName": { "id": 4014, "keyType": { "id": 4012, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "622:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "614:24:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes)" }, "valueType": { "id": 4013, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "632:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4019, "name": "revertMessageAny", "nodeType": "VariableDeclaration", "scope": 4476, "src": "657:42:27", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string)" }, "typeName": { "id": 4018, "keyType": { "id": 4016, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "665:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "657:25:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string)" }, "valueType": { "id": 4017, "name": "string", "nodeType": "ElementaryTypeName", "src": "675:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } } }, "value": null, "visibility": "internal" }, { "body": { "id": 4034, "nodeType": "Block", "src": "717:101:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4022, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "721:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4024, "indexExpression": { "argumentTypes": null, "id": 4023, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "727:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "721:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4025, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "747:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, "src": "721:40:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4027, "nodeType": "ExpressionStatement", "src": "721:40:27" }, { "expression": { "argumentTypes": null, "id": 4032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4028, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "765:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4030, "indexExpression": { "argumentTypes": null, "id": 4029, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "774:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "765:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4031, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "796:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "765:49:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4033, "nodeType": "ExpressionStatement", "src": "765:49:27" } ] }, "documentation": null, "id": 4035, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 4020, "nodeType": "ParameterList", "parameters": [], "src": "714:2:27" }, "payable": false, "returnParameters": { "id": 4021, "nodeType": "ParameterList", "parameters": [], "src": "717:0:27" }, "scope": 4476, "src": "703:115:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4068, "nodeType": "Block", "src": "860:164:27", "statements": [ { "assignments": [ 4041 ], "declarations": [ { "constant": false, "id": 4041, "name": "callHash", "nodeType": "VariableDeclaration", "scope": 4069, "src": "864:16:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4040, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "864:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 4045, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4043, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4037, "src": "893:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4042, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "883:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 4044, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "883:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "864:34:27" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4051, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4046, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "906:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4048, "indexExpression": { "argumentTypes": null, "id": 4047, "name": "callHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4041, "src": "912:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "906:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4049, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "906:22:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 4050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "932:1:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "906:27:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4067, "nodeType": "IfStatement", "src": "902:119:27", "trueBody": { "id": 4066, "nodeType": "Block", "src": "935:86:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4052, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "940:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4054, "indexExpression": { "argumentTypes": null, "id": 4053, "name": "callHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4041, "src": "946:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "940:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4055, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "958:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4057, "indexExpression": { "argumentTypes": null, "id": 4056, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "964:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "958:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "940:41:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4059, "nodeType": "ExpressionStatement", "src": "940:41:27" }, { "expression": { "argumentTypes": null, "id": 4064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4060, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "986:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4062, "indexExpression": { "argumentTypes": null, "id": 4061, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "992:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "986:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4063, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4037, "src": "1012:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "986:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4065, "nodeType": "ExpressionStatement", "src": "986:30:27" } ] } } ] }, "documentation": null, "id": 4069, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "trackMock", "nodeType": "FunctionDefinition", "parameters": { "id": 4038, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4037, "name": "call", "nodeType": "VariableDeclaration", "scope": 4069, "src": "840:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4036, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "840:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "839:12:27" }, "payable": false, "returnParameters": { "id": 4039, "nodeType": "ParameterList", "parameters": [], "src": "860:0:27" }, "scope": 4476, "src": "821:203:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 4095, "nodeType": "Block", "src": "1074:141:27", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4074, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1082:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4076, "indexExpression": { "argumentTypes": null, "id": 4075, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4071, "src": "1091:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1082:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "307830", "id": 4077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1104:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0x0" }, "src": "1082:25:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4094, "nodeType": "IfStatement", "src": "1078:134:27", "trueBody": { "id": 4093, "nodeType": "Block", "src": "1109:103:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4079, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1114:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4081, "indexExpression": { "argumentTypes": null, "id": 4080, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4071, "src": "1123:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1114:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4082, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1135:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4084, "indexExpression": { "argumentTypes": null, "id": 4083, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "1144:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1135:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1114:49:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4086, "nodeType": "ExpressionStatement", "src": "1114:49:27" }, { "expression": { "argumentTypes": null, "id": 4091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4087, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "1168:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4089, "indexExpression": { "argumentTypes": null, "id": 4088, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "1177:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1168:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4090, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4071, "src": "1199:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1168:39:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4092, "nodeType": "ExpressionStatement", "src": "1168:39:27" } ] } } ] }, "documentation": null, "id": 4096, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "trackAnyMock", "nodeType": "FunctionDefinition", "parameters": { "id": 4072, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4071, "name": "methodId", "nodeType": "VariableDeclaration", "scope": 4096, "src": "1049:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4070, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1049:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "1048:17:27" }, "payable": false, "returnParameters": { "id": 4073, "nodeType": "ParameterList", "parameters": [], "src": "1074:0:27" }, "scope": 4476, "src": "1027:188:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 4120, "nodeType": "Block", "src": "1664:93:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4103, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "1668:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4105, "indexExpression": { "argumentTypes": null, "id": 4104, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4098, "src": "1678:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1668:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4106, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "1686:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1686:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "1668:33:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4109, "nodeType": "ExpressionStatement", "src": "1668:33:27" }, { "expression": { "argumentTypes": null, "id": 4114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4110, "name": "expectations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3999, "src": "1705:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, "id": 4112, "indexExpression": { "argumentTypes": null, "id": 4111, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4098, "src": "1718:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1705:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4113, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4100, "src": "1726:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "1705:29:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4115, "nodeType": "ExpressionStatement", "src": "1705:29:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4117, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4098, "src": "1748:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4116, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "1738:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4118, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1738:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4119, "nodeType": "ExpressionStatement", "src": "1738:15:27" } ] }, "documentation": "@dev Stores a response that the contract will return if the fallback function is called with the given method name and matching arguments.\n@param call ABI encoded calldata that if invoked on this contract will return `response`. Parameter values need to match exactly.\n@param response ABI encoded response that will be returned if this contract is invoked with `call`", "id": 4121, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenReturn", "nodeType": "FunctionDefinition", "parameters": { "id": 4101, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4098, "name": "call", "nodeType": "VariableDeclaration", "scope": 4121, "src": "1629:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4097, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1629:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4100, "name": "response", "nodeType": "VariableDeclaration", "scope": 4121, "src": "1641:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4099, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1641:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1628:28:27" }, "payable": false, "returnParameters": { "id": 4102, "nodeType": "ParameterList", "parameters": [], "src": "1664:0:27" }, "scope": 4476, "src": "1608:149:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4145, "nodeType": "Block", "src": "1822:110:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4128, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "1826:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4130, "indexExpression": { "argumentTypes": null, "id": 4129, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "1839:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1826:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4131, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "1849:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4132, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1849:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "1826:38:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4134, "nodeType": "ExpressionStatement", "src": "1826:38:27" }, { "expression": { "argumentTypes": null, "id": 4139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4135, "name": "expectationsAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "1868:15:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, "id": 4137, "indexExpression": { "argumentTypes": null, "id": 4136, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "1884:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1868:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4138, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "1894:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "1868:34:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4140, "nodeType": "ExpressionStatement", "src": "1868:34:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4142, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4123, "src": "1919:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4141, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "1906:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4143, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1906:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4144, "nodeType": "ExpressionStatement", "src": "1906:20:27" } ] }, "documentation": null, "id": 4146, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenReturnAny", "nodeType": "FunctionDefinition", "parameters": { "id": 4126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4123, "name": "method", "nodeType": "VariableDeclaration", "scope": 4146, "src": "1784:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4122, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1784:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4125, "name": "response", "nodeType": "VariableDeclaration", "scope": 4146, "src": "1799:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4124, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1799:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1783:31:27" }, "payable": false, "returnParameters": { "id": 4127, "nodeType": "ParameterList", "parameters": [], "src": "1822:0:27" }, "scope": 4476, "src": "1760:172:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4168, "nodeType": "Block", "src": "1975:88:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4151, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "1979:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4153, "indexExpression": { "argumentTypes": null, "id": 4152, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4148, "src": "1989:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1979:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4154, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "1997:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4155, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1997:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "1979:33:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4157, "nodeType": "ExpressionStatement", "src": "1979:33:27" }, { "expression": { "argumentTypes": null, "id": 4162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4158, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "2016:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4160, "indexExpression": { "argumentTypes": null, "id": 4159, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4148, "src": "2030:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2016:19:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2038:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "2016:24:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4163, "nodeType": "ExpressionStatement", "src": "2016:24:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4165, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4148, "src": "2054:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4164, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "2044:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4166, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2044:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4167, "nodeType": "ExpressionStatement", "src": "2044:15:27" } ] }, "documentation": null, "id": 4169, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevert", "nodeType": "FunctionDefinition", "parameters": { "id": 4149, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4148, "name": "call", "nodeType": "VariableDeclaration", "scope": 4169, "src": "1956:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4147, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1956:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1955:12:27" }, "payable": false, "returnParameters": { "id": 4150, "nodeType": "ParameterList", "parameters": [], "src": "1975:0:27" }, "scope": 4476, "src": "1935:128:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4185, "nodeType": "Block", "src": "2112:72:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4174, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "2116:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4176, "indexExpression": { "argumentTypes": null, "id": 4175, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4171, "src": "2129:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2116:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4177, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2139:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4178, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2139:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2116:38:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4180, "nodeType": "ExpressionStatement", "src": "2116:38:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4182, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4171, "src": "2171:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4181, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "2158:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4183, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2158:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4184, "nodeType": "ExpressionStatement", "src": "2158:20:27" } ] }, "documentation": null, "id": 4186, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevertAny", "nodeType": "FunctionDefinition", "parameters": { "id": 4172, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4171, "name": "method", "nodeType": "VariableDeclaration", "scope": 4186, "src": "2090:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4170, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2090:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "2089:15:27" }, "payable": false, "returnParameters": { "id": 4173, "nodeType": "ParameterList", "parameters": [], "src": "2112:0:27" }, "scope": 4476, "src": "2066:118:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4210, "nodeType": "Block", "src": "2254:93:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4193, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "2258:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4195, "indexExpression": { "argumentTypes": null, "id": 4194, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4188, "src": "2268:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2258:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4196, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2276:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4197, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2276:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2258:33:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4199, "nodeType": "ExpressionStatement", "src": "2258:33:27" }, { "expression": { "argumentTypes": null, "id": 4204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4200, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "2295:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4202, "indexExpression": { "argumentTypes": null, "id": 4201, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4188, "src": "2309:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2295:19:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4203, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4190, "src": "2317:7:27", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2295:29:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4205, "nodeType": "ExpressionStatement", "src": "2295:29:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4207, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4188, "src": "2338:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4206, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "2328:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4208, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2328:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4209, "nodeType": "ExpressionStatement", "src": "2328:15:27" } ] }, "documentation": null, "id": 4211, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevertWithMessage", "nodeType": "FunctionDefinition", "parameters": { "id": 4191, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4188, "name": "call", "nodeType": "VariableDeclaration", "scope": 4211, "src": "2219:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4187, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2219:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4190, "name": "message", "nodeType": "VariableDeclaration", "scope": 4211, "src": "2231:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4189, "name": "string", "nodeType": "ElementaryTypeName", "src": "2231:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "2218:28:27" }, "payable": false, "returnParameters": { "id": 4192, "nodeType": "ParameterList", "parameters": [], "src": "2254:0:27" }, "scope": 4476, "src": "2187:160:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4235, "nodeType": "Block", "src": "2423:110:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4218, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "2427:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4220, "indexExpression": { "argumentTypes": null, "id": 4219, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4213, "src": "2440:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2427:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4221, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2450:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4222, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2450:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2427:38:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4224, "nodeType": "ExpressionStatement", "src": "2427:38:27" }, { "expression": { "argumentTypes": null, "id": 4229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4225, "name": "revertMessageAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4019, "src": "2469:16:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, "id": 4227, "indexExpression": { "argumentTypes": null, "id": 4226, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4213, "src": "2486:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2469:24:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4228, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4215, "src": "2496:7:27", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2469:34:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4230, "nodeType": "ExpressionStatement", "src": "2469:34:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4232, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4213, "src": "2520:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4231, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "2507:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2507:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4234, "nodeType": "ExpressionStatement", "src": "2507:20:27" } ] }, "documentation": null, "id": 4236, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenRevertAnyWithMessage", "nodeType": "FunctionDefinition", "parameters": { "id": 4216, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4213, "name": "method", "nodeType": "VariableDeclaration", "scope": 4236, "src": "2385:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4212, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2385:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4215, "name": "message", "nodeType": "VariableDeclaration", "scope": 4236, "src": "2400:14:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4214, "name": "string", "nodeType": "ElementaryTypeName", "src": "2400:6:27", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "2384:31:27" }, "payable": false, "returnParameters": { "id": 4217, "nodeType": "ParameterList", "parameters": [], "src": "2423:0:27" }, "scope": 4476, "src": "2350:183:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4252, "nodeType": "Block", "src": "2578:62:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4241, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "2582:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4243, "indexExpression": { "argumentTypes": null, "id": 4242, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4238, "src": "2592:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2582:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4244, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2600:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4245, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2600:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2582:35:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4247, "nodeType": "ExpressionStatement", "src": "2582:35:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4249, "name": "call", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4238, "src": "2631:4:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4248, "name": "trackMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4069, "src": "2621:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, "id": 4250, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2621:15:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4251, "nodeType": "ExpressionStatement", "src": "2621:15:27" } ] }, "documentation": null, "id": 4253, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenOutOfGas", "nodeType": "FunctionDefinition", "parameters": { "id": 4239, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4238, "name": "call", "nodeType": "VariableDeclaration", "scope": 4253, "src": "2559:10:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4237, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2559:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "2558:12:27" }, "payable": false, "returnParameters": { "id": 4240, "nodeType": "ParameterList", "parameters": [], "src": "2578:0:27" }, "scope": 4476, "src": "2536:104:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4269, "nodeType": "Block", "src": "2691:73:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4258, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "2695:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4260, "indexExpression": { "argumentTypes": null, "id": 4259, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4255, "src": "2708:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2695:20:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4261, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "2718:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4262, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2718:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "2695:40:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4264, "nodeType": "ExpressionStatement", "src": "2695:40:27" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4266, "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4255, "src": "2752:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4265, "name": "trackAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4096, "src": "2739:12:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4267, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2739:20:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4268, "nodeType": "ExpressionStatement", "src": "2739:20:27" } ] }, "documentation": null, "id": 4270, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "givenOutOfGasAny", "nodeType": "FunctionDefinition", "parameters": { "id": 4256, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4255, "name": "method", "nodeType": "VariableDeclaration", "scope": 4270, "src": "2669:13:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4254, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "2669:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "2668:15:27" }, "payable": false, "returnParameters": { "id": 4257, "nodeType": "ParameterList", "parameters": [], "src": "2691:0:27" }, "scope": 4476, "src": "2643:121:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4385, "nodeType": "Block", "src": "2791:1052:27", "statements": [ { "assignments": [ 4274 ], "declarations": [ { "constant": false, "id": 4274, "name": "nextMock", "nodeType": "VariableDeclaration", "scope": 4386, "src": "2822:21:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4273, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2822:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 4278, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4275, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "2846:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4277, "indexExpression": { "argumentTypes": null, "id": 4276, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "2852:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2846:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "2822:47:27" }, { "assignments": [ 4280 ], "declarations": [ { "constant": false, "id": 4280, "name": "mockHash", "nodeType": "VariableDeclaration", "scope": 4386, "src": "2873:16:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4279, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2873:7:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 4284, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4282, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "2902:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4281, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "2892:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 4283, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2892:19:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "2873:38:27" }, { "body": { "id": 4325, "nodeType": "Block", "src": "2983:315:27", "statements": [ { "expression": { "argumentTypes": null, "id": 4293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4288, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "3014:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4290, "indexExpression": { "argumentTypes": null, "id": 4289, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3024:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3014:19:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4291, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "3036:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3036:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "3014:37:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4294, "nodeType": "ExpressionStatement", "src": "3014:37:27" }, { "expression": { "argumentTypes": null, "id": 4299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4295, "name": "expectations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3999, "src": "3056:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, "id": 4297, "indexExpression": { "argumentTypes": null, "id": 4296, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3069:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3056:22:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3081:5:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3056:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4300, "nodeType": "ExpressionStatement", "src": "3056:30:27" }, { "expression": { "argumentTypes": null, "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4301, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "3091:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4303, "indexExpression": { "argumentTypes": null, "id": 4302, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3105:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3091:23:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4304, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3117:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3091:28:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4306, "nodeType": "ExpressionStatement", "src": "3091:28:27" }, { "expression": { "argumentTypes": null, "id": 4311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4307, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3154:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4308, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "3165:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4310, "indexExpression": { "argumentTypes": null, "id": 4309, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "3171:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3165:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "3154:26:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 4312, "nodeType": "ExpressionStatement", "src": "3154:26:27" }, { "expression": { "argumentTypes": null, "id": 4317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4313, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "3215:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4315, "indexExpression": { "argumentTypes": null, "id": 4314, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "3221:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3215:15:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3233:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3215:20:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4318, "nodeType": "ExpressionStatement", "src": "3215:20:27" }, { "expression": { "argumentTypes": null, "id": 4323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4319, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "3263:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4321, "name": "nextMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4274, "src": "3284:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 4320, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4485, "src": "3274:9:27", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 4322, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3274:19:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "3263:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 4324, "nodeType": "ExpressionStatement", "src": "3263:30:27" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 4287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4285, "name": "mockHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4280, "src": "2950:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 4286, "name": "MOCKS_LIST_END_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3984, "src": "2962:19:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "2950:31:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4326, "nodeType": "WhileStatement", "src": "2944:354:27" }, { "expression": { "argumentTypes": null, "id": 4331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4327, "name": "mocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3991, "src": "3317:5:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", "typeString": "mapping(bytes32 => bytes storage ref)" } }, "id": 4329, "indexExpression": { "argumentTypes": null, "id": 4328, "name": "MOCKS_LIST_START", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3976, "src": "3323:16:27", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3317:23:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4330, "name": "MOCKS_LIST_END", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "3343:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory", "typeString": "bytes memory" } }, "src": "3317:40:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4332, "nodeType": "ExpressionStatement", "src": "3317:40:27" }, { "assignments": [ 4334 ], "declarations": [ { "constant": false, "id": 4334, "name": "nextAnyMock", "nodeType": "VariableDeclaration", "scope": 4386, "src": "3387:18:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4333, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3387:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "id": 4338, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4335, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3408:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4337, "indexExpression": { "argumentTypes": null, "id": 4336, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3417:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3408:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", "src": "3387:49:27" }, { "body": { "id": 4377, "nodeType": "Block", "src": "3481:290:27", "statements": [ { "assignments": [ 4343 ], "declarations": [ { "constant": false, "id": 4343, "name": "currentAnyMock", "nodeType": "VariableDeclaration", "scope": 4386, "src": "3486:21:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4342, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3486:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "id": 4345, "initialValue": { "argumentTypes": null, "id": 4344, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4334, "src": "3510:11:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "VariableDeclarationStatement", "src": "3486:35:27" }, { "expression": { "argumentTypes": null, "id": 4351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4346, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "3526:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4348, "indexExpression": { "argumentTypes": null, "id": 4347, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3539:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3526:28:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4349, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "3557:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4350, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Return", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "3557:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "3526:46:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "id": 4352, "nodeType": "ExpressionStatement", "src": "3526:46:27" }, { "expression": { "argumentTypes": null, "id": 4357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4353, "name": "expectationsAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "3577:15:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, "id": 4355, "indexExpression": { "argumentTypes": null, "id": 4354, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3593:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3577:31:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3611:5:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3577:39:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 4358, "nodeType": "ExpressionStatement", "src": "3577:39:27" }, { "expression": { "argumentTypes": null, "id": 4363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4359, "name": "revertMessageAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4019, "src": "3621:16:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, "id": 4361, "indexExpression": { "argumentTypes": null, "id": 4360, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3638:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3621:32:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 4362, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3656:2:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "3621:37:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 4364, "nodeType": "ExpressionStatement", "src": "3621:37:27" }, { "expression": { "argumentTypes": null, "id": 4369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4365, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4334, "src": "3663:11:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4366, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3677:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4368, "indexExpression": { "argumentTypes": null, "id": 4367, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3686:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3677:24:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "3663:38:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4370, "nodeType": "ExpressionStatement", "src": "3663:38:27" }, { "expression": { "argumentTypes": null, "id": 4375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4371, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3736:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4373, "indexExpression": { "argumentTypes": null, "id": 4372, "name": "currentAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "3745:14:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3736:24:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "307830", "id": 4374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3763:3:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0x0" }, "src": "3736:30:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4376, "nodeType": "ExpressionStatement", "src": "3736:30:27" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 4339, "name": "nextAnyMock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4334, "src": "3446:11:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 4340, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3461:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "3446:33:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4378, "nodeType": "WhileStatement", "src": "3440:331:27" }, { "expression": { "argumentTypes": null, "id": 4383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4379, "name": "anyMocks", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4007, "src": "3790:8:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", "typeString": "mapping(bytes4 => bytes4)" } }, "id": 4381, "indexExpression": { "argumentTypes": null, "id": 4380, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3799:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3790:28:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4382, "name": "SENTINEL_ANY_MOCKS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3987, "src": "3821:18:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "3790:49:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 4384, "nodeType": "ExpressionStatement", "src": "3790:49:27" } ] }, "documentation": null, "id": 4386, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "reset", "nodeType": "FunctionDefinition", "parameters": { "id": 4271, "nodeType": "ParameterList", "parameters": [], "src": "2781:2:27" }, "payable": false, "returnParameters": { "id": 4272, "nodeType": "ParameterList", "parameters": [], "src": "2791:0:27" }, "scope": 4476, "src": "2767:1076:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4393, "nodeType": "Block", "src": "3875:70:27", "statements": [ { "body": { "id": 4391, "nodeType": "Block", "src": "3891:51:27", "statements": [ { "externalReferences": [], "id": 4390, "nodeType": "InlineAssembly", "operations": "{\n sstore(sload(0x40), 1)\n}", "src": "3896:46:27" } ] }, "condition": { "argumentTypes": null, "hexValue": "74727565", "id": 4389, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "3885:4:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "id": 4392, "nodeType": "WhileStatement", "src": "3879:63:27" } ] }, "documentation": null, "id": 4394, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "useAllGas", "nodeType": "FunctionDefinition", "parameters": { "id": 4387, "nodeType": "ParameterList", "parameters": [], "src": "3864:2:27" }, "payable": false, "returnParameters": { "id": 4388, "nodeType": "ParameterList", "parameters": [], "src": "3875:0:27" }, "scope": 4476, "src": "3846:99:27", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 4474, "nodeType": "Block", "src": "3974:635:27", "statements": [ { "assignments": [], "declarations": [ { "constant": false, "id": 4398, "name": "methodId", "nodeType": "VariableDeclaration", "scope": 4475, "src": "3978:15:27", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4397, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3978:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "id": 4399, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "3978:15:27" }, { "externalReferences": [ { "methodId": { "declaration": 4398, "isOffset": false, "isSlot": false, "src": "4011:8:27", "valueSize": 1 } } ], "id": 4400, "nodeType": "InlineAssembly", "operations": "{\n methodId := calldataload(0)\n}", "src": "3997:50:27" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4401, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "4049:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4404, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4059:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4059:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4049:19:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4405, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4072:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4406, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4072:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4049:38:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4416, "nodeType": "IfStatement", "src": "4045:85:27", "trueBody": { "id": 4415, "nodeType": "Block", "src": "4089:41:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4409, "name": "revertMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4003, "src": "4101:13:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", "typeString": "mapping(bytes memory => string storage ref)" } }, "id": 4412, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4115:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4115:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4101:23:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "id": 4408, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 4496, 4497 ], "referencedDeclaration": 4497, "src": "4094:6:27", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 4413, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4094:31:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4414, "nodeType": "ExpressionStatement", "src": "4094:31:27" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4417, "name": "mockTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3995, "src": "4137:9:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes memory => enum MockContract.MockType)" } }, "id": 4420, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4418, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4147:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4147:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4137:19:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4421, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4160:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4422, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4160:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4137:40:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4428, "nodeType": "IfStatement", "src": "4133:67:27", "trueBody": { "id": 4427, "nodeType": "Block", "src": "4179:21:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 4424, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4394, "src": "4184:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 4425, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4184:11:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4426, "nodeType": "ExpressionStatement", "src": "4184:11:27" } ] } }, { "assignments": [ 4430 ], "declarations": [ { "constant": false, "id": 4430, "name": "result", "nodeType": "VariableDeclaration", "scope": 4475, "src": "4203:19:27", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4429, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4203:5:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "id": 4435, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4431, "name": "expectations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3999, "src": "4225:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", "typeString": "mapping(bytes memory => bytes storage ref)" } }, "id": 4434, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4432, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4491, "src": "4238:3:27", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4238:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4225:22:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "4203:44:27" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4436, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4430, "src": "4308:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 4437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4308:13:27", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 4438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4325:1:27", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "4308:18:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4472, "nodeType": "IfStatement", "src": "4304:241:27", "trueBody": { "id": 4471, "nodeType": "Block", "src": "4328:217:27", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4440, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "4337:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4442, "indexExpression": { "argumentTypes": null, "id": 4441, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4350:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4337:22:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4443, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4363:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4444, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "Revert", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4363:15:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4337:41:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4453, "nodeType": "IfStatement", "src": "4333:93:27", "trueBody": { "id": 4452, "nodeType": "Block", "src": "4380:46:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4447, "name": "revertMessageAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4019, "src": "4393:16:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", "typeString": "mapping(bytes4 => string storage ref)" } }, "id": 4449, "indexExpression": { "argumentTypes": null, "id": 4448, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4410:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4393:26:27", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "id": 4446, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 4496, 4497 ], "referencedDeclaration": 4497, "src": "4386:6:27", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 4450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4386:34:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4451, "nodeType": "ExpressionStatement", "src": "4386:34:27" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" }, "id": 4459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4454, "name": "mockTypesAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4011, "src": "4434:12:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3973_$", "typeString": "mapping(bytes4 => enum MockContract.MockType)" } }, "id": 4456, "indexExpression": { "argumentTypes": null, "id": 4455, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4447:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4434:22:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4457, "name": "MockType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3973, "src": "4460:8:27", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MockType_$3973_$", "typeString": "type(enum MockContract.MockType)" } }, "id": 4458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OutOfGas", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4460:17:27", "typeDescriptions": { "typeIdentifier": "t_enum$_MockType_$3973", "typeString": "enum MockContract.MockType" } }, "src": "4434:43:27", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 4464, "nodeType": "IfStatement", "src": "4430:72:27", "trueBody": { "id": 4463, "nodeType": "Block", "src": "4479:23:27", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 4460, "name": "useAllGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4394, "src": "4485:9:27", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 4461, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4485:11:27", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4462, "nodeType": "ExpressionStatement", "src": "4485:11:27" } ] } }, { "expression": { "argumentTypes": null, "id": 4469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4465, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4430, "src": "4506:6:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 4466, "name": "expectationsAny", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4015, "src": "4515:15:27", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", "typeString": "mapping(bytes4 => bytes storage ref)" } }, "id": 4468, "indexExpression": { "argumentTypes": null, "id": 4467, "name": "methodId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4398, "src": "4531:8:27", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4515:25:27", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "4506:34:27", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 4470, "nodeType": "ExpressionStatement", "src": "4506:34:27" } ] } }, { "externalReferences": [ { "result": { "declaration": 4430, "isOffset": false, "isSlot": false, "src": "4579:6:27", "valueSize": 1 } }, { "result": { "declaration": 4430, "isOffset": false, "isSlot": false, "src": "4594:6:27", "valueSize": 1 } } ], "id": 4473, "nodeType": "InlineAssembly", "operations": "{\n return(add(0x20, result), mload(result))\n}", "src": "4548:61:27" } ] }, "documentation": null, "id": 4475, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 4395, "nodeType": "ParameterList", "parameters": [], "src": "3956:2:27" }, "payable": true, "returnParameters": { "id": 4396, "nodeType": "ParameterList", "parameters": [], "src": "3974:0:27" }, "scope": 4476, "src": "3948:661:27", "stateMutability": "payable", "superFunction": null, "visibility": "public" } ], "scope": 4477, "src": "26:4585:27" } ], "src": "0:4612:27" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", "updatedAt": "2018-09-26T08:32:07.672Z" }