mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-25 21:07:56 +00:00
c130ea9939
The XCM builder pattern lets you build xcms like so:
```rust
let xcm = Xcm::builder()
.withdraw_asset((Parent, 100u128).into())
.buy_execution((Parent, 1u128).into())
.deposit_asset(All.into(), AccountId32 { id: [0u8; 32], network: None }.into())
.build();
```
All the `.into()` become quite annoying to have to write.
I accepted `impl Into<T>` instead of `T` in the generated methods from
the macro.
Now the previous example can be simplified as follows:
```rust
let xcm = Xcm::builder()
.withdraw_asset((Parent, 100u128))
.buy_execution((Parent, 1u128))
.deposit_asset(All, [0u8; 32])
.build();
```
---------
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: command-bot <>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
32 lines
961 B
Plaintext
32 lines
961 B
Plaintext
# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
|
|
# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
|
|
|
|
title: XCM builder pattern automatically converts instruction parameters.
|
|
|
|
doc:
|
|
- audience: Runtime Dev
|
|
description: |
|
|
Small quality of life improvement.
|
|
Previously, an XCM could be built like this:
|
|
```rust
|
|
let xcm = Xcm::builder()
|
|
.withdraw_asset((Parent, 100u128).into())
|
|
.buy_execution((Parent, 1u128).into())
|
|
.deposit_asset(All.into(), AccountId32 { id: [0u8; 32], network: None }.into())
|
|
.build();
|
|
```
|
|
Now, it can be built like this:
|
|
```rust
|
|
let xcm = Xcm::builder()
|
|
.withdraw_asset((Parent, 100u128))
|
|
.buy_execution((Parent, 1u128))
|
|
.deposit_asset(All, [0u8; 32])
|
|
.build();
|
|
```
|
|
|
|
crates:
|
|
- name: "xcm-procedural"
|
|
bump: minor
|
|
- name: "staging-xcm"
|
|
bump: minor
|