Skip to content
  1. Oct 24, 2023
    • Kian Paimani's avatar
      Ensure correct variant count in `Runtime[Hold/Freeze]Reason` (#1900) · 35eb133b
      Kian Paimani authored
      
      
      closes https://github.com/paritytech/polkadot-sdk/issues/1882
      
      ## Breaking Changes
      
      This PR introduces a new item to `pallet_balances::Config`:
      
      ```diff
      trait Config {
      ++    type RuntimeFreezeReasons;
      }
      ```
      
      This value is only used to check it against `type MaxFreeze`. A similar
      check has been added for `MaxHolds` against `RuntimeHoldReasons`, which
      is already given to `pallet_balances`.
      
      In all contexts, you should pass the real `RuntimeFreezeReasons`
      generated by `construct_runtime` to `type RuntimeFreezeReasons`. Passing
      `()` would also work, but it would imply that the runtime uses no
      freezes at all.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      35eb133b
  2. Oct 18, 2023
    • Keith Yeung's avatar
      Introduce XcmFeesToAccount fee manager (#1234) · 3dece311
      Keith Yeung authored
      
      
      Combination of paritytech/polkadot#7005, its addon PR
      paritytech/polkadot#7585 and its companion paritytech/cumulus#2433.
      
      This PR introduces a new XcmFeesToAccount struct which implements the
      `FeeManager` trait, and assigns this struct as the `FeeManager` in the
      XCM config for all runtimes.
      
      The struct simply deposits all fees handled by the XCM executor to a
      specified account. In all runtimes, the specified account is configured
      as the treasury account.
      
      XCM __delivery__ fees are now being introduced (unless the root origin
      is sending a message to a system parachain on behalf of the originating
      chain).
      
      # Note for reviewers
      
      Most file changes are tests that had to be modified to account for the
      new fees.
      Main changes are in:
      - cumulus/pallets/xcmp-queue/src/lib.rs <- To make it track the delivery
      fees exponential factor
      - polkadot/xcm/xcm-builder/src/fee_handling.rs <- Added. Has the
      FeeManager implementation
      - All runtime xcm_config files <- To add the FeeManager to the XCM
      configuration
      
      # Important note
      
      After this change, instructions that create and send a new XCM (Query*,
      Report*, ExportMessage, InitiateReserveWithdraw, InitiateTeleport,
      DepositReserveAsset, TransferReserveAsset, LockAsset and RequestUnlock)
      will require the corresponding origin account in the origin register to
      pay for transport delivery fees, and the onward message will fail to be
      sent if the origin account does not have the required amount. This
      delivery fee is on top of what we already collect as tx fees in
      pallet-xcm and XCM BuyExecution fees!
      
      Wallet UIs that want to expose the new delivery fee can do so using the
      formula:
      
      ```
      delivery_fee_factor * (base_fee + encoded_msg_len * per_byte_fee)
      ```
      
      where the delivery fee factor can be obtained from the corresponding
      pallet based on which transport you are using (UMP, HRMP or bridges),
      the base fee is a constant, the encoded message length from the message
      itself and the per byte fee is the same as the configured per byte fee
      for txs (i.e. `TransactionByteFee`).
      
      ---------
      
      Co-authored-by: default avatarBranislav Kontur <[email protected]>
      Co-authored-by: default avatarjoe petrowski <[email protected]>
      Co-authored-by: default avatarGiles Cope <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      3dece311
  3. Oct 17, 2023
    • Xiliang Chen's avatar
      increase MAX_ASSETS_FOR_BUY_EXECUTION (#1733) · 38c0604b
      Xiliang Chen authored
      
      
      Partially addresses #1638
      
      Still need a better solution to allow devs to have better control of
      this.
      
      ---------
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      Co-authored-by: default avatarjoe petrowski <[email protected]>
      38c0604b
    • Squirrel's avatar
      nit: use traits::tokens::fungible => use traits::fungible (#1753) · d9e266f4
      Squirrel authored
      
      
      Slightly less verbose use of fungible(s).
      
      ---------
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      d9e266f4
    • Branislav Kontur's avatar
      [xcm] Small enhancements for `NetworkExportTable` and `xcm-builder` (#1848) · 5cdd819e
      Branislav Kontur authored
      
      
      ## Summary
      
      This PR introduces several enhancements.
      
      The current implementation of `NetworkExportTable` lacks remote location
      filtering support beyond `NetworkId` lookup. To provide more control and
      granularity, it's essential to allow configuration for bridging to
      different consensus `NetworkId` while restricting access e.g. to
      particular remote parachains.
      
      Additionally, the `StartsWith` and `Equals` and
      `StartsWithExplicitGlobalConsensus` helper functions, which are in
      active use, are moved to the `xcm-builder` and `frame_support` modules
      for better code organization.
      
      Adds a new `LocationWithAssetFilters` filter to enable location-based
      and asset-related filtering. This filter is useful for configuring the
      `pallet_xcm` filter for
      [XcmTeleportFilter](https://github.com/paritytech/polkadot-sdk/blob/master/polkadot/xcm/pallet-xcm/src/lib.rs#L212)
      and
      [XcmReserveTransferFilter](https://github.com/paritytech/polkadot-sdk/blob/master/polkadot/xcm/pallet-xcm/src/lib.rs#L216)
      to restrict specific assets.
      
      Furthermore, the `BridgeMessage` fields are not accessible outside of
      `xcm-builder`, limiting the ability to create custom logic dependent on
      it.
      
      ---------
      
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      5cdd819e
  4. Oct 12, 2023
  5. Oct 01, 2023
  6. Sep 20, 2023
    • joe petrowski's avatar
      Disable Calls to Identity Pallet (#1476) · 771c3fbd
      joe petrowski authored
      This PR filters calls from the Identity pallet from all Relay Chain
      runtimes as preparation to move the identity state and logic to a system
      parachain within each network.
      
      After this change is deployed to a runtime, no more changes such as
      adding new sub-identities will be possible. The frozen state will be
      part of the genesis state of the system chain. After the system chain
      launches, the pallet and all state will be removed from each Relay
      Chain.
      
      Applications and UIs that render display information from this pallet
      will need to read from the system chain when it launches.
      771c3fbd
  7. Sep 19, 2023
    • Xiliang Chen's avatar
      allow governance body on parachain to have sovereign account (#1291) · cdbdbc75
      Xiliang Chen authored
      The goal is to allow Fellowship on Collective chain to have a sovereign
      account on Polkadot so that we can add it as an identity registrar. This
      will allow Fellows origin to be able to provide judgements for
      Fellowship members.
      
      This currently allow any body on any parachain including non system
      parachains to have sovereign account. I cannot think of any reason why
      that may be an issue but let me know if I should change it to filter
      only system parachains.
      
      [This](https://gist.github.com/xlc/ec61bfa4e9f6d62da27d30141ad2c72b) is
      the testing script.
      
      Original PR: https://github.com/paritytech/polkadot/pull/7518
      cdbdbc75
  8. Sep 18, 2023
    • Muharem Ismailov's avatar
      xcm-builder: PayOverXcm supports fallible convertors for asset kind and... · a8e82a36
      Muharem Ismailov authored
      xcm-builder: PayOverXcm supports fallible convertors for asset kind and beneficiary conversion  (#1572)
      
      `PayOverXcm` type accepts two converters to transform the `AssetKind`
      and `Beneficiary` parameter types into recognized `xcm` types. In this
      PR, we've modified the bounds for these converters, transitioning from
      `Convert` to `TryConvert`.
      
      One such use case for this adjustment is when dealing with versioned xcm
      types for `AssetKind` and `Beneficiary`. These types might be not
      convertible to the latest xcm version, hence the need for fallible
      conversion.
      
      This changes required for
      https://github.com/paritytech/polkadot-sdk/pull/1333
      a8e82a36
  9. Sep 14, 2023
    • Branislav Kontur's avatar
      [xcm_builder]: Do not consume `msg` on `NotApplicable` for remote exporters (#1519) · 76724ce9
      Branislav Kontur authored
      ## Summary
      
      Implementations of `SendXcm`'s `validate` should not consume `dest`
      and/or `msg` parameters in case of `NotApplicable` error.
      This commit aligns expected behavior for `UnpaidRemoteExporter` and
      `SovereignPaidRemoteExporter`.
      
      ## Testing
      
      Added `remote_exporters_does_not_consume_dest_or_msg_on_not_applicable`
      test which checks two possible cases:
      - `dest` is local
      - no configured exporter for `dest`
      76724ce9
  10. Sep 01, 2023
  11. Aug 31, 2023
  12. Aug 30, 2023
  13. Aug 29, 2023
  14. Aug 22, 2023
  15. Aug 19, 2023
    • Francisco Aguirre's avatar
      Add tests for PayOverXcm (#7319) · 85115402
      Francisco Aguirre authored
      * PayOverXcm: Add test skeleton
      
      * PayOverXcm: Add tests checking PayOverXcm generates correct message
      
      * Add PayOverXcm and salary pallet integration test
      
      * Fix XCM execution issue
      
      * Fix documentation issues
      
      * Add missing period at the end of comment
      
      * Fix mock problems
      
      * Add missing licenses
      
      * Fix lints
      
      * Fix more lints
      
      * Add docs to mock
      
      * Add transfer assertions
      
      * Remove magic numbers
      
      ---------
      
      Co-authored-by: parity-processbot <>
      85115402
  16. Aug 16, 2023
  17. Aug 14, 2023
  18. Aug 07, 2023
  19. Aug 03, 2023
  20. Aug 01, 2023
  21. Jul 19, 2023
    • Francisco Aguirre's avatar
      Change Fixed to WeightInfoBounds for Polkadot (#7077) · cc9f8129
      Francisco Aguirre authored
      
      
      * Add polkadot XCM benchmarks
      
      * Add temp
      
      * ".git/.scripts/commands/bench/bench.sh" xcm polkadot pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench/bench.sh" xcm polkadot pallet_xcm_benchmarks::generic
      
      * Add weights to XCM on Polkadot
      
      * Make CI fail on old files
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      * Update template
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      * Add reserve_asset_deposited benchmark
      
      * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic
      
      * Update weights
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      * Change initiate_reserve_deposit in runtime weights
      
      * Update weights
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      * Remove trusted reserves from runtimes
      
      * Fix pallet-xcm-benchmarks mock
      
      * Fix test
      
      * Change pallet xcm weigher in kusama
      
      * Fix
      
      * Remove merge conflict artifact
      
      * Remove initiate_reserve_withdraw from generic benchmarks
      
      * Add missing implementation to XCM benchmark
      
      * Fix failing karura test
      
      * Remove dbg!
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      
      * Fix fmt
      
      * Revert "Fix fmt"
      
      This reverts commit 676f2d8db07d7427750c79f95494d4988d06fda5.
      
      * Fix fmt
      
      * Remove duplicated template code
      
      * Add back part of the template
      
      * ".git/.scripts/commands/bench-vm/bench-vm.sh" xcm polkadot pallet_xcm_benchmarks::fungible
      
      * Don't skip reserve asset deposited benchmark
      
      * Remove call to non-generated benchmark yet
      
      * Underscore unused parameter
      
      * Skip not supported benchmarks and hardcode value
      
      * Remove ReserveAssetDeposited benchmark
      
      * ".git/.scripts/commands/bench-vm/bench-vm.sh" xcm polkadot pallet_xcm_benchmarks::fungible
      
      * Add back ReserveAssetDeposited
      
      * ".git/.scripts/commands/bench-vm/bench-vm.sh" xcm polkadot pallet_xcm_benchmarks::fungible
      
      * Use default benchmark for ReserveAssetDeposited
      
      * Add missing parameter
      
      * Revert reserve asset deposited benchmark
      
      * ".git/.scripts/commands/bench-vm/bench-vm.sh" xcm kusama pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench-vm/bench-vm.sh" xcm westend pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::fungible
      
      * Add 'real' benchmarks
      
      * Add TrustedReserve to actual XcmConfig
      
      * Add TrustedReserve to actual XcmConfig (fix)
      
      * Whitelist from benchmarking XCM storage keys read each block (#6871)
      
      * Whitelist from benchmarking XCM storage keys read each block
      
      * ".git/.scripts/commands/bench/bench.sh" runtime polkadot pallet_xcm
      
      * ".git/.scripts/commands/bench/bench.sh" runtime polkadot pallet_xcm
      
      * ".git/.scripts/commands/bench/bench.sh" runtime westend pallet_xcm
      
      * ".git/.scripts/commands/bench/bench.sh" runtime rococo pallet_xcm
      
      * Remove XcmPallet SupportedVersion from the benchmark whitelist
      
      * ".git/.scripts/commands/bench/bench.sh" runtime polkadot pallet_xcm
      
      * ".git/.scripts/commands/bench/bench.sh" runtime kusama pallet_xcm
      
      * ".git/.scripts/commands/bench/bench.sh" runtime westend pallet_xcm
      
      * ".git/.scripts/commands/bench/bench.sh" runtime rococo pallet_xcm
      
      * WIP
      
      * Add necessary traits, remove unnecessary whitelisted keys
      
      * Fix tests
      
      * Remove unused file
      
      * Remove unused import
      
      ---------
      
      Co-authored-by: command-bot <>
      
      * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::fungible
      
      * ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::fungible
      
      * Fix spellchecker issues
      
      * Remove unused migration code
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      cc9f8129
  22. Jul 18, 2023
  23. Jul 03, 2023
  24. Jun 30, 2023
  25. Jun 28, 2023
    • Gabriel Facco de Arruda's avatar
      Introduce Tinkernet multisig XCM configs to Kusama/Rococo through xcm-builder (#7165) · af995205
      Gabriel Facco de Arruda authored
      * Introduce Tinkernet multisig XCM configs
      
      * fmt fix
      
      * overflow handling, comments, clippy fixes
      
      * Adding Tinkernet XCM configs to xcm-builder
      
      * switching spaces to tab
      
      * remove derivation.rs in favor of location_conversion.rs
      
      * replace hardcoded literals with constants
      
      * autoformat
      
      * Fix for the unit test
      
      * replacing expect with an error and renaming constants
      
      * Resolving clippy warning
      
      ---------
      
      Co-authored-by: parity-processbot <>
      af995205
  26. Jun 05, 2023
    • Keith Yeung's avatar
      Implement AliasOrigin processing in XCVM (#7245) · f2fe05a7
      Keith Yeung authored
      
      
      * Implement AliasOrigin processing in XCVM
      
      * add builder types and first test
      
      * switch to more general builder types
      
      * clone target for RemovePrefixAccountId32
      
      * change builder types
      
      * change AliasForeignAccountId32 and add test for AliasCase
      
      * add Aliasers type to xcm configs
      
      * add benchmark
      
      * benchmark fix
      
      * add benchmark function for runtimes
      
      * fix alias_origin result types
      
      * fix benchmark test
      
      * add runtime-benchmarks feature in pallet-xcm-benchmarks
      
      * fmt
      
      * remove AliasCase, add test and fmt
      
      * address feedback
      
      * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic
      
      * ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic
      
      * ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic
      
      * address feedback
      
      * lock
      
      * ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic
      
      * ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic
      
      * ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic
      
      * change doc
      
      * fmt
      
      ---------
      
      Co-authored-by: default avatarJust van Stam <[email protected]>
      Co-authored-by: default avatarJust van Stam <[email protected]>
      Co-authored-by: command-bot <>
      f2fe05a7
    • Gavin Wood's avatar
      XCM: Remove & replace XCM `Convert` trait (#7329) · c8f9b1b7
      Gavin Wood authored
      
      
      * Introduce an extensible location-to-hash-account
      
      * Convert becomes RevFallRefConvert
      
      * Use ConvertLocation trait
      
      * Remove Convert usage
      
      * Builds
      
      * Fix warnings
      
      * Remove unused types
      
      * Bump lock
      
      * No need for aliasing
      
      * Remove unused
      
      * Deprecate legacy conversion
      
      * Fixes
      
      * Fixes
      
      * Update Cargo.toml
      
      Co-authored-by: default avatarMuharem Ismailov <[email protected]>
      
      * Update xcm/xcm-builder/src/location_conversion.rs
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      
      * Update xcm/xcm-builder/src/location_conversion.rs
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      
      * Update xcm/xcm-builder/src/location_conversion.rs
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      
      * Update xcm/xcm-builder/src/location_conversion.rs
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      
      * Update xcm/xcm-builder/src/location_conversion.rs
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      
      * Update xcm/xcm-builder/src/location_conversion.rs
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      
      ---------
      
      Co-authored-by: default avatarMuharem Ismailov <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      c8f9b1b7
    • Muharem Ismailov's avatar
      descend first (#7327) · 429b1e4d
      Muharem Ismailov authored
      429b1e4d
  27. Jun 02, 2023
  28. May 31, 2023
    • Francisco Aguirre's avatar
      XCM: PayOverXcm config (#6900) · a0e2aaad
      Francisco Aguirre authored
      
      
      * Move XCM query functionality to trait
      
      * Fix tests
      
      * Add PayOverXcm implementation
      
      * fix the PayOverXcm trait to compile
      
      * moved doc comment out of trait implmeentation and to the trait
      
      * PayOverXCM documentation
      
      * Change documentation a bit
      
      * Added empty benchmark methods implementation and changed docs
      
      * update PayOverXCM to convert AccountIds to MultiLocations
      
      * Implement benchmarking method
      
      * Change v3 to latest
      
      * Descend origin to an asset sender (#6970)
      
      * descend origin to an asset sender
      
      * sender as tuple of dest and sender
      
      * Add more variants to the QueryResponseStatus enum
      
      * Change Beneficiary to Into<[u8; 32]>
      
      * update PayOverXcm to return concrete errors and use AccountId as sender
      
      * use polkadot-primitives for AccountId
      
      * fix dependency to use polkadot-core-primitives
      
      * force Unpaid instruction to the top of the instructions list
      
      * modify report_outcome to accept interior argument
      
      * use new_query directly for building final xcm query, instead of report_outcome
      
      * fix usage of new_query to use the XcmQueryHandler
      
      * fix usage of new_query to use the XcmQueryHandler
      
      * tiny method calling fix
      
      * xcm query handler (#7198)
      
      * drop redundant query status
      
      * rename ReportQueryStatus to OuterQueryStatus
      
      * revert rename of QueryResponseStatus
      
      * update mapping
      
      * Update xcm/xcm-builder/src/pay.rs
      
      Co-authored-by: default avatarGavin Wood <[email protected]>
      
      * Updates
      
      * Docs
      
      * Fix benchmarking stuff
      
      * Destination can be determined based on asset_kind
      
      * Tweaking API to minimise clones
      
      * Some repotting and docs
      
      ---------
      
      Co-authored-by: default avatarAnthony Alaribe <[email protected]>
      Co-authored-by: default avatarMuharem Ismailov <[email protected]>
      Co-authored-by: default avatarAnthony Alaribe <[email protected]>
      Co-authored-by: default avatarGavin Wood <[email protected]>
      a0e2aaad
  29. May 26, 2023
  30. May 25, 2023
    • Michal Kucharczyk's avatar
      xcm-builder: remove clone for clippy (#7291) · 6efbc1a4
      Michal Kucharczyk authored
      fix for:
      ```
      error: using `clone` on type `[u8; 32]` which implements the `Copy`
      trait
        --> xcm/xcm-builder/src/routing.rs:44:28
         |
      44 |             message.0.push(SetTopic(unique_id.clone()));
         |                                     ^^^^^^^^^^^^^^^^^ help: try
      removing the `clone` call: `unique_id`
         |
         = help: for further information visit
      https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
         = note: `-D clippy::clone-on-copy` implied by `-D clippy::complexity`
      ```
      6efbc1a4
    • Gavin Wood's avatar
      XCM: Tools for uniquely referencing messages (#7234) · 85dfadff
      Gavin Wood authored
      
      
      * Tools for unique topic references
      
      * Formatting
      
      * Naming
      
      * Repot into routing.rs.
      
      * More things done
      
      * Universal Exporter supports topic-as-reference
      
      * Some tests for the topic routing
      
      * More tests
      
      * Paid bridge tests
      
      * Add message ID to sending events
      
      * Formatting
      
      * fix and integrate into test nets
      
      * Move DenyThenTry and friend from Cumulus
      
      * Append SetTopic rather than prepend
      
      * Docs
      
      * Docs
      
      * Work with new ProcessMessage ID API
      
      * Formatting
      
      * Fix build
      
      * Fixes
      
      * Formatting
      
      * Update xcm/xcm-builder/src/barriers.rs
      
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      
      * Update xcm/xcm-builder/src/routing.rs
      
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      
      * Docs
      
      * Rename message_hash
      
      * Formatting
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * Rename
      
      * Another Rename
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * Update xcm/xcm-builder/src/routing.rs
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      
      ---------
      
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      85dfadff
  31. May 21, 2023