-
Notifications
You must be signed in to change notification settings - Fork 700
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
dryRunApi.dryRunCall: redundant items in forwardedXcms #5878
Labels
Comments
Nice catch! I'm working on fixing this alongside #5708 |
franciscoaguirre
added
T4-runtime_API
This PR/Issue is related to runtime APIs.
T6-XCM
This PR/Issue is related to XCM.
labels
Oct 2, 2024
2 tasks
github-merge-queue bot
pushed a commit
that referenced
this issue
Oct 10, 2024
# Description This PR addresses #5878. After dry running an xcm on asset hub, we had redundant xcms showing up in the `forwarded_xcms` field of the dry run effects returned. These were caused by two things: - The `UpwardMessageSender` router always added an element even if there were no messages. - The two routers on asset hub westend related to bridging (to rococo and sepolia) getting the message from their queues when their queues is actually the same xcmp queue that was already contemplated. In order to fix this, we check for no messages in UMP and clear the implementation of `InspectMessageQueues` for these bridging routers. Keep in mind that the bridged message is still sent, as normal via the xcmp-queue to Bridge Hub. To keep on dry-running the journey of the message, the next hop to dry-run is Bridge Hub. That'll be tackled in a different PR. Added a test in `bridge-hub-westend-integration-tests` and `bridge-hub-rococo-integration-tests` that show that dry-running a transfer across the bridge from asset hub results in one and only one message sent to bridge hub. ## TODO - [x] Functionality - [x] Test --------- Co-authored-by: command-bot <>
2 tasks
Closing since #5913 was merged to master and backported to stable2407 and stable2409 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
When dry-running the
polkadotXcm.transferAssets
extrinsic using the newdryRunApi
, AssetHub reports excessive items in theforwardedXcms
field.For instance, if one constructs an extrinsic to transfer USDT to a different chain and dry-runs it to obtain the forwarded messages, they will get the following:
ReserveAssetDeposited
message heading to the destination chain repeated several timesYou can see this by dry-running the following using any account with at least 1 USDT as the Origin.
The cause
InspectMessageQueue
trait implementation for tuples doesn't discard empty lists, which is the cause of the first issue.InspectMessageQueue
trait implementation forSovereignPaidRemoteExporter
reuses theRouter
passed as the generic parameter. AssetHub's XCM config contains bridge routers that useSovereignPaidRemoteExporter
and pass theXcmpQueue
to the generic parameter. Thus,XcmpQueue
's messages got into the final list several times.The text was updated successfully, but these errors were encountered: