Use fungigbles adapter to withdraw (burn) assets and not get trapped #1088
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does it do?
In xcm-transactor, there is one local xcm execution (to withdraw the assets that will be used for fee handling) and a remote one (where we send the transaction t the destination chain).
Currently the first local xcm execution is using WithdrawAssets, but this one is putting the assets into holding and then they get trapped by the xcm post_execution. Ideally we would use an instruction like BurnAssets, apparently coming in xcm V3, but we need to solve this issue before that.
This PR changes the way XCM transactor works and instead of burning the asset through XCM, we are burning directly. We use the AssetTransactor trait, which has a withdraw_asset function that burns the corresponding amount from the corresponding user without putting the withdrawn amount in the holding register.
What important points reviewers should know?
Is there something left for follow-up PRs?
What alternative implementations were considered?
Are there relevant PRs or issues in other repositories (Substrate, Polkadot, Frontier, Cumulus)?
What value does it bring to the blockchain users?