8

We want to perform extrinsic xcmPallet.reserveTransferAssets from Kusama to our Mangata parachain.

const transfer = await api.tx.xcmPallet.reserveTransferAssets(...someParas);
const info = await api.tx.xcmPallet.reserveTransferAssets(...someParas).paymentInfo(sender);

We know how to find the Origin Chain Transfer Fee because info is RuntimeDispatchInfo and there is a partialFee property which is nice.

Our main concern as we saw on Karura or Bifrost that they have Destination Chain Transfer Fee which we are not sure how to get this number. What is the way to obtain this fee before the user sign the extrinsic ?

Another question is related to successful transaction: we can see in our parachain the event parachainSystem.DownwardMessagesReceived or dmpQueue.ExecutedDownward. So in order to know whether this xcm transaction is complete is only to subscribe to these events ?

Thank you

1 Answer 1

11

There is not currently any way to get this value automatically. It is generally expected that in the near term the community will standardise around a fixed fee expressed in DOT or KSM.

In the future I'd expect a change in XCM to include ways for a parachain to advertise a schedule of prices, similarly to how it can advertise its native XCM version. This is described in https://github.com/paritytech/polkadot/issues/4118 and can be expected in an upcoming XCM version.

The two events you mention are indeed good in order to help understand which messages are being executed. XCMv3, currently undergoing external code audit, introduces more powerful means of tracking messages and their effects via topics (a user-settable 32-byte message identifier) as well as the a general message hash which should be traceable through XCMP between chains.

1
  • 1
    Thank you @Gav for the response. We are looking forwards for the XCM new Horizon Commented Apr 4, 2022 at 15:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.