Closed yakkle closed 1 year ago
estimate_step does not support DepositTransaction.
estimate_step
reproduce steps:
>>> deposit_tx = (DepositTransaction() ... .from_("hx...") ... .to("cx...") ... .value(100000000000000000000) ... .nid(3) ... .action("add") ... .build()) >>> icon_service.esimate_step(deposit_tx) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "iconsdk/icon_service.py", line 354, in estimate_step result = self.__provider.make_request('debug_estimateStep', params, full_response) File "iconsdk/providers/http_provider.py", line 124, in make_request return self._return_custom_response(response, full_response) File "iconsdk/providers/http_provider.py", line 136, in _return_custom_response raise JSONRPCException(content["error"]) iconsdk.exception.JSONRPCException: {'code': -32000, 'message': 'ServerError: E0006:InvalidTransaction'
icon_service.estimate_step does not process when data_type is deposit. https://github.com/icon-project/icon-sdk-python/blob/v2.3.0/iconsdk/icon_service.py#L349-L352
icon_service.estimate_step
deposit
def estimate_step(self, transaction: Transaction, full_response: bool = False) -> int: ... if transaction.data_type in ('deploy', 'call'): params["data"] = generate_data_value(transaction) elif transaction.data_type == 'message': params["data"] = transaction.data result = self.__provider.make_request('debug_estimateStep', params, full_response) return result if full_response else int(result, 16)
Fixed by #77
estimate_step
does not support DepositTransaction.reproduce steps:
icon_service.estimate_step
does not process when data_type isdeposit
. https://github.com/icon-project/icon-sdk-python/blob/v2.3.0/iconsdk/icon_service.py#L349-L352