-
Notifications
You must be signed in to change notification settings - Fork 707
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
XCM v5 #4826
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 4c29910 - Browse repository at this point
Copy the full SHA 4c29910View commit details
Commits on Oct 31, 2024
-
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
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
Commits on Nov 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 00f2c0f - Browse repository at this point
Copy the full SHA 00f2c0fView 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 a80f49b - Browse repository at this point
Copy the full SHA a80f49bView commit details -
Configuration menu - View commit details
-
Copy full SHA for abb8142 - Browse repository at this point
Copy the full SHA abb8142View commit details -
Configuration menu - View commit details
-
Copy full SHA for 20db7f8 - Browse repository at this point
Copy the full SHA 20db7f8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6b8b1cd - Browse repository at this point
Copy the full SHA 6b8b1cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c20658 - Browse repository at this point
Copy the full SHA 9c20658View commit details -
Configuration menu - View commit details
-
Copy full SHA for fcb5e73 - Browse repository at this point
Copy the full SHA fcb5e73View commit details
Commits on Nov 6, 2024
-
Small nits for XCMv5 found during review: - `MaxDispatchErrorLen` cleanup - Use `xcm::latest` instead of `xcm::v5` - Use the same `SendXcm` import for coretime migration --------- Co-authored-by: command-bot <>
Configuration menu - View commit details
-
Copy full SHA for c2706e6 - Browse repository at this point
Copy the full SHA c2706e6View commit details -
Apply suggestions from code review
Co-authored-by: Branislav Kontur <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d5639cc - Browse repository at this point
Copy the full SHA d5639ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 87380c5 - Browse repository at this point
Copy the full SHA 87380c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e3b9af8 - Browse repository at this point
Copy the full SHA e3b9af8View commit details -
Configuration menu - View commit details
-
Copy full SHA for f29852f - Browse repository at this point
Copy the full SHA f29852fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 81c420d - Browse repository at this point
Copy the full SHA 81c420dView commit details -
Configuration menu - View commit details
-
Copy full SHA for aa28c7a - Browse repository at this point
Copy the full SHA aa28c7aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4f032f0 - Browse repository at this point
Copy the full SHA 4f032f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70c10b4 - Browse repository at this point
Copy the full SHA 70c10b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for ea4516d - Browse repository at this point
Copy the full SHA ea4516dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 738eeb2 - Browse repository at this point
Copy the full SHA 738eeb2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b320ec0 - Browse repository at this point
Copy the full SHA b320ec0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 603db91 - Browse repository at this point
Copy the full SHA 603db91View commit details -
Configuration menu - View commit details
-
Copy full SHA for 407383f - Browse repository at this point
Copy the full SHA 407383fView commit details -
Xcm v5 migration for bhw (#6391)
Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a978d60 - Browse repository at this point
Copy the full SHA a978d60View commit details -
".git/.scripts/commands/fmt/fmt.sh"
command-bot committedNov 6, 2024 Configuration menu - View commit details
-
Copy full SHA for 93db9a9 - Browse repository at this point
Copy the full SHA 93db9a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f24a09 - Browse repository at this point
Copy the full SHA 6f24a09View commit details