[Feature Request] Add Event to Show DMP XCMHash After Enqueued/Attempted #2468
Description
Background
Matching XCM transfers in XCMv2 has not been easy due to the lack of XCMHash in events for DMP and UMP cases.
To compensate for this, multi-chain indexer/dApp developers are required to call state_traceBlock
on every chain, decode it, and look for state changes like Dmp:DownwardMessagesQueues
.
At the same time, the state_traceBlock
solution is no longer practical as many parachains now consider this call "unsafe" and have gradually locked away this RPC method.
Current Status (As of Runtime 9382)
XCMv3 (#697) partially solves this annoyance with the addition of the "parachainSystem:UpwardMessageSent" event (#1228)
- UMP transfers initiated via "PolkadotXcm" pallet (e.g., XCMv3 Statemine -> Kusama for 1KSM) can now be easily matched without any trace dependency.
- DMP transfers initiated via "XcmPallet" pallet continue to require trace (e.g., XCMv3 Kusama -> Statemine for 0.2KSM) as it only emits
xcmPallet:Attempted
and still missing the XCMHash associated with it.
Feature Request
To improve its usability and fully eliminate the trace dependency for dApp developers, I would like to see an event showing DMP XCMHash when it has been attempted or enqueued (e.g., xcmPallet:DownwardMessageEnqueued
) right before the xcmPallet:Attempted
. Can we see this getting implemented soon?
- Additional question:
Should {xcmPallet:DownwardMessageEnqueued
,xcmpQueue:XcmpMessageSent
,parasystem:UpwardMessageSent
} be augmented to include xcmContext besides xcmHash?