Exemplo n.º 1
0
    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,
            }
Exemplo n.º 2
0
    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,
            }
Exemplo n.º 3
0
 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,
         }