deroproject / derohe

DERO Homomorphic Encryption Blockchain Protocol
Other
209 stars 82 forks source link

Non-Dero asset transfer fails due to low transaction fee #100

Open deroholic opened 2 years ago

deroholic commented 2 years ago

When transferring a non-Dero asset via RPC to the wallet, it will silently fail if the "Priority" is set to 1.0 in the wallet. If debug statements are added to the wallet code, you can find that the failure reason is such:

25/09 10:10:28  ERROR   walletrpc   Error sending tx    {"error": "[-32098] Transaction 3d55dcff7eaac3c6f263bfd013a4bb6d1cb9079c851a95fdcd90c8f19fa37a01 rejected by daemon err 'TX  3d55dcff7eaac3c6f263bfd013a4bb6d1cb9079c851a95fdcd90c8f19fa37a01 rejected due to low fees  provided fee 81 calculated fee 120'"}

The underlying reason is that for non-Dero asset transfers, the wallet decides to silently add a zero value Dero transfer to the transaction yet does not account for the increased transaction size.

This can be worked around by either setting the transaction ringsize to a value of 2, or by increasing the Priority setting to something larger (like 1.5) so that a larger transaction fee is calculated and submitted by the wallet to the daemon. The wallet RPC does not expose a method to modify the Priority, so this option is not available for a Dapp.

The wallet needs to be fixed such that it does not add an unnecessary zero value Dero transfer to non-Dero asset transfer transactions.