Skip to content

Commit 9d09743

Browse files
authored
stable2409 (#1011)
* stable2409 * remove old workaround * fix * fix * do cargo update * get tests passing * fix
1 parent 7d60899 commit 9d09743

File tree

8 files changed

+85
-61
lines changed

8 files changed

+85
-61
lines changed

.github/workflows/coverage.yml

-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ jobs:
3737
tar -zxvf cargo-tarpaulin-x86_64-unknown-linux-musl.tar.gz -C $HOME/.cargo/bin
3838
make Cargo.toml
3939
cargo update
40-
cargo update -p frame-support-procedural --precise 30.0.2
4140
cargo tarpaulin --verbose --no-fail-fast --workspace --timeout 300 --out Xml
4241
- name: Upload to codecov.io
4342
uses: codecov/codecov-action@v3

.github/workflows/test.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ jobs:
3434
- name: Install clippy
3535
run: rustup component add clippy
3636
- name: Update
37-
run: |
38-
cargo update
39-
cargo update -p frame-support-procedural --precise 30.0.2
37+
run: cargo update
4038
- name: Run clippy
4139
run: cargo clippy -- -D warnings
4240
- name: Check for Wasm

.github/workflows/zepter.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ jobs:
2828
- name: Install Zepter
2929
run: cargo install zepter --version 0.15.0 --locked -q -f --no-default-features && zepter --version
3030
- run: make Cargo.toml
31-
- run: |
32-
cargo update
33-
cargo update -p frame-support-procedural --precise 30.0.2
31+
- run: cargo update
3432
- name: Check Rust features
3533
run: make dev-features-check

Cargo.dev.toml

+22-22
Original file line numberDiff line numberDiff line change
@@ -37,35 +37,35 @@ scale-info = { version = "2.10.0", default-features = false, features = ["derive
3737
serde = { version = "1.0.189" }
3838
parity-scale-codec = { version = "3.6.5", default-features = false, features = ["max-encoded-len"] }
3939

40-
cumulus-pallet-xcm = { version = "0.16.0", default-features = false }
41-
cumulus-primitives-core = { version = "0.15.0", default-features = false }
42-
frame-benchmarking = { version = "37.0.0", default-features = false }
43-
frame-support = { version = "37.0.0", default-features = false }
44-
frame-system = { version = "37.0.0", default-features = false }
45-
pallet-balances = { version = "38.0.0", default-features = false }
46-
pallet-elections-phragmen = { version = "38.0.0", default-features = false }
47-
pallet-message-queue = { version = "40.0.0", default-features = false }
48-
pallet-preimage = { version = "37.0.0", default-features = false }
49-
pallet-root-testing = { version = "13.0.0", default-features = false }
50-
pallet-scheduler = { version = "38.0.0", default-features = false }
51-
pallet-timestamp = { version = "36.0.0", default-features = false }
52-
pallet-treasury = { version = "36.0.0", default-features = false }
53-
pallet-xcm = { version = "16.0.0", default-features = false }
40+
cumulus-pallet-xcm = { version = "0.17.0", default-features = false }
41+
cumulus-primitives-core = { version = "0.16.0", default-features = false }
42+
frame-benchmarking = { version = "38.0.0", default-features = false }
43+
frame-support = { version = "38.0.0", default-features = false }
44+
frame-system = { version = "38.0.0", default-features = false }
45+
pallet-balances = { version = "39.0.0", default-features = false }
46+
pallet-elections-phragmen = { version = "39.0.0", default-features = false }
47+
pallet-message-queue = { version = "41.0.1", default-features = false }
48+
pallet-preimage = { version = "38.0.0", default-features = false }
49+
pallet-root-testing = { version = "14.0.0", default-features = false }
50+
pallet-scheduler = { version = "39.0.0", default-features = false }
51+
pallet-timestamp = { version = "37.0.0", default-features = false }
52+
pallet-treasury = { version = "37.0.0", default-features = false }
53+
pallet-xcm = { version = "17.0.0", default-features = false }
5454
polkadot-parachain-primitives = { version = "14.0.0", default-features = false }
55-
polkadot-runtime-common = { version = "16.0.0", default-features = false }
56-
polkadot-runtime-parachains = { version = "16.0.0", default-features = false }
55+
polkadot-runtime-common = { version = "17.0.0", default-features = false }
56+
polkadot-runtime-parachains = { version = "17.0.1", default-features = false }
5757
sp-api = { version = "34.0.0", default-features = false }
5858
sp-application-crypto = { version = "38.0.0", default-features = false }
5959
sp-arithmetic = { version = "26.0.0", default-features = false }
6060
sp-core = { version = "34.0.0", default-features = false }
6161
sp-io = { version = "38.0.0", default-features = false }
62-
sp-runtime = { version = "39.0.0", default-features = false }
62+
sp-runtime = { version = "39.0.1", default-features = false }
6363
sp-runtime-interface = { version = "28.0.0", default-features = false }
64-
sp-staking = { version = "34.0.0", default-features = false }
64+
sp-staking = { version = "36.0.0", default-features = false }
6565
sp-std = { version = "14.0.0", default-features = false }
6666
sp-storage = { version = "21.0.0", default-features = false }
67-
xcm = { version = "14.1.0", package = "staging-xcm", default-features = false }
68-
xcm-builder = { version = "16.0.0", package = "staging-xcm-builder", default-features = false }
69-
xcm-executor = { version = "16.0.0", package = "staging-xcm-executor", default-features = false }
67+
xcm = { version = "14.2.0", package = "staging-xcm", default-features = false }
68+
xcm-builder = { version = "17.0.1", package = "staging-xcm-builder", default-features = false }
69+
xcm-executor = { version = "17.0.0", package = "staging-xcm-executor", default-features = false }
7070

71-
xcm-simulator = { version = "16.0.0" }
71+
xcm-simulator = { version = "17.0.0" }

tokens/src/imbalances.rs

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// wrapping these imbalances in a private module is necessary to ensure absolute
22
// privacy of the inner member.
33
use crate::{Config, TotalIssuance};
4-
use frame_support::traits::{Get, Imbalance, SameOrOther, TryDrop};
4+
use frame_support::traits::{tokens::imbalance::TryMerge, Get, Imbalance, SameOrOther, TryDrop};
55
use sp_runtime::traits::{Saturating, Zero};
66
use sp_std::{marker, mem, result};
77

@@ -184,3 +184,14 @@ impl<T: Config, GetCurrencyId: Get<T::CurrencyId>> Drop for NegativeImbalance<T,
184184
TotalIssuance::<T>::mutate(GetCurrencyId::get(), |v| *v = v.saturating_sub(self.0));
185185
}
186186
}
187+
188+
impl<T: Config, GetCurrencyId: Get<T::CurrencyId>> TryMerge for PositiveImbalance<T, GetCurrencyId> {
189+
fn try_merge(self, other: Self) -> Result<Self, (Self, Self)> {
190+
Ok(self.merge(other))
191+
}
192+
}
193+
impl<T: Config, GetCurrencyId: Get<T::CurrencyId>> TryMerge for NegativeImbalance<T, GetCurrencyId> {
194+
fn try_merge(self, other: Self) -> Result<Self, (Self, Self)> {
195+
Ok(self.merge(other))
196+
}
197+
}

tokens/src/mock.rs

-24
Original file line numberDiff line numberDiff line change
@@ -56,30 +56,6 @@ thread_local! {
5656
]);
5757
}
5858

59-
pub struct TenToFourteen;
60-
impl SortedMembers<AccountId> for TenToFourteen {
61-
fn sorted_members() -> Vec<AccountId> {
62-
TEN_TO_FOURTEEN.with(|v| v.borrow().clone())
63-
}
64-
#[cfg(feature = "runtime-benchmarks")]
65-
fn add(new: &AccountId) {
66-
TEN_TO_FOURTEEN.with(|v| {
67-
let mut members = v.borrow_mut();
68-
members.push(new.clone());
69-
members.sort();
70-
})
71-
}
72-
}
73-
74-
impl ContainsLengthBound for TenToFourteen {
75-
fn max_len() -> usize {
76-
TEN_TO_FOURTEEN.with(|v| v.borrow().len())
77-
}
78-
fn min_len() -> usize {
79-
0
80-
}
81-
}
82-
8359
parameter_types! {
8460
pub const ProposalBond: Permill = Permill::from_percent(5);
8561
pub const Burn: Permill = Permill::from_percent(50);

xtokens/src/mock/para.rs

+26-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate as orml_xtokens;
66

77
use frame_support::{
88
construct_runtime, derive_impl, ensure, parameter_types,
9-
traits::{ConstU128, ConstU32, Contains, Everything, Get, Nothing},
9+
traits::{ConstU128, ConstU32, Contains, ContainsPair, Everything, Get, Nothing},
1010
};
1111
use frame_system::EnsureRoot;
1212
use pallet_xcm::XcmPassthrough;
@@ -16,7 +16,7 @@ use sp_runtime::{
1616
traits::{Convert, IdentityLookup},
1717
AccountId32,
1818
};
19-
use sp_std::cell::RefCell;
19+
use sp_std::{cell::RefCell, marker::PhantomData};
2020
use xcm::v4::{prelude::*, Weight};
2121
use xcm_builder::{
2222
AccountId32Aliases, EnsureXcmOrigin, FixedWeightBounds, NativeAsset, ParentIsPreset, RelayChainAsNative,
@@ -26,8 +26,11 @@ use xcm_builder::{
2626
use xcm_executor::{Config, XcmExecutor};
2727

2828
use crate::mock::AllTokensAreCreatedEqualToWeight;
29-
use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key, RateLimiterError};
30-
use orml_xcm_support::{IsNativeConcrete, MultiCurrencyAdapter, MultiNativeAsset};
29+
use orml_traits::{
30+
location::{AbsoluteReserveProvider, Reserve},
31+
parameter_type_with_key, RateLimiterError,
32+
};
33+
use orml_xcm_support::{IsNativeConcrete, MultiCurrencyAdapter};
3134

3235
pub type AccountId = AccountId32;
3336

@@ -117,6 +120,25 @@ parameter_types! {
117120
pub const MaxAssetsIntoHolding: u32 = 64;
118121
}
119122

123+
pub struct MultiNativeAsset<ReserveProvider>(PhantomData<ReserveProvider>);
124+
impl<ReserveProvider> ContainsPair<Asset, Location> for MultiNativeAsset<ReserveProvider>
125+
where
126+
ReserveProvider: Reserve,
127+
{
128+
fn contains(asset: &Asset, origin: &Location) -> bool {
129+
if let Some(ref reserve) = ReserveProvider::reserve(asset) {
130+
if reserve == origin {
131+
return true;
132+
}
133+
}
134+
// allow parachain to be reserved of relay to bypass https://github.com/paritytech/polkadot-sdk/pull/5660
135+
if asset.id.0 == Location::parent() {
136+
return true;
137+
}
138+
false
139+
}
140+
}
141+
120142
pub struct XcmConfig;
121143
impl Config for XcmConfig {
122144
type RuntimeCall = RuntimeCall;

xtokens/src/mock/para_relative_view.rs

+23-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate as orml_xtokens;
33

44
use frame_support::{
55
construct_runtime, derive_impl, parameter_types,
6-
traits::{ConstU128, ConstU32, Contains, Everything, Get, Nothing},
6+
traits::{ConstU128, ConstU32, Contains, ContainsPair, Everything, Get, Nothing},
77
};
88
use frame_system::EnsureRoot;
99
use pallet_xcm::XcmPassthrough;
@@ -12,6 +12,7 @@ use sp_runtime::{
1212
traits::{Convert, IdentityLookup},
1313
AccountId32, BoundedVec,
1414
};
15+
use sp_std::marker::PhantomData;
1516
use xcm::v4::{prelude::*, Weight};
1617
use xcm_builder::{
1718
AccountId32Aliases, AllowTopLevelPaidExecutionFrom, EnsureXcmOrigin, FixedWeightBounds, ParentIsPreset,
@@ -22,10 +23,10 @@ use xcm_executor::{Config, XcmExecutor};
2223

2324
use crate::mock::AllTokensAreCreatedEqualToWeight;
2425
use orml_traits::{
25-
location::{AbsoluteReserveProvider, RelativeReserveProvider},
26+
location::{AbsoluteReserveProvider, RelativeReserveProvider, Reserve},
2627
parameter_type_with_key,
2728
};
28-
use orml_xcm_support::{IsNativeConcrete, MultiCurrencyAdapter, MultiNativeAsset};
29+
use orml_xcm_support::{IsNativeConcrete, MultiCurrencyAdapter};
2930

3031
pub type AccountId = AccountId32;
3132

@@ -115,6 +116,25 @@ parameter_types! {
115116
pub const MaxAssetsIntoHolding: u32 = 64;
116117
}
117118

119+
pub struct MultiNativeAsset<ReserveProvider>(PhantomData<ReserveProvider>);
120+
impl<ReserveProvider> ContainsPair<Asset, Location> for MultiNativeAsset<ReserveProvider>
121+
where
122+
ReserveProvider: Reserve,
123+
{
124+
fn contains(asset: &Asset, origin: &Location) -> bool {
125+
if let Some(ref reserve) = ReserveProvider::reserve(asset) {
126+
if reserve == origin {
127+
return true;
128+
}
129+
}
130+
// allow parachain to be reserved of relay to bypass https://github.com/paritytech/polkadot-sdk/pull/5660
131+
if asset.id.0 == Location::parent() {
132+
return true;
133+
}
134+
false
135+
}
136+
}
137+
118138
pub struct XcmConfig;
119139
impl Config for XcmConfig {
120140
type RuntimeCall = RuntimeCall;

0 commit comments

Comments
 (0)