chainflip-io / chainflip-sdk-monorepo

14 stars 3 forks source link

Polkadot does not allow the transfer of small amounts of tokens. #961

Open kolkovsky opened 3 weeks ago

kolkovsky commented 3 weeks ago

Description

When a user wants to swap a small amount of ETH for DOT (Polkadot), the token will not appear in their account after the transaction.

According to the documentation for substrate chains, users must maintain a minimum balance to remain active. Therefore, if you attempt to transfer tokens to a new account with zero balance, the tokens will not be received. Reference

Steps to Reproduce

1) Go to swap page. 2) Select currency and enter deposit. The amount should be less then 1 DOT 3) User will see channel modal with suggestion.

Expected Behavior: If the amount is less than 1 DOT, we should notify the user of our expectations with an error message.

Screenshots

image

Links:

https://scan.chainflip.io/swaps/42975 https://scan.chainflip.io/channels/4515432-Arbitrum-38

Environment: OS: macOS 14.6.1 Browser: Chrome 116.0 App version: v1.2.3 Additional Context: None

dmitrytarassov commented 3 weeks ago

Sound important! Cause even SubWallet do not allow users to do such transfers (do not allow death the destination account).

IMG_3503

acdibble commented 3 weeks ago

Thank you for the report.

We do already warn users about the existential deposit and have done so since before we launchd mainnet swapping. If you fill out the destination (and refund address if required) and click "review swap", you will be greeted by the following modal when the quoted output is less than 1 DOT:

image

The link in the modal leads you to this page.

Are you requesting a warning in addition to this existing warning or is it possible that the user didn't see/read this warning?

kolkovsky commented 2 weeks ago

It looks great! My apologies.

Could you let me know if this information can be accessed through your SDK, or is it solely your validation on client side for the Polkadot chain?

acdibble commented 1 week ago

It looks great! My apologies.

Could you let me know if this information can be accessed through your SDK, or is it solely your validation on client side for the Polkadot chain?

Currently, we don't expose this through the SDK. Is this something that would be useful to you as an SDK user?