Uncoupling pallet-xcm from frame-system's RuntimeCall #1684
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.
Description
This PR uncouples pallet-xcm's Config trait from frame-system's RuntimeCall and instead uses it's own RuntimeCall trait type, it also removes the trait requirement for it's RuntimeCall to be
IsType<<Self as frame_system::Config>::RuntimeCall>
, meaning you can write custom types to be used for the XCM Transact instruction in a runtime that has pallet-xcm, which was previously not possible because of the hardcoded requirement imposed by pallet-xcm, which is not imposed by xcm-executor.This does not require any other changes to existing or future code, since all it does is make the trait requirements slightly less strict, maintaining compatibility but expanding it.