def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse: namespace, _, endpoint = method.partition('_') from eth_tester.exceptions import TransactionFailed try: delegator = self.api_endpoints[namespace][endpoint] except KeyError: return RPCResponse({ "error": "Unknown RPC Endpoint: {0}".format(method), }) try: response = delegator(self.ethereum_tester, params) except NotImplementedError: return RPCResponse({ "error": "RPC Endpoint has not been implemented: {0}".format(method), }) except TransactionFailed as e: if type(e.args[0]) == str: reason = e.args[0] else: reason = decode_single('(string)', e.args[0].args[0][4:])[0] raise SolidityError(f'execution reverted: {reason}') else: return { 'result': response, }
def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse: namespace, _, endpoint = method.partition('_') try: delegator = self.api_endpoints[namespace][endpoint] except KeyError: return { "error": "Unknown RPC Endpoint: {0}".format(method), } try: response = delegator(self.ethereum_tester, params) except NotImplementedError: return { "error": "RPC Endpoint has not been implemented: {0}".format(method), } else: return { 'result': response, }
def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse: namespace, _, endpoint = method.partition('_') from eth_tester.exceptions import TransactionFailed try: delegator = self.api_endpoints[namespace][endpoint] except KeyError: return RPCResponse({"error": f"Unknown RPC Endpoint: {method}"}) try: response = delegator(self.ethereum_tester, params) except NotImplementedError: return RPCResponse( {"error": f"RPC Endpoint has not been implemented: {method}"}) except TransactionFailed as e: try: reason = decode_single('(string)', e.args[0].args[0][4:])[0] except (InsufficientDataBytes, AttributeError): reason = e.args[0] raise TransactionFailed(f'execution reverted: {reason}') else: return { 'result': response, }