Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Transfer asset via bridge with pallet xcm #2762

Open
wants to merge 412 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
412 commits
Select commit Hold shift + click to select a range
e127426
Added withdraw/deposit to bridge's reserve account
bkontur Dec 19, 2022
a7dd1fc
TODO: temporary hack pipelines because of https://github.com/parityte…
bkontur Dec 21, 2022
2f39d75
Merge remote-tracking branch 'origin/master' into gav-xcm-v3
KiChjang Dec 22, 2022
5cdc48a
xcm-v3 benchmarks, weights, fixes for bridge-hubs (#2035)
bkontur Dec 23, 2022
7f3727f
Merge branch 'master' into gav-xcm-v3
KiChjang Dec 29, 2022
e2a3354
Add event for showing the hash of an UMP sent message (#1228)
girazoki Jan 3, 2023
b7970c3
Merge branch 'master' into gav-xcm-v3
KiChjang Jan 3, 2023
63a18c2
Fixes
KiChjang Jan 3, 2023
f9a0390
Fixes
KiChjang Jan 3, 2023
893bc5c
Fixes
KiChjang Jan 3, 2023
e303fb2
Fixes
KiChjang Jan 3, 2023
2ff5c4f
Allow receive bridged Xcm::Trap on Westmint
bkontur Jan 4, 2023
18ad58b
Allow (temporary) Statemine send xcm messages
bkontur Jan 4, 2023
fe7817e
refactor TrustedBridgedNetworks
bkontur Jan 4, 2023
a80781e
Allow (hacky) xcm::transact for remark/remark_with_event
bkontur Jan 4, 2023
0985898
Unit-test for Statemine - send_xcm_transact_with_remark_with_event_works
bkontur Jan 5, 2023
c3195d2
Fix for BridgedSignedAccountId32AsNative
bkontur Jan 5, 2023
8fe432b
Allow explicit unpaid executions from the relay chains for system par…
KiChjang Jan 7, 2023
e28ef3c
Merge remote-tracking branch 'origin/master' into gav-xcm-v3
KiChjang Jan 7, 2023
87e0ea1
Allow receiving XCMs from any relay chain plurality
KiChjang Jan 10, 2023
146c742
Fixes
KiChjang Jan 10, 2023
3353263
don't rename pallet in runtime
joepetrowski Jan 11, 2023
9e211b8
don't rename and fix tests
joepetrowski Jan 11, 2023
31bc1c6
Added `allowed_target_location` + reanchored assets/destination + tests
bkontur Jan 12, 2023
25c2fc5
fix benchmark helper
joepetrowski Jan 12, 2023
a4a581b
fix benchmark build
joepetrowski Jan 12, 2023
7fbfeb3
Merge remote-tracking branch 'origin/joe-bridge-hub-westmint-assets' …
bkontur Jan 12, 2023
9cd2708
more benchmark fixes
joepetrowski Jan 12, 2023
23f9e4d
Merge remote-tracking branch 'origin/joe-bridge-hub-westmint-assets' …
bkontur Jan 12, 2023
81e9703
fix penpal and rococo
joepetrowski Jan 12, 2023
d5787aa
Merge remote-tracking branch 'origin/master' into gav-xcm-v3
bkontur Jan 13, 2023
71b357b
Merge remote-tracking branch 'origin/gav-xcm-v3' into bridge-hub-base
bkontur Jan 15, 2023
f6e1b01
Patched dependencies (polkadot, substrate) for xcm-v3 (compiles + tes…
bkontur Jan 15, 2023
4365baa
Merge branch 'bridge-hub-base' into joe-bridge-hub-westmint-assets
bkontur Jan 15, 2023
f2c3569
Merge remote-tracking branch 'origin/joe-bridge-hub-westmint-assets' …
bkontur Jan 15, 2023
0c3f3b7
update BenchmarkHelper interface
joepetrowski Jan 17, 2023
c3d2108
fmt
joepetrowski Jan 17, 2023
0d75123
Merge remote-tracking branch 'origin/master' into joe-bridge-hub-west…
bkontur Jan 21, 2023
1d6fff4
Merge branch 'joe-bridge-hub-westmint-assets' into bko-transfer-asset…
bkontur Jan 21, 2023
8d809e4
Added weight `export_message` to statemint because of `pallet_xcm.send`
bkontur Jan 22, 2023
81abe45
add foreign assets to westmint
joepetrowski Jan 24, 2023
0da76e0
add foreign assets to statemine
joepetrowski Jan 24, 2023
57a2f00
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jan 25, 2023
1ae22a7
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jan 30, 2023
af4fe56
Governance can call `xcm:Transact` with bridges configuration management
bkontur Jan 30, 2023
063fef0
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Jan 30, 2023
bf2e4d3
Merge remote-tracking branch 'origin/joe-foreign-assets' into bko-tra…
bkontur Jan 30, 2023
78175ba
Revert temporary disabled `scripts/ci/gitlab/pipeline/test.yml`
bkontur Jan 30, 2023
761a500
Unit-test for handling `ReserveAssetDeposited` on Westmint for Foreig…
bkontur Feb 1, 2023
bc4664b
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Feb 9, 2023
b534445
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Feb 10, 2023
0590241
use updated api for ensure origin trait
muharem Feb 13, 2023
a1ce9b8
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Feb 23, 2023
0f80e76
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Feb 28, 2023
ae8cac6
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
bkontur Mar 3, 2023
1b21403
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Mar 3, 2023
5cb396f
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Mar 8, 2023
56abaf5
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Mar 10, 2023
d5b71a7
Benchmarks for pallet-bridge-assets-transfer (#2316)
svyatonik Mar 15, 2023
4f70058
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Mar 15, 2023
60a6089
Assets/ForeignAssets tests and fixes (#2167)
bkontur Mar 16, 2023
018b800
Added `StartsWithExplicitGlobalConsensus` to ignores (#2338)
bkontur Mar 16, 2023
08bfe99
Merge remote-tracking branch 'origin/joe-foreign-assets' into bko-tra…
bkontur Mar 16, 2023
48b6877
Change to correct weight file for pallet_bridge_assets_transfer
bkontur Mar 17, 2023
c16f96d
Renamed `pallet-bridge-assets-transfer` to `pallet-bridge-transfer`
bkontur Mar 17, 2023
32a09c7
from_ref_time to from_parts
bkontur Mar 17, 2023
137ee81
".git/.scripts/commands/bench/bench.sh" pallet statemine assets palle…
Mar 17, 2023
36751ae
Added `ping_via_bridge`
bkontur Mar 19, 2023
b550a8e
".git/.scripts/commands/bench/bench.sh" pallet statemine assets palle…
Mar 19, 2023
47e0283
Merge remote-tracking branch 'origin/master' into joe-foreign-assets
Mar 20, 2023
a4e2b93
Fix test
bkontur Mar 20, 2023
ad13281
Merge remote-tracking branch 'origin/joe-foreign-assets' into bko-tra…
Mar 20, 2023
eff26cd
Revert not needed stuff
bkontur Mar 20, 2023
65fe38b
Added test-case `can_governance_change_bridge_transfer_configuration`
bkontur Mar 20, 2023
bc5a3ed
Added test `initiate_transfer_asset_via_bridge_for_native_asset_works`
bkontur Mar 21, 2023
ec44e0d
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Mar 23, 2023
abe9ad2
Fix compilation
bkontur Mar 24, 2023
98c09fa
Small fixes
bkontur Mar 24, 2023
d712d42
Added support for paid or unpaid execution by configuration
bkontur Mar 24, 2023
8dfe3b6
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Mar 24, 2023
a757c38
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
Mar 27, 2023
a3eb549
Removed stuff
bkontur Mar 27, 2023
e0a27e6
Added `receive_reserve_asset_deposited_from_different_consensus_works`
bkontur Mar 27, 2023
72d4010
Renamed Bridges -> AllowedExporters
bkontur Mar 28, 2023
99fca26
Added `IsReserve` handling for `ReserveAssetDeposited` + benchmarks
bkontur Mar 29, 2023
bfaa974
Fix compile
bkontur Mar 29, 2023
1c459ed
Merge branch 'master' of https://github.com/paritytech/cumulus into HEAD
Mar 29, 2023
3bf39cf
".git/.scripts/commands/bench/bench.sh" pallet statemine assets palle…
Mar 29, 2023
f76ba2b
Fix conditional benchmarking
bkontur Mar 30, 2023
8bcceb6
Merge branch 'master' of https://github.com/paritytech/cumulus into HEAD
Mar 30, 2023
45ca89b
".git/.scripts/commands/bench/bench.sh" pallet statemine assets palle…
Mar 30, 2023
727b348
".git/.scripts/commands/bench/bench.sh" pallet westmint assets pallet…
Mar 30, 2023
a92aeb3
Change test weights
bkontur Mar 31, 2023
b82d6b1
Fix SafeCallFilter for westmint
bkontur Mar 31, 2023
7fd80c7
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Apr 4, 2023
e25e1ef
Use send_xcm and add cost to event
bkontur Apr 4, 2023
77ad776
Refactor to support multiple MultiAsset + cleaning
bkontur Apr 5, 2023
b3edf24
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
Apr 5, 2023
e6bd54a
".git/.scripts/commands/bench/bench.sh" xcm westmint assets pallet_xc…
Apr 5, 2023
71d427f
Updated doc
bkontur Apr 13, 2023
73bdbdc
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
Apr 13, 2023
56644eb
Address review comments
serban300 Apr 20, 2023
5170168
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
Apr 24, 2023
5c479b7
Extract runtime_para_id for test
bkontur Apr 19, 2023
ad2fa5c
Typos
bkontur Apr 19, 2023
7bba7f0
Added helper for `execute_as_governance`
bkontur Apr 20, 2023
e58b442
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Apr 24, 2023
2e33b87
Fix test because `UnpaidRemoteExporter` adds now `UnpaidExecution` in…
bkontur Apr 24, 2023
43ee627
Use `execute_as_governance` function
bkontur Apr 24, 2023
bc8da2d
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 22, 2023
7c6d11a
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 22, 2023
469fe9c
Used `GlobalConsensusParachainConvertsFor` from `xcm-builder`
bkontur May 22, 2023
c167add
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 23, 2023
b1e9103
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 23, 2023
61ac4b7
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 24, 2023
2a9cd81
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 25, 2023
e2101a5
Fix target
bkontur May 25, 2023
4280239
Fixed AssetTrapped issue
bkontur May 25, 2023
79adea5
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 26, 2023
b2199fc
Fix xcm `SetTopic` vs message_hash vs message_id stuff
bkontur May 26, 2023
0ad1c23
Sovereign account as target destination instead of bridge-hub
bkontur May 26, 2023
7838a2a
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 26, 2023
b16b00e
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 29, 2023
322fdc6
Allow both sides
bkontur May 30, 2023
5218d82
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur May 30, 2023
b873588
".git/.scripts/commands/bench/bench.sh" xcm statemine assets pallet_x…
May 30, 2023
4bac3e7
".git/.scripts/commands/bench/bench.sh" xcm westmint assets pallet_xc…
May 30, 2023
80c77ad
".git/.scripts/commands/bench/bench.sh" pallet statemine assets palle…
May 30, 2023
faae320
".git/.scripts/commands/bench/bench.sh" pallet westmint assets pallet…
May 30, 2023
8d024e6
Introduced AssetTransferKind + heavy refactor
bkontur Jun 8, 2023
bb65750
One more refactor
bkontur Jun 8, 2023
9f52511
Merge remote-tracking branch 'origin/bko-transfer-asset-via-bridge' i…
bkontur Jun 8, 2023
3b6c1e5
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 8, 2023
8a07286
Test compilation after rebase
bkontur Jun 8, 2023
850fac5
Small nits
bkontur Jun 8, 2023
9563e47
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 8, 2023
e6c4ec1
Reworked benchmarks
bkontur Jun 9, 2023
ed9d63f
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 9, 2023
8519a76
".git/.scripts/commands/bench/bench.sh" xcm statemine assets pallet_x…
Jun 9, 2023
50b7778
Merge branch 'master' of https://github.com/paritytech/cumulus into HEAD
Jun 9, 2023
c4b1e6e
".git/.scripts/commands/bench/bench.sh" xcm westmint assets pallet_xc…
Jun 9, 2023
0fade80
".git/.scripts/commands/bench/bench.sh" pallet statemine assets palle…
Jun 9, 2023
8013e38
".git/.scripts/commands/bench/bench.sh" pallet westmint assets pallet…
Jun 9, 2023
ed57ede
".git/.scripts/commands/bench/bench.sh" xcm asset-hub-kusama assets p…
Jun 9, 2023
9a833b1
Introduced `primitives` sub module
bkontur Jun 9, 2023
a5c14ea
Renamed const
bkontur Jun 9, 2023
00d16b5
".git/.scripts/commands/bench/bench.sh" xcm asset-hub-westend assets …
Jun 9, 2023
e67f9f5
Merge branch 'master' of https://github.com/paritytech/cumulus into HEAD
Jun 9, 2023
c3e150a
".git/.scripts/commands/bench/bench.sh" pallet asset-hub-kusama asset…
Jun 9, 2023
36f5c1b
Moved cfg stuff to `pallet-bridge-transfer-onchain-config`
bkontur Jun 10, 2023
916fe2e
More refactoring
bkontur Jun 12, 2023
3f2a3ba
Another refactor
bkontur Jun 12, 2023
8bef5e7
Temporary removed pallet for on-chain bridge config (will come in oth…
bkontur Jun 12, 2023
2f5ea0c
Removed line
bkontur Jun 12, 2023
be9d74f
Merge remote-tracking branch 'origin/bko-transfer-asset-via-bridge' i…
bkontur Jun 12, 2023
2ccce59
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 12, 2023
0962356
Added cfg to asset-hub-polkadot
bkontur Jun 12, 2023
c96d3d8
Fix test - ED for staking_pot
bkontur Jun 12, 2023
78b4077
Allow set_storage for max fee constant
bkontur Jun 12, 2023
f4db99d
trivial: remove redundant method implementations
svyatonik Jun 13, 2023
4b6d142
Fix benchmarks
bkontur Jun 13, 2023
5adee69
Merge remote-tracking branch 'origin/bko-transfer-asset-via-bridge' i…
bkontur Jun 13, 2023
49898b7
Nits
bkontur Jun 13, 2023
6996284
Clippy
bkontur Jun 13, 2023
9d7416f
Clippy
bkontur Jun 13, 2023
6f1fca8
Benchmarks
bkontur Jun 14, 2023
7460f08
Fix try-runtime
bkontur Jun 14, 2023
dd9d2ed
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 14, 2023
27c048d
".git/.scripts/commands/bench/bench.sh" xcm asset-hub-kusama assets p…
Jun 14, 2023
23b0e06
Merge branch 'master' of https://github.com/paritytech/cumulus into HEAD
Jun 14, 2023
e7470ef
".git/.scripts/commands/bench/bench.sh" xcm asset-hub-westend assets …
Jun 14, 2023
40781e0
Merge branch 'master' of https://github.com/paritytech/cumulus into HEAD
Jun 14, 2023
26f86a3
".git/.scripts/commands/bench/bench.sh" xcm asset-hub-polkadot assets…
Jun 14, 2023
c58ba8e
".git/.scripts/commands/bench/bench.sh" pallet asset-hub-kusama asset…
Jun 14, 2023
a34bd0f
".git/.scripts/commands/bench/bench.sh" pallet asset-hub-westend asse…
Jun 14, 2023
6d3db81
".git/.scripts/commands/bench/bench.sh" pallet asset-hub-polkadot ass…
Jun 14, 2023
167fc06
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
Jun 16, 2023
62a1f2d
Fix README and local run scripts
bkontur Jun 19, 2023
d4ea7d5
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 19, 2023
5209fe9
Removed `pallet-bridge-transfer`
bkontur Jun 20, 2023
e2ef0bd
Cleaned-up `ReserveAssetDeposited` handling
bkontur Jun 20, 2023
59156e3
Nits
bkontur Jun 20, 2023
4765ae7
Updated tests
bkontur Jun 21, 2023
f08c291
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 21, 2023
c08b158
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jun 22, 2023
ba1663f
Fix tests
bkontur Jun 23, 2023
600d01b
diener to `bko-poc-pallet-xcm`
bkontur Jun 23, 2023
6d5350f
Added tests for `reserve_transfer_assets` DOT->AssetHubKusama scenario
bkontur Jun 24, 2023
49d29ec
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 3, 2023
48f1f98
Fixed tests
bkontur Jul 4, 2023
cb31acd
AliasOrigin benchmark
bkontur Jul 4, 2023
e2034ca
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 4, 2023
a6437c2
Added BridgeInstance discriminator for UniversalAlias handling
bkontur Jul 4, 2023
8ce37c4
Fixes
bkontur Jul 4, 2023
eb65cb2
Fixes
bkontur Jul 4, 2023
2ccfad8
bump Polkadot ref
acatangiu Jul 10, 2023
853f453
Bump polkadot refs
bkontur Jul 15, 2023
74ef7c5
Revert `bko-poc-pallet-xcm` deps to master
bkontur Jul 19, 2023
13c858e
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 19, 2023
b5d10a5
More reverts
bkontur Jul 19, 2023
3cf131e
More reverts
bkontur Jul 19, 2023
0ccf9f4
More reverts
bkontur Jul 19, 2023
7bb2f74
Lets use `limited_reserve_transfer_assets` with `Unlimited`
bkontur Jul 19, 2023
12c37f9
Refactored tests for `reserve_asset_deposited_dot/reserve_asset_depos…
bkontur Jul 20, 2023
d5c4476
CollatorSessionKey(s) small change
bkontur Jul 20, 2023
a732262
Added `TakeFirstAssetTrader` for ForeignAssets
bkontur Jul 20, 2023
1bf17da
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 24, 2023
b08c2ba
Clippy
bkontur Jul 24, 2023
261e04d
Removed wrong import
bkontur Jul 24, 2023
590cdfc
Removed unused dependency
bkontur Jul 24, 2023
e5da361
Clippy
bkontur Jul 24, 2023
70667b4
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 24, 2023
d34ef99
Script for init asset-hub with ForeignAssets
bkontur Jul 25, 2023
484cd76
Fixed scripts for local asset transfer AHK<>AHP
bkontur Jul 25, 2023
610f0b1
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 25, 2023
cf643fa
Explicitly allow only KSM/DOT for reserve based transfer
bkontur Jul 26, 2023
05cd5a9
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 26, 2023
e13b610
Revert for AssetHubWestend (we dont need it here)
bkontur Jul 27, 2023
1a1c9ea
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 27, 2023
5b89043
Update parachains/runtimes/assets/test-utils/src/test_cases_over_brid…
bkontur Jul 27, 2023
e1a40d1
Refactored `xcm_reserve_transfer_filter_works` for `pallet_xcm::Confi…
bkontur Jul 27, 2023
d5f0b64
Apply patch from https://gitlab.parity.io/parity/mirrors/cumulus/-/jo…
bkontur Jul 27, 2023
24ebd9a
Apply patch https://gitlab.parity.io/parity/mirrors/cumulus/-/jobs/32…
bkontur Jul 27, 2023
81230a4
Apply patch https://gitlab.parity.io/parity/mirrors/cumulus/-/jobs/32…
bkontur Jul 27, 2023
01098e7
Apply patch https://gitlab.parity.io/parity/mirrors/cumulus/-/jobs/32…
bkontur Jul 27, 2023
8ab74fb
Added docs for `TakeFirstAssetTrader` / `AssetFeeAsExistentialDeposit…
bkontur Jul 27, 2023
cc4f959
Update parachains/runtimes/assets/test-utils/src/test_cases.rs
bkontur Jul 27, 2023
6842f5d
Update parachains/runtimes/assets/test-utils/src/test_cases_over_brid…
bkontur Jul 27, 2023
d157f11
Update parachains/runtimes/assets/test-utils/src/test_cases_over_brid…
bkontur Jul 27, 2023
dcd4c16
Update parachains/runtimes/assets/test-utils/src/test_cases_over_brid…
bkontur Jul 27, 2023
5800f3f
Update parachains/runtimes/assets/test-utils/src/test_cases_over_brid…
bkontur Jul 27, 2023
fe3a31c
Update parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs
bkontur Jul 27, 2023
a700e95
Update parachains/runtimes/assets/asset-hub-kusama/src/xcm_config.rs
bkontur Jul 27, 2023
7834c77
More docs (from Joe)
bkontur Jul 27, 2023
b6d95ca
Removed println and added simple matcher for `reserve_transfer_assets…
bkontur Jul 27, 2023
d3c017b
Mistake in paraId
bkontur Jul 27, 2023
41f85e1
fmt
bkontur Jul 27, 2023
5103de8
Improved location filtering and `FilteredNetworkExportTable`
bkontur Jul 28, 2023
5c94232
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Jul 28, 2023
bae9f30
Strict `XcmReserveTransferFilter` with `ExcludeOnlyForRemoteDestination`
bkontur Jul 28, 2023
db7a045
Periods. :).
bkontur Jul 28, 2023
ce84eb0
Update parachains/runtimes/assets/common/src/matching.rs
bkontur Jul 31, 2023
8d2812f
Update parachains/runtimes/assets/asset-hub-kusama/tests/tests.rs
bkontur Aug 2, 2023
43d14a9
Variable rename
bkontur Aug 2, 2023
5ce9c0f
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Aug 2, 2023
01ee625
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Aug 10, 2023
fef0d8d
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Aug 16, 2023
f365dca
".git/.scripts/commands/fmt/fmt.sh"
Aug 16, 2023
3355171
Changed min_balance for pKSM 1_000_000_000 -> 10_000_000_000
bkontur Aug 16, 2023
41fe2db
Merge remote-tracking branch 'origin/master' into bko-transfer-asset-…
bkontur Aug 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

140 changes: 140 additions & 0 deletions parachains/common/src/xcm_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ use frame_support::{
log,
traits::{fungibles::Inspect, tokens::ConversionToAssetBalance, ContainsPair},
weights::Weight,
DefaultNoBound,
};
use sp_runtime::traits::Get;
use xcm::latest::prelude::*;
use xcm_builder::ExporterFor;

/// A `ChargeFeeInFungibles` implementation that converts the output of
/// a given WeightToFee implementation an amount charged in
Expand Down Expand Up @@ -63,3 +65,141 @@ impl<Location: Get<MultiLocation>> ContainsPair<MultiAsset, MultiLocation>
matches!(asset.id, Concrete(ref id) if id == origin && origin == &Location::get())
}
}

/// Trait for matching `Location`.
pub trait MatchesLocation<Location> {
fn matches(&self, location: &Location) -> bool;
}

/// Simple `MultiLocation` filter utility.
#[derive(Debug, DefaultNoBound)]
pub struct LocationFilter<Location> {
/// Requested location equals to `Location`.
pub equals_any: sp_std::vec::Vec<Location>,
/// Requested location starts with `Location`.
pub starts_with_any: sp_std::vec::Vec<Location>,
}

impl<Location> LocationFilter<Location> {
pub fn add_equals(mut self, filter: Location) -> Self {
self.equals_any.push(filter);
self
}
pub fn add_starts_with(mut self, filter: Location) -> Self {
self.starts_with_any.push(filter);
self
}
}

/// `MatchesLocation` implementation which works with `MultiLocation`.
impl MatchesLocation<MultiLocation> for LocationFilter<MultiLocation> {
fn matches(&self, location: &MultiLocation) -> bool {
for filter in &self.equals_any {
if location.eq(filter) {
return true
}
}
for filter in &self.starts_with_any {
if location.starts_with(filter) {
return true
}
}
false
}
}

/// `MatchesLocation` implementation which works with `InteriorMultiLocation`.
impl MatchesLocation<InteriorMultiLocation> for LocationFilter<InteriorMultiLocation> {
fn matches(&self, location: &InteriorMultiLocation) -> bool {
for filter in &self.equals_any {
if location.eq(filter) {
return true
}
}
for filter in &self.starts_with_any {
if location.starts_with(filter) {
return true
}
}
false
}
}

/// `FilteredNetworkExportTable` is adapter for `ExporterFor` implementation
/// which tries to find (`bridge_location`, `fees`) for requested `network` and `remote_location`.
///
/// Inspired by `xcm_builder::NetworkExportTable`:
/// the main difference is that `NetworkExportTable` does not check `remote_location`.
pub struct FilteredNetworkExportTable<T>(sp_std::marker::PhantomData<T>);
impl<
T: Get<
sp_std::vec::Vec<(
NetworkId,
LocationFilter<InteriorMultiLocation>,
MultiLocation,
Option<MultiAsset>,
)>,
>,
> ExporterFor for FilteredNetworkExportTable<T>
{
fn exporter_for(
network: &NetworkId,
remote_location: &InteriorMultiLocation,
_: &Xcm<()>,
) -> Option<(MultiLocation, Option<MultiAsset>)> {
T::get()
.into_iter()
.find(|(ref j, location_filter, ..)| {
j == network && location_filter.matches(remote_location)
})
.map(|(_, _, bridge_location, p)| (bridge_location, p))
}
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn filtered_network_export_table_works() {
frame_support::parameter_types! {
pub BridgeLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(1234)));

pub BridgeTable: sp_std::vec::Vec<(NetworkId, LocationFilter<InteriorMultiLocation>, MultiLocation, Option<MultiAsset>)> = sp_std::vec![
(
Kusama,
LocationFilter::default()
.add_equals(X1(Parachain(2000)))
.add_equals(X1(Parachain(3000)))
.add_equals(X1(Parachain(4000))),
BridgeLocation::get(),
None
)
];
}

let test_data = vec![
(Polkadot, X1(Parachain(1000)), None),
(Polkadot, X1(Parachain(2000)), None),
(Polkadot, X1(Parachain(3000)), None),
(Polkadot, X1(Parachain(4000)), None),
(Polkadot, X1(Parachain(5000)), None),
(Kusama, X1(Parachain(1000)), None),
(Kusama, X1(Parachain(2000)), Some((BridgeLocation::get(), None))),
(Kusama, X1(Parachain(3000)), Some((BridgeLocation::get(), None))),
(Kusama, X1(Parachain(4000)), Some((BridgeLocation::get(), None))),
(Kusama, X1(Parachain(5000)), None),
];

for (network, remote_location, expected_result) in test_data {
assert_eq!(
FilteredNetworkExportTable::<BridgeTable>::exporter_for(
&network,
&remote_location,
&Xcm::default()
),
expected_result,
)
}
}
}
2 changes: 1 addition & 1 deletion parachains/pallets/ping/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ try-runtime = [
"frame-support/try-runtime",
"cumulus-pallet-xcm/try-runtime",
"sp-runtime/try-runtime"
]
]
5 changes: 4 additions & 1 deletion parachains/runtimes/assets/asset-hub-kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1169,7 +1169,10 @@ impl_runtime_apis! {
}

fn universal_alias() -> Result<(MultiLocation, Junction), BenchmarkError> {
Err(BenchmarkError::Skip)
match xcm_config::bridging::BridgingBenchmarksHelper::prepare_universal_alias() {
Some(alias) => Ok(alias),
None => Err(BenchmarkError::Skip)
}
}

fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ impl<Call> XcmWeightInfo<Call> for AssetHubKusamaXcmWeight<Call> {
XcmGeneric::<Runtime>::clear_transact_status()
}
fn universal_origin(_: &Junction) -> Weight {
Weight::MAX
XcmGeneric::<Runtime>::universal_origin()
}
fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight {
Weight::MAX
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2023-07-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2023-07-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-kusama-dev"), DB CACHE: 1024
Expand Down Expand Up @@ -54,8 +54,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Proof Size summary in bytes:
// Measured: `101`
// Estimated: `3593`
// Minimum execution time: 26_371_000 picoseconds.
Weight::from_parts(27_398_000, 3593)
// Minimum execution time: 25_626_000 picoseconds.
Weight::from_parts(26_227_000, 3593)
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
Expand All @@ -65,8 +65,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Proof Size summary in bytes:
// Measured: `101`
// Estimated: `6196`
// Minimum execution time: 52_248_000 picoseconds.
Weight::from_parts(54_424_000, 6196)
// Minimum execution time: 52_510_000 picoseconds.
Weight::from_parts(53_139_000, 6196)
.saturating_add(T::DbWeight::get().reads(2))
.saturating_add(T::DbWeight::get().writes(2))
}
Expand All @@ -88,8 +88,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Proof Size summary in bytes:
// Measured: `210`
// Estimated: `6196`
// Minimum execution time: 76_817_000 picoseconds.
Weight::from_parts(78_750_000, 6196)
// Minimum execution time: 76_057_000 picoseconds.
Weight::from_parts(77_470_000, 6196)
.saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(4))
}
Expand Down Expand Up @@ -118,26 +118,26 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Proof Size summary in bytes:
// Measured: `109`
// Estimated: `3574`
// Minimum execution time: 474_937_000 picoseconds.
Weight::from_parts(483_577_000, 3574)
// Minimum execution time: 455_003_000 picoseconds.
Weight::from_parts(471_506_000, 3574)
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2))
}
pub fn receive_teleported_asset() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 3_986_000 picoseconds.
Weight::from_parts(4_088_000, 0)
// Minimum execution time: 3_573_000 picoseconds.
Weight::from_parts(3_730_000, 0)
}
// Storage: `System::Account` (r:1 w:1)
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
pub fn deposit_asset() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `3593`
// Minimum execution time: 27_152_000 picoseconds.
Weight::from_parts(27_954_000, 3593)
// Minimum execution time: 25_997_000 picoseconds.
Weight::from_parts(26_757_000, 3593)
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
Expand All @@ -159,8 +159,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Proof Size summary in bytes:
// Measured: `109`
// Estimated: `3593`
// Minimum execution time: 54_098_000 picoseconds.
Weight::from_parts(55_731_000, 3593)
// Minimum execution time: 52_111_000 picoseconds.
Weight::from_parts(53_381_000, 3593)
.saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(3))
}
Expand All @@ -180,8 +180,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
// Proof Size summary in bytes:
// Measured: `109`
// Estimated: `3574`
// Minimum execution time: 33_434_000 picoseconds.
Weight::from_parts(34_367_000, 3574)
// Minimum execution time: 31_805_000 picoseconds.
Weight::from_parts(32_627_000, 3574)
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2))
}
Expand Down
Loading