-
Notifications
You must be signed in to change notification settings - Fork 709
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
XCMv5: add ExecuteWithOrigin instruction #6304
Commits on Jun 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b01161f - Browse repository at this point
Copy the full SHA b01161fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0b83e68 - Browse repository at this point
Copy the full SHA 0b83e68View commit details -
Configuration menu - View commit details
-
Copy full SHA for e917d67 - Browse repository at this point
Copy the full SHA e917d67View commit details
Commits on Jun 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9005e04 - Browse repository at this point
Copy the full SHA 9005e04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5fc4a32 - Browse repository at this point
Copy the full SHA 5fc4a32View commit details
Commits on Jun 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 337e26e - Browse repository at this point
Copy the full SHA 337e26eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 19cc1da - Browse repository at this point
Copy the full SHA 19cc1daView commit details
Commits on Aug 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5cfd108 - Browse repository at this point
Copy the full SHA 5cfd108View commit details -
Configuration menu - View commit details
-
Copy full SHA for 96b5b4b - Browse repository at this point
Copy the full SHA 96b5b4bView commit details
Commits on Aug 16, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6de7a42 - Browse repository at this point
Copy the full SHA 6de7a42View commit details -
Configuration menu - View commit details
-
Copy full SHA for 126ef2f - Browse repository at this point
Copy the full SHA 126ef2fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a16e19f - Browse repository at this point
Copy the full SHA a16e19fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a3a09af - Browse repository at this point
Copy the full SHA a3a09afView commit details -
Configuration menu - View commit details
-
Copy full SHA for bbba323 - Browse repository at this point
Copy the full SHA bbba323View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98c3906 - Browse repository at this point
Copy the full SHA 98c3906View commit details
Commits on Aug 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 08a82d1 - Browse repository at this point
Copy the full SHA 08a82d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f031ec - Browse repository at this point
Copy the full SHA 1f031ecView commit details
Commits on Aug 21, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5b423ad - Browse repository at this point
Copy the full SHA 5b423adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1116cbb - Browse repository at this point
Copy the full SHA 1116cbbView commit details
Commits on Aug 27, 2024
-
Configuration menu - View commit details
-
Copy full SHA for cfa2ef4 - Browse repository at this point
Copy the full SHA cfa2ef4View commit details
Commits on Sep 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 241e992 - Browse repository at this point
Copy the full SHA 241e992View commit details -
Configuration menu - View commit details
-
Copy full SHA for d421d3f - Browse repository at this point
Copy the full SHA d421d3fView commit details
Commits on Oct 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 3e85791 - Browse repository at this point
Copy the full SHA 3e85791View commit details -
Configuration menu - View commit details
-
Copy full SHA for f80c76a - Browse repository at this point
Copy the full SHA f80c76aView commit details
Commits on Oct 17, 2024
-
[XCMv5] Better fee mechanism (#5420)
Implements [RFC#105](polkadot-fellows/RFCs#105) which, at the time of this PR, has not been approved yet. Some aspects might be changed as a result of discussion. ## TODO - [x] Add new instruction and use it in conversion functions - [x] Implement in xcm-executor - [x] Setup for xcm-executor unit tests - [x] Actual xcm-executor unit tests - [x] Happy path - [x] Unhappy path - [x] Emulated tests - [x] Asset hub westend - [x] Asset hub rococo - [x] Benchmarks - [x] Dummy values - [x] Actual benchmarks - [x] PRDoc --------- Co-authored-by: command-bot <> Co-authored-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d1425bb - Browse repository at this point
Copy the full SHA d1425bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for f481f8e - Browse repository at this point
Copy the full SHA f481f8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 678a379 - Browse repository at this point
Copy the full SHA 678a379View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4d9cc77 - Browse repository at this point
Copy the full SHA 4d9cc77View commit details -
Configuration menu - View commit details
-
Copy full SHA for cdfecb7 - Browse repository at this point
Copy the full SHA cdfecb7View commit details
Commits on Oct 21, 2024
-
Added SetAssetClaimer Instruction to XCM v5 (#5585)
Added SetAssetClaimer instruction --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Adrian Catangiu <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 446465b - Browse repository at this point
Copy the full SHA 446465bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a6e85c - Browse repository at this point
Copy the full SHA 4a6e85cView commit details
Commits on Oct 23, 2024
-
[xcm-v5] implement RFC#100: add new InitiateTransfer instruction (#5876)
A new instruction `InitiateTransfer` is introduced that initiates an assets transfer from the chain it is executed on, to another chain. The executed transfer is point-to-point (chain-to-chain) with all of the transfer properties specified in the instruction parameters. The instruction also allows specifying another XCM program to be executed on the remote chain. If a transfer requires going through multiple hops, an XCM program can compose this instruction to be used at every chain along the path, on each hop describing that specific leg of the transfer. **Note:** Transferring assets that require different paths (chains along the way) is _not supported within same XCM_ because of the async nature of cross chain messages. This new instruction, however, enables initiating transfers for multiple assets that take the same path even if they require different transfer types along that path. The usage and composition model of `InitiateTransfer` is the same as with existing `DepositReserveAsset`, `InitiateReserveWithdraw` and `InitiateTeleport` instructions. The main difference comes from the ability to handle assets that have different point-to-point transfer type between A and B. The other benefit is that it also allows specifying remote fee payment and transparently appends the required remote fees logic to the remote XCM. We can specify the desired transfer type for some asset(s) using: ```rust /// Specify which type of asset transfer is required for a particular `(asset, dest)` combination. pub enum AssetTransferFilter { /// teleport assets matching `AssetFilter` to `dest` Teleport(AssetFilter), /// reserve-transfer assets matching `AssetFilter` to `dest`, using the local chain as reserve ReserveDeposit(AssetFilter), /// reserve-transfer assets matching `AssetFilter` to `dest`, using `dest` as reserve ReserveWithdraw(AssetFilter), } ``` This PR adds 1 new XCM instruction: ```rust /// Cross-chain transfer matching `assets` in the holding register as follows: /// /// Assets in the holding register are matched using the given list of `AssetTransferFilter`s, /// they are then transferred based on their specified transfer type: /// /// - teleport: burn local assets and append a `ReceiveTeleportedAsset` XCM instruction to /// the XCM program to be sent onward to the `dest` location, /// /// - reserve deposit: place assets under the ownership of `dest` within this consensus system /// (i.e. its sovereign account), and append a `ReserveAssetDeposited` XCM instruction /// to the XCM program to be sent onward to the `dest` location, /// /// - reserve withdraw: burn local assets and append a `WithdrawAsset` XCM instruction /// to the XCM program to be sent onward to the `dest` location, /// /// The onward XCM is then appended a `ClearOrigin` to allow safe execution of any following /// custom XCM instructions provided in `remote_xcm`. /// /// The onward XCM also potentially contains a `BuyExecution` instruction based on the presence /// of the `remote_fees` parameter (see below). /// /// If a transfer requires going through multiple hops, an XCM program can compose this instruction /// to be used at every chain along the path, describing that specific leg of the transfer. /// /// Parameters: /// - `dest`: The location of the transfer next hop. /// - `remote_fees`: If set to `Some(asset_xfer_filter)`, the single asset matching /// `asset_xfer_filter` in the holding register will be transferred first in the remote XCM /// program, followed by a `BuyExecution(fee)`, then rest of transfers follow. /// This guarantees `remote_xcm` will successfully pass a `AllowTopLevelPaidExecutionFrom` barrier. /// - `remote_xcm`: Custom instructions that will be executed on the `dest` chain. Note that /// these instructions will be executed after a `ClearOrigin` so their origin will be `None`. /// /// Safety: No concerns. /// /// Kind: *Command*. /// InitiateTransfer { destination: Location, remote_fees: Option<AssetTransferFilter>, assets: Vec<AssetTransferFilter>, remote_xcm: Xcm<()>, } ``` An `InitiateTransfer { .. }` instruction shall transfer to `dest`, all assets in the `holding` register that match the provided `assets` and `remote_fees` filters. These filters identify the assets to be transferred as well as the transfer type to be used for transferring them. It shall handle the local side of the transfer, then forward an onward XCM to `dest` for handling the remote side of the transfer. It should do so using same mechanisms as existing `DepositReserveAsset`, `InitiateReserveWithdraw`, `InitiateTeleport` instructions but practically combining all required XCM instructions to be remotely executed into a _single_ remote XCM program to be sent over to `dest`. Furthermore, through `remote_fees: Option<AssetTransferFilter>`, it shall allow specifying a single asset to be used for fees on `dest` chain. This single asset shall be remotely handled/received by the **first instruction** in the onward XCM and shall be followed by a `BuyExecution` instruction using it. If `remote_fees` is set to `None`, the **first instruction** in the onward XCM shall be a `UnpaidExecution` instruction. The rest of the assets shall be handled by subsequent instructions, thus also finally allowing [single asset buy execution](#2423) barrier security recommendation. The `BuyExecution` appended to the onward XCM specifies `WeightLimit::Unlimited`, thus being limited only by the `remote_fees` asset "amount". This is a deliberate decision for enhancing UX - in practice, people/dApps care about limiting the amount of fee asset used and not the actually used weight. The onward XCM, following the assets transfers instructions, `ClearOrigin` or `DescendOrigin` instructions shall be appended to stop acting on behalf of the source chain, then the caller-provided `remote_xcm` shall also be appended, allowing the caller to control what to do with the transferred assets. Closes #5209 --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: command-bot <>
Configuration menu - View commit details
-
Copy full SHA for 8fe7700 - Browse repository at this point
Copy the full SHA 8fe7700View commit details -
Configuration menu - View commit details
-
Copy full SHA for 10d6795 - Browse repository at this point
Copy the full SHA 10d6795View commit details
Commits on Oct 29, 2024
-
Transact without specifying weight (#6228)
Addresses #4284 For V5, removed `required_weight_at_most` from `Transact`. The weigher now has to decode the call inside of a transaction in order to know it's dispatch weight. It's harder to make mistakes now, since the user no longer specifies a weight value which might be wrong.
Configuration menu - View commit details
-
Copy full SHA for a1b8381 - Browse repository at this point
Copy the full SHA a1b8381View commit details -
[xcm-v5] implement RFC#122: InitiateTransfer can alias XCM original o…
…rigin on destination (#5971) Built on top of #5876 # Description Currently, all XCM asset transfer instructions ultimately clear the origin in the remote XCM message by use of the `ClearOrigin` instruction. This is done for security considerations to ensure that subsequent (user-controlled) instructions cannot command the authority of the sending chain. The problem with this approach is that it limits what can be achieved on remote chains through XCM. Most XCM operations require having an origin, and following any asset transfer the origin is lost, meaning not much can be done other than depositing the transferred assets to some local account or transferring them onward to another chain. For example, we cannot transfer some funds for buying execution, then do a `Transact` (all in the same XCM message). In the case of XCM programs going from source-chain directly to dest-chain without an intermediary hop, we can enable scenarios such as above by using the AliasOrigin instruction instead of the ClearOrigin instruction. Instead of clearing the source-chain origin, the destination chain shall attempt to alias source-chain to "original origin" on the source chain. Most common such origin aliasing would be X1(Parachain(source-chain)) -> X2(Parachain(source-chain), AccountId32(origin-account)) for the case of a single hop transfer where the initiator is a (signed/pure/proxy) account origin-account on source-chain. This is equivalent to using the DescendOrigin instruction in this case, but also usable in the multi hop case. This allows an actor on chain A to Transact on chain B without having to prefund its SA account on chain B, instead they can simply transfer the required fees in the same XCM program as the Transact. As long as the asset transfer has the same XCM route/hops as the rest of the program, this pattern of usage can be composed across multiple hops, to ultimately Transact on the final hop using the original origin on the source chain, effectively abstracting away any intermediary hops. ### XCM `InitiateAssetsTransfer` instruction changes A new parameter `preserve_origin` to be added to the `InitiateAssetsTransfer` XCM instruction that specifies if the original origin should be preserved or cleared. ```diff InitiateAssetsTransfer { destination: Location, assets: Vec<AssetTransferFilter>, remote_fees: Option<AssetTransferFilter>, + preserve_origin: bool, remote_xcm: Xcm<()>, } ``` This parameter is explicitly necessary because the instruction should be usable between any two chains regardless of their origin-aliasing trust relationship. Preserving the origin requires some level of trust, while clearing it works regardless of that relationship. Specifying `preserve_origin: false` will always work regardless of the configured alias filters of the involved chains. # Testing - [x] e2e test: User on PenpalA registers foreign token (transacts) on PenpalB through XCM, while paying all fees using USDT (meaning XCM has to go through AssetHub) - AH carries over the original origin, effectively being a transparent proxy, - [x] e2e test: User/contract on Ethereum registers foreign token (transacts) on Polkadot-PenpalA through XCM (over bridge), while paying all fees using DOT (has to go through AssetHub) - AH carries over the original origin, effectively being a transparent proxy for Ethereum, --------- Signed-off-by: Adrian Catangiu <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Branislav Kontur <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 86542d6 - Browse repository at this point
Copy the full SHA 86542d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for e8807a3 - Browse repository at this point
Copy the full SHA e8807a3View commit details
Commits on Oct 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 4551714 - Browse repository at this point
Copy the full SHA 4551714View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c29910 - Browse repository at this point
Copy the full SHA 4c29910View commit details -
Configuration menu - View commit details
-
Copy full SHA for b2702bb - Browse repository at this point
Copy the full SHA b2702bbView commit details
Commits on Oct 31, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d447db8 - Browse repository at this point
Copy the full SHA d447db8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 01d9227 - Browse repository at this point
Copy the full SHA 01d9227View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30920c0 - Browse repository at this point
Copy the full SHA 30920c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for d2a98f4 - Browse repository at this point
Copy the full SHA d2a98f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for a9762d6 - Browse repository at this point
Copy the full SHA a9762d6View commit details
Commits on Nov 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c7f8cba - Browse repository at this point
Copy the full SHA c7f8cbaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8aeb508 - Browse repository at this point
Copy the full SHA 8aeb508View commit details -
Configuration menu - View commit details
-
Copy full SHA for 582d4c5 - Browse repository at this point
Copy the full SHA 582d4c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0eb726d - Browse repository at this point
Copy the full SHA 0eb726dView commit details -
[XCMv5]Remove XCM testnet NetworkIds (#5390)
# Context Close #5241, for more detail, please refer to [RFC0108](polkadot-fellows/RFCs#108) # Changes - Remove `Rococo` and `Westend` from `NetworkId` * Add `Rococo Genesis Hash` and `Westend Genesis Hash` --------- Co-authored-by: Nazar Mokrynskyi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e21773a - Browse repository at this point
Copy the full SHA e21773aView commit details -
Configuration menu - View commit details
-
Copy full SHA for de9b7c6 - Browse repository at this point
Copy the full SHA de9b7c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for f125031 - Browse repository at this point
Copy the full SHA f125031View commit details
Commits on Nov 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2892aac - Browse repository at this point
Copy the full SHA 2892aacView commit details -
Configuration menu - View commit details
-
Copy full SHA for fd2d39a - Browse repository at this point
Copy the full SHA fd2d39aView commit details -
Configuration menu - View commit details
-
Copy full SHA for a503e9d - Browse repository at this point
Copy the full SHA a503e9dView commit details
Commits on Nov 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bd0ad18 - Browse repository at this point
Copy the full SHA bd0ad18View commit details -
Configuration menu - View commit details
-
Copy full SHA for b160c34 - Browse repository at this point
Copy the full SHA b160c34View commit details -
Configuration menu - View commit details
-
Copy full SHA for cfe404a - Browse repository at this point
Copy the full SHA cfe404aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 00f2c0f - Browse repository at this point
Copy the full SHA 00f2c0fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 68462d7 - Browse repository at this point
Copy the full SHA 68462d7View commit details -
".git/.scripts/commands/fmt/fmt.sh"
command-bot committedNov 5, 2024 Configuration menu - View commit details
-
Copy full SHA for ae85ee4 - Browse repository at this point
Copy the full SHA ae85ee4View commit details -
".git/.scripts/commands/fmt/fmt.sh"
command-bot committedNov 5, 2024 Configuration menu - View commit details
-
Copy full SHA for 355366f - Browse repository at this point
Copy the full SHA 355366fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2c073ea - Browse repository at this point
Copy the full SHA 2c073eaView commit details -
Merge branch 'xcm-v5' of https://github.com/paritytech/polkadot-sdk i…
…nto HEAD
command-bot committedNov 5, 2024 Configuration menu - View commit details
-
Copy full SHA for b07e2f2 - Browse repository at this point
Copy the full SHA b07e2f2View commit details -
".git/.scripts/commands/bench/bench.sh" --subcommand=xcm --runtime=we…
…stend --target_dir=polkadot --pallet=pallet_xcm_benchmarks::generic
command-bot committedNov 5, 2024 Configuration menu - View commit details
-
Copy full SHA for 8163663 - Browse repository at this point
Copy the full SHA 8163663View commit details -
".git/.scripts/commands/bench/bench.sh" --subcommand=xcm --runtime=ro…
…coco --target_dir=polkadot --pallet=pallet_xcm_benchmarks::generic
command-bot committedNov 5, 2024 Configuration menu - View commit details
-
Copy full SHA for b4eeb08 - Browse repository at this point
Copy the full SHA b4eeb08View commit details
Commits on Nov 7, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9025ee3 - Browse repository at this point
Copy the full SHA 9025ee3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ab6a57 - Browse repository at this point
Copy the full SHA 6ab6a57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2734976 - Browse repository at this point
Copy the full SHA 2734976View commit details
Commits on Nov 8, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 51244b1 - Browse repository at this point
Copy the full SHA 51244b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a9f4d1 - Browse repository at this point
Copy the full SHA 1a9f4d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 808adff - Browse repository at this point
Copy the full SHA 808adffView commit details -
".git/.scripts/commands/fmt/fmt.sh"
command-bot committedNov 8, 2024 Configuration menu - View commit details
-
Copy full SHA for 2e1588a - Browse repository at this point
Copy the full SHA 2e1588aView commit details
Commits on Nov 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c385bed - Browse repository at this point
Copy the full SHA c385bedView commit details -
Configuration menu - View commit details
-
Copy full SHA for 37f9da7 - Browse repository at this point
Copy the full SHA 37f9da7View commit details -
Update polkadot/xcm/xcm-executor/src/lib.rs
Co-authored-by: Branislav Kontur <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 19c6838 - Browse repository at this point
Copy the full SHA 19c6838View commit details -
Configuration menu - View commit details
-
Copy full SHA for 178805d - Browse repository at this point
Copy the full SHA 178805dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4053f11 - Browse repository at this point
Copy the full SHA 4053f11View commit details