-
Notifications
You must be signed in to change notification settings - Fork 710
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Asset Transactor on Asset Hubs not Working With Sufficient Assets #3958
Comments
I could reproduce it locally, and the issue is that the fees which should be paid for xcm message delivery (e.g. xcm message sent to deposit reserved funds to a receiving parachain), right now can be paid only in a native currency. In the third example provided above, the sender has some KSMs on it's account, and the fees for the message delivery paid in KSM. |
Charging delivery fees out of band bites us again 👹 #3434 will eliminate the problem completely, but that's XCMv5 should we try to fix it in |
@acatangiu I do not think it can be done just with a different implementation of existing contracts, I think the contract should be changed, to be similar to |
I knew it'd be an issue that delivery fees use a completely different mechanism from weight and traders. We already have a good story around those two, now we need to integrate delivery fees into the mix. This could be fixed in the meantime in the router, since we specify the asset id for paying fees there. We would need to swap USDT for DOT for example. |
This issue has been mentioned on Polkadot Forum. There might be relevant details there: https://forum.polkadot.network/t/sufficiency-on-assethub/7095/23 |
Be weight mechanics you mean -
We can set it as USDT or DOT, or any other asset, but it can be only one of them. And it does not know what a user have or willing to use as an asset to cover the fee. |
How come it can only be one? One of the main ideas of Asset Conversion was that the system technically only accepts one asset (DOT) for fee payment, but you can give it any asset, and if it's not DOT, then it will swap that asset for DOT. Maybe I am thinking at the wrong layer of the call stack, but there should be a "give it anything" entry point and then DOT should come out. |
If I understood @franciscoaguirre right, in that sentence he is proposing a quick fix with no changes to the current contract. the current contracts lets as only set it to one asset, which is DOT now |
This issue has been mentioned on Polkadot Forum. There might be relevant details there: |
@muharem @joepetrowski I have the following PR tackling this: #4375 It's still work in progress for now. It breaks some API things but pretty minimal. |
This issue has been mentioned on Polkadot Forum. There might be relevant details there: https://forum.polkadot.network/t/xcm-user-and-developer-experience-improvements/4511/21 |
This issue has been mentioned on Polkadot Forum. There might be relevant details there: |
An account on AH should be able to transact using only sufficient assets (and not require DOT/KSM). However, something in the XCM Executor is preventing this right now.
Here is a local transfer that worked (using USDT as the fee asset to transfer USDT): https://assethub-polkadot.subscan.io/extrinsic/5982448-2
Here is an attempt to use XCM to send USDT to Moonbeam, which failed: https://assethub-polkadot.subscan.io/extrinsic/5982488-2
However, an account with KSM succeeded (constructing the transaction the same way): https://assethub-kusama.subscan.io/extrinsic/6717729-2
Notes:
cc @muharem @franciscoaguirre
The text was updated successfully, but these errors were encountered: