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

XCM v0 #1657

Changes from 1 commit
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
8f6ce0e
Rename XCMP -> Xcmp
gavofyork Aug 25, 2020
6ce0b56
Merge remote-tracking branch 'origin/rococo-branch' into gav-xcmp
gavofyork Aug 26, 2020
4ba8022
WiP: Xcm
gavofyork Aug 29, 2020
7492c3b
Finish up on draft
gavofyork Aug 31, 2020
9658a23
Remove old code, work on getting it all to build.
gavofyork Aug 31, 2020
84d1c55
XCM handler and parachains now build 🎉
gavofyork Aug 31, 2020
0c0796e
Various fixes
gavofyork Sep 4, 2020
a563c53
Fix compilation
bkchr Sep 7, 2020
38656a0
fix tests
shawntabrizi Sep 7, 2020
d8b67f1
Merge branch 'gav-xcmp' of https://github.com/paritytech/polkadot int…
shawntabrizi Sep 7, 2020
9c16e3d
bump parity-scale-codec 1.3.5, fix `dest_` -> `dest`
shawntabrizi Sep 7, 2020
f979fab
remove unused
shawntabrizi Sep 7, 2020
87e2090
Remove defunct code
gavofyork Sep 8, 2020
f672cc6
Merge branch 'gav-xcmp' of github.com:paritytech/polkadot into gav-xcmp
gavofyork Sep 8, 2020
4d2e8d1
Derive `RuntimeDebug` across XCM enums
shawntabrizi Sep 9, 2020
db7aa74
Working
gavofyork Sep 9, 2020
89b3695
More work
gavofyork Sep 9, 2020
3115e1d
Some fixes
bkchr Sep 10, 2020
0dfcd00
Merge branch 'gav-xcmp' into gav-xcmp-working
gavofyork Sep 10, 2020
9dd154b
More work
gavofyork Sep 10, 2020
4163db9
Merge branch 'gav-xcmp-working' of github.com:paritytech/polkadot int…
gavofyork Sep 10, 2020
0566de0
Move interpreter into polkadot, split & repot
gavofyork Sep 10, 2020
a5c0e95
Move interpreter into polkadot, split & repot
gavofyork Sep 10, 2020
fdfabe6
Remove 'static'
gavofyork Sep 10, 2020
fa116b0
Fix toml file
bkchr Sep 10, 2020
10f8641
imports
shawntabrizi Sep 10, 2020
3887848
fix filename
shawntabrizi Sep 10, 2020
b2384b9
some fixes
shawntabrizi Sep 10, 2020
7d158e8
Fix
gavofyork Sep 10, 2020
8743525
Merge branch 'gav-xcmp-working' of github.com:paritytech/polkadot int…
gavofyork Sep 10, 2020
060a337
Fixes
gavofyork Sep 10, 2020
9a4497a
Fixes
gavofyork Sep 10, 2020
ee07247
Fixes
gavofyork Sep 10, 2020
2d9550e
Fixes
gavofyork Sep 10, 2020
3ae493e
Fixes
gavofyork Sep 10, 2020
40a6fb0
Fixes
gavofyork Sep 10, 2020
534b731
Fixes
gavofyork Sep 10, 2020
953a581
Fixes
gavofyork Sep 10, 2020
91f3914
Fixes
gavofyork Sep 10, 2020
ba8bdaa
Fixes
gavofyork Sep 10, 2020
52affef
Fixes
gavofyork Sep 10, 2020
1b1e265
fixes
shawntabrizi Sep 10, 2020
c958d08
Fixes
gavofyork Sep 10, 2020
1a3dc55
remove `frame-system`
shawntabrizi Sep 10, 2020
721a3e9
Fixes
gavofyork Sep 10, 2020
c83ee04
Merge branch 'gav-xcmp-working' of github.com:paritytech/polkadot int…
gavofyork Sep 10, 2020
a6131ae
Fixes
gavofyork Sep 10, 2020
85dee1a
Fixes
gavofyork Sep 10, 2020
4c77f93
fixes for `parachains`
shawntabrizi Sep 10, 2020
22d5321
Merge branch 'gav-xcmp-working' of https://github.com/paritytech/polk…
shawntabrizi Sep 10, 2020
0d37c9b
Fixes
gavofyork Sep 10, 2020
9ccc139
Merge branch 'gav-xcmp-working' of github.com:paritytech/polkadot int…
gavofyork Sep 10, 2020
7a7c958
QueryHolding
gavofyork Sep 10, 2020
a213bd3
`From` instead of `UncheckedFrom`
shawntabrizi Sep 10, 2020
e609000
Initial effort at integrating xcm-executor into Rococo
gavofyork Sep 10, 2020
c25b4b7
Merge branch 'gav-xcmp-working' of github.com:paritytech/polkadot int…
gavofyork Sep 10, 2020
1aeb7c8
Fixes
gavofyork Sep 10, 2020
6080e7b
Fixes
gavofyork Sep 10, 2020
739eeb7
Fixes
gavofyork Sep 10, 2020
9334f62
Fixes
gavofyork Sep 10, 2020
bc01389
Fixes
gavofyork Sep 10, 2020
ec55f0b
Rococo builds! 🎉
gavofyork Sep 10, 2020
6e112c9
Implement Xcm for the unit type
shawntabrizi Sep 10, 2020
b092cd4
Fixes
gavofyork Sep 10, 2020
61a4090
Fixes
gavofyork Sep 10, 2020
7dea1b3
Fixes
gavofyork Sep 10, 2020
758d675
Fixes
gavofyork Sep 10, 2020
aa08941
Fixes
gavofyork Sep 10, 2020
2e8a923
Fixes
gavofyork Sep 10, 2020
3869118
Fixes
gavofyork Sep 11, 2020
eab83fe
Fixes
gavofyork Sep 11, 2020
6565989
Fixes
gavofyork Sep 11, 2020
a388c68
Refactor all the hard logic away.
gavofyork Sep 11, 2020
17a6a16
Fixes
gavofyork Sep 11, 2020
3121739
Fixes
gavofyork Sep 11, 2020
9b39a46
Fixes
gavofyork Sep 11, 2020
3b3ef7c
Broken.
gavofyork Sep 11, 2020
14b36e3
Add `RuntimeDebug` to Assets
shawntabrizi Sep 11, 2020
a6222b2
Fixes
gavofyork Sep 11, 2020
f5143f3
Merge branch 'gav-xcmp' of github.com:paritytech/polkadot into gav-xcmp
gavofyork Sep 11, 2020
87ab207
Fix DepositReserveAsset. Repotting, renaming and docs.
gavofyork Sep 12, 2020
7d572f6
fix networkid export
shawntabrizi Sep 12, 2020
7d1629d
Full docs.
gavofyork Sep 12, 2020
358673b
Merge remote-tracking branch 'origin/gav-xcmp' into gav-xcmp
gavofyork Sep 12, 2020
baa3e74
Polkadot JS Types
shawntabrizi Sep 12, 2020
2ef7c7e
Update types.json
shawntabrizi Sep 12, 2020
f712a36
Fix `RocLocation`
shawntabrizi Sep 12, 2020
b4bc868
Fixes
gavofyork Sep 12, 2020
ccb2c08
Merge branch 'gav-xcmp' of github.com:paritytech/polkadot into gav-xcmp
gavofyork Sep 12, 2020
573df3d
Generate tuples properly.
gavofyork Sep 12, 2020
e19549f
Improve docs
gavofyork Sep 13, 2020
94b96dd
Docs and API tidy
gavofyork Sep 13, 2020
cf02df9
Merge branch 'gav-xcmp' of github.com:paritytech/polkadot into gav-xcmp
gavofyork Sep 13, 2020
a4eeae0
Introduce some error handling (#1709)
shawntabrizi Sep 13, 2020
b60cf99
Fixes
gavofyork Sep 15, 2020
dfa3290
Merge branch 'gav-xcmp' of github.com:paritytech/polkadot into gav-xcmp
gavofyork Sep 15, 2020
3f22946
Fixes
gavofyork Sep 16, 2020
8c86f3f
Fixes
gavofyork Sep 17, 2020
17bacc8
Fixes
gavofyork Sep 17, 2020
e4c31ee
Add result events, logging
gavofyork Sep 17, 2020
33ecb02
Fixes
gavofyork Sep 18, 2020
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
Prev Previous commit
Next Next commit
Improve docs
  • Loading branch information
gavofyork committed Sep 13, 2020
commit e19549fbe4161972a79d400b6f188a5b574b5106
43 changes: 38 additions & 5 deletions xcm/src/v0/multi_asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,55 @@ pub enum AssetInstance {
/// Wildcards may or may not be allowed by the interpreting context.
///
/// Assets classes may be identified in one of two ways: either an abstract identifier or a concrete identifier.
/// Implementations may support only one of these.
/// Implementations may support only one of these. A single asset may be referenced from multiple asset identifiers,
/// though will tend to have only a single *preferred* identifier.
///
/// ### Abstract identifiers
///
/// Abstract identifiers are absolute identifiers that represent a notional asset which can exist within multiple
/// consensus systems. These tend to be simpler to deal with (since they stay the same between consensus systems).
/// consensus systems. These tend to be simpler to deal with since their broad meaning is unchanged regardless stay
/// of the consensus system in which it is interpreted.
///
/// However, in the attempt to provide uniformity across consensus systems, they may conflate different instantiations
/// of some notional asset (e.g. the reserve asset and a local reserve-backed derivative of it) under the same name,
/// leading to confusion. It also implies that one notional asset is accounted for locally in only one way. This may
/// not be the case, e.g. where there are multiple bridge instances each providing a bridged "BTC" token yet none
/// being fungible between the others.
///
/// Concrete identifiers are relative identifiers that specifically identify a single asset through its location in
/// Since they are meant to be absolute and universal, a global registry is needed to ensure that name collisions
/// do not occur.
///
/// An abstract identifier is represented as a simple variable-size byte string. As of writing, no global registry
/// exists and no proposals have been put forth for asset labeling.
///
/// ### Concrete identifiers
///
/// Concrete identifiers are *relative identifiers* that specifically identify a single asset through its location in
/// a consensus system relative to the context interpreting. Use of a `MultiLocation` ensures that similar but non
/// fungible variants of the same underlying asset can be properly distinguished, and obviates the need for any kind
/// of central registry. The limitation is that the asset identifier cannot be trivially copied between consensus
/// systems and must instead be "reanchored" whenever being moved to a new consensus system, using the two systems'
/// of central registry.
///
/// The limitation is that the asset identifier cannot be trivially copied between consensus
/// systems and must instead be "re-anchored" whenever being moved to a new consensus system, using the two systems'
/// relative paths.
///
/// Throughout XCM, messages are authored such that *when interpreted from the receiver's point of view* they will
/// have the desired meaning/effect. This means that relative paths should always by constructed to be read from the
/// point of view of the receiving system, *which may be have a completely different meaning in the authoring system*.
///
/// Concrete identifiers are the preferred way of identifying an asset since they are entirely unambiguous.
///
/// A concrete identifier is represented by a `MultiLocation`. If a system has an unambiguous primary asset (such as
/// Bitcoin with BTC or Ethereum with ETH), then it will conventionally be identified as the chain itself. Alternative
/// and more specific ways of referring to an asset within a system include:
///
/// - `<chain>/PalletInstance(<id>)` for a Frame chain with a single-asset pallet instance (such as an instance of the
/// Balances pallet).
/// - `<chain>/PalletInstance(<id>)/GeneralIndex(<index>)` for a Frame chain with an indexed multi-asset pallet
/// instance (such as an instance of the Assets pallet).
/// - `<chain>/AccountId32` for an ERC-20-style single-asset smart-contract on a Frame-based contracts chain.
/// - `<chain>/AccountKey20` for an ERC-20-style single-asset smart-contract on an Ethereum-like chain.
///
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug)]
pub enum MultiAsset {
/// No assets. Rarely used.
Expand Down