Skip to content
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

Add support for XCM delivery fees in all runtimes #2851

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from

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
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

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.

None yet

1 participant