mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 07:37:57 +00:00
50eb12cf2f
Moved from: https://github.com/paritytech/polkadot/pull/6951 closes https://github.com/paritytech/polkadot-sdk/issues/490 - [x] update cumulus --- This PR introduces transactional processing of certain xcm instructions. For the list of instructions checkout https://github.com/paritytech/polkadot-sdk/issues/490. The transactional processing is implemented as an xcm-executor config item. The two implementations in this PR are `FrameTransactionalProcessor` and `()`. The `()` implementation does no transactional processing. Each implementation of the `ProcessTransaction` trait has an `IS_TRANSACTIONAL` const that tells the XCVM if transactional processing is actually implemented. If Transactional processing is implemented, changes to touched registers should also be rolled back to prevent inconsistencies. Note for reviewers: Check out the following safety assumption: https://github.com/paritytech/polkadot-sdk/pull/1222/files#diff-4effad7d8c1c9de19fd27e18661cbf2128c8718f3b2420a27d2f816e0749ea53R30 --------- Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com> Co-authored-by: command-bot <>
34 lines
1.4 KiB
Plaintext
34 lines
1.4 KiB
Plaintext
title: Transactional processing for XCM
|
|
|
|
doc:
|
|
- audience: Runtime Dev
|
|
description: |
|
|
Transactional processing was introduced for certain XCM instructions. They are:
|
|
- WithdrawAsset
|
|
- ReserveAssetDeposited
|
|
- TransferAsset
|
|
- TransferReserveAsset
|
|
- ReceiveTeleportedAsset
|
|
- DepositAsset
|
|
- DepositReserveAsset
|
|
- InitiateReserveWithdraw
|
|
- InitiateTeleport
|
|
- BuyExecution
|
|
- ClaimAsset
|
|
- ExportMessage
|
|
- LockAsset
|
|
- UnlockAsset
|
|
- RequestUnlock
|
|
Developers must specify a `TransactionalProcessor` when configuring their XCM executor.
|
|
FRAME-based runtimes would simply need to configure it with `FrameTransactionalProcessor` to
|
|
enable transactional processing. To disable transactional processing of XCMs, `()` may also be
|
|
specified as the type for `TransactionalProcessor`.
|
|
For runtimes that are not FRAME-based but would like to still harness transactional processing
|
|
of XCMs, a type implementing the `ProcessTransaction` trait must be specified as the type for
|
|
`TransactionalProcessor`. This trait is for the purpose of connecting the chain's runtime
|
|
transactional processor with the XCM executor -- any implementation of `ProcessTransaction` is
|
|
possible to be assigned as the `TransactionalProcessor` for the XCM executor.
|
|
|
|
crates:
|
|
- name: staging-xcm-executor
|