Skip to content

Conversation

@Agusrodri
Copy link
Contributor

@Agusrodri Agusrodri commented Jun 25, 2024

What does it do?

This PR introduces XCM delivery fees to Moonbase, Moonriver and Moonbeam runtimes.

From now on, each XCM functionality that builds and send an XCM message, should account for these extra fees, which correspond to the cost of sending a message through the XCM protocol.

The full amount associated to delivery fees is paid by the account that executes the pallet/precompile call, and it's paid in the origin chain's native balance (DEV, MOVR or GLMR respectively).

Formula to compute delivery fees

To compute the final amount associated to delivery fees, we base on four elements:

  • DeliveryFeeFactor: constant stored inside ParachainSystem pallet (for UMP) or XcmpQueue pallet (for HRMP).
  • BaseDeliveryFee: constant set in our runtimes.
  • TransactionByteFee: constant set in our runtimes.
  • XcmMsgBytes: length in bytes of the final XCM message to send.
TotalDeliveryFee = DeliveryFeeFactor * [BaseDeliveryFee + (TransactionByteFee * XcmMsgBytes)]

More context on: paritytech/polkadot-sdk#1234

@Agusrodri Agusrodri added B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D5-nicetohaveaudit⚠️ PR contains trivial changes to logic that should be properly reviewed. breaking Needs to be mentioned in breaking changes labels Jun 28, 2024
@github-actions
Copy link
Contributor

github-actions bot commented Jun 28, 2024

Coverage Report

@@                      Coverage Diff                      @@
##           master   agustin-xcm-delivery-fees      +/-   ##
=============================================================
+ Coverage   81.30%                      81.44%   +0.14%     
  Files         301                         301              
+ Lines       85701                       86098     +397     
=============================================================
+ Hits        69675                       70121     +446     
- Misses      16026                       15977      -49     
Files Changed Coverage
/client/rpc/manual-xcm/src/lib.rs 88.00% (+25.33%) 🔼
/client/rpc/txpool/src/lib.rs 65.38% (+8.65%) 🔼
/client/rpc-core/txpool/src/types/content.rs 70.37% (+1.85%) 🔼
/pallets/erc20-xcm-bridge/src/xcm_holding_ext.rs 100.00% (+5.26%) 🔼
/pallets/moonbeam-xcm-benchmarks/src/weights/generic.rs 4.26% (+1.30%) 🔼
/pallets/moonbeam-xcm-benchmarks/src/weights/mod.rs 13.61% (+1.57%) 🔼
/pallets/xcm-transactor/src/lib.rs 89.49% (+0.05%) 🔼
/primitives/xcm/src/origin_conversion.rs 92.86% (+17.86%) 🔼
/runtime/moonbeam/tests/integration_test.rs 99.40% (+0.03%) 🔼
/runtime/moonriver/tests/integration_test.rs 99.38% (+0.03%) 🔼

Coverage generated Sat Jun 29 02:18:47 UTC 2024

@noandrea noandrea closed this Jul 23, 2024
@noandrea
Copy link
Contributor

not needed at this time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes breaking Needs to be mentioned in breaking changes D5-nicetohaveaudit⚠️ PR contains trivial changes to logic that should be properly reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants