Skip to content

Commit ca736ed

Browse files
Merge branch 'master' into try_state_pallet_multisig
2 parents 1fdcc1b + 8574f19 commit ca736ed

58 files changed

Lines changed: 3599 additions & 1132 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

polkadot/zombienet-sdk-tests/tests/parachains/weights.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
mod ahw {}
99

1010
use ahw::runtime_types::{
11-
pallet_revive::primitives::{Code, StorageDeposit},
11+
pallet_revive_types::runtime_api::types::contract::{CodeV1, StorageDepositV1},
1212
sp_weights::weight_v2::Weight,
1313
};
1414
use anyhow::anyhow;
@@ -295,14 +295,14 @@ async fn instantiate_params(
295295
caller: &Keypair,
296296
) -> Result<(u64, u64, u128), anyhow::Error> {
297297
let account_id = caller.public_key().to_account_id();
298-
let code = Code::Upload(code);
298+
let code = CodeV1::Upload(code);
299299
let call = ahw::apis()
300300
.revive_api()
301301
.instantiate(account_id, 0, None, None, code, vec![], None);
302302
let dry_run = client.runtime_api().at_latest().await?.call(call).await?;
303303
let deposit = match dry_run.storage_deposit {
304-
StorageDeposit::Charge(c) => c,
305-
StorageDeposit::Refund(_) => 0,
304+
StorageDepositV1::Charge(c) => c,
305+
StorageDepositV1::Refund(_) => 0,
306306
};
307307

308308
// Make sure we have enough gas and multiply by 4, since without it the calls fail not enough
@@ -320,8 +320,8 @@ async fn call_params(
320320
let call = ahw::apis().revive_api().call(account_id, contract, 0, None, None, payload);
321321
let dry_run = client.runtime_api().at_latest().await?.call(call).await?;
322322
let deposit = match dry_run.storage_deposit {
323-
StorageDeposit::Charge(c) => c,
324-
StorageDeposit::Refund(_) => 0,
323+
StorageDepositV1::Charge(c) => c,
324+
StorageDepositV1::Refund(_) => 0,
325325
};
326326

327327
Ok((dry_run.weight_required.ref_time, dry_run.weight_required.proof_size, deposit))

prdoc/pr_12536.prdoc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
title: '[pallet-revive] Version the Remaining Runtime API Functions'
2+
doc:
3+
- audience: Runtime Dev
4+
description: |-
5+
# Description
6+
7+
This PR versions the final remaining runtime API functions in pallet-revive, fully deprecating the old unversioned runtime API in favor of the new versioned runtime API functions.
8+
9+
Additionally, this PR adds an `unversioned_runtime_api_functions_are_unchanged_by_versioning` test which is an important test which asserts that every single type which can be seen in the unversioned runtime API functions is identical to the new versioned types in terms of encoding such that if we encode an old unversioned type we can decode as a new versioned type and vice versa. This is made possible through the schema available in the metadata which allows us to check a pre-versioning schema against a post-versioning schema. This test is implemented as a very very simple walker which walks the schema in lock-step and checks that the schema of the pre-versioning types matches that of the post-versioning types. Yes, the code for this test is slightly long, but it's very simple. The moment you see that lots of the code length is due to us wanting to preserve the paths (for printing in assertion messages), you can see that the test is quite simple.
10+
11+
Aside from the above, and as mentioned at the start, this PR also versioned the remaining runtime API functions. In the process, I combined some runtime API functions into a single versioned runtime API function. For example, `eth_transact` and `eth_transact_with_config` have been combined into a single `eth_transact_versioned` since `eth_transact_with_config` was added as way to version the `eth_transact` runtime API function. Same was done to the `trace_call` and the `trace_call_with_config` in that they've been combined into a single versioned runtime API function.
12+
crates:
13+
- name: pallet-revive-eth-rpc
14+
bump: major
15+
- name: pallet-revive
16+
bump: major
17+
- name: pallet-revive-types
18+
bump: major
19+
- name: revive-dev-runtime
20+
bump: major

prdoc/pr_12630.prdoc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
title: '`staking-async`: include the unlock era in the Unbonded event'
2+
doc:
3+
- audience: Runtime User
4+
description: |
5+
`Event::Unbonded` gains `era`, the era at which `amount` becomes withdrawable.
6+
Front-ends, wallets and indexers read it from the event instead of `Staking::Ledger(stash)`.
7+
The unbonding duration is dynamic: 2 eras for pure nominators, `BondingDuration` otherwise.
8+
- audience: Runtime Dev
9+
description: |
10+
`Event::Unbonded` gains an `era: EraIndex` field. Metadata-driven tooling picks it up;
11+
hardcoded decoders and `Unbonded` test assertions need the field. No new logic, no
12+
storage migration.
13+
crates:
14+
- name: pallet-staking-async
15+
bump: major

substrate/frame/nomination-pools/test-delegate-stake/src/lib.rs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ fn pool_lifecycle_e2e() {
113113
assert_eq!(
114114
staking_events_since_last_call(),
115115
vec![
116-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
117-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
116+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 3 },
117+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 3 },
118118
]
119119
);
120120
assert_eq!(
@@ -175,7 +175,7 @@ fn pool_lifecycle_e2e() {
175175
staking_events_since_last_call(),
176176
vec![
177177
StakingEvent::Chilled { stash: POOL1_BONDED },
178-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 50 },
178+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 50, era: 6 },
179179
]
180180
);
181181
assert_eq!(
@@ -323,9 +323,9 @@ fn pool_chill_e2e() {
323323
assert_eq!(
324324
staking_events_since_last_call(),
325325
vec![
326-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
326+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 3 },
327327
StakingEvent::Chilled { stash: POOL1_BONDED },
328-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
328+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 3 },
329329
StakingEvent::Bonded { stash: POOL1_BONDED, amount: 10 }, // other member bonding
330330
StakingEvent::Bonded { stash: POOL1_BONDED, amount: 10 }, // depositor bond extra
331331
StakingEvent::Withdrawn { stash: POOL1_BONDED, amount: 20 },
@@ -391,8 +391,8 @@ fn pool_slash_e2e() {
391391
assert_eq!(
392392
staking_events_since_last_call(),
393393
vec![
394-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
395-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 }
394+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 4 },
395+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 4 }
396396
]
397397
);
398398
assert_eq!(
@@ -414,9 +414,9 @@ fn pool_slash_e2e() {
414414
assert_eq!(
415415
staking_events_since_last_call(),
416416
vec![
417-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
418-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
419-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
417+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 5 },
418+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 5 },
419+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 5 },
420420
]
421421
);
422422

@@ -468,7 +468,7 @@ fn pool_slash_e2e() {
468468
);
469469
assert_eq!(
470470
staking_events_since_last_call(),
471-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5 }]
471+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5, era: 6 }]
472472
);
473473
assert_eq!(
474474
pool_events_since_last_call(),
@@ -503,7 +503,7 @@ fn pool_slash_e2e() {
503503

504504
assert_eq!(
505505
staking_events_since_last_call(),
506-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 }]
506+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 9 }]
507507
);
508508
assert_eq!(
509509
pool_events_since_last_call(),
@@ -629,7 +629,7 @@ fn pool_slash_proportional() {
629629

630630
assert_eq!(
631631
staking_events_since_last_call(),
632-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond },]
632+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond, era: 127 },]
633633
);
634634
assert_eq!(
635635
pool_events_since_last_call(),
@@ -646,7 +646,7 @@ fn pool_slash_proportional() {
646646
assert_ok!(Pools::unbond(RuntimeOrigin::signed(21), 21, bond));
647647
assert_eq!(
648648
staking_events_since_last_call(),
649-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond },]
649+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond, era: 128 },]
650650
);
651651
assert_eq!(
652652
pool_events_since_last_call(),
@@ -663,7 +663,7 @@ fn pool_slash_proportional() {
663663
assert_ok!(Pools::unbond(RuntimeOrigin::signed(22), 22, bond));
664664
assert_eq!(
665665
staking_events_since_last_call(),
666-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond },]
666+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond, era: 129 },]
667667
);
668668
assert_eq!(
669669
pool_events_since_last_call(),
@@ -831,7 +831,7 @@ fn pool_slash_non_proportional_only_bonded_pool() {
831831
assert_ok!(Pools::unbond(RuntimeOrigin::signed(20), 20, bond));
832832
assert_eq!(
833833
staking_events_since_last_call(),
834-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond }]
834+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond, era: 127 }]
835835
);
836836
assert_eq!(
837837
pool_events_since_last_call(),
@@ -910,7 +910,7 @@ fn pool_slash_non_proportional_bonded_pool_and_chunks() {
910910
assert_ok!(Pools::unbond(RuntimeOrigin::signed(20), 20, bond));
911911
assert_eq!(
912912
staking_events_since_last_call(),
913-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond }]
913+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: bond, era: 127 }]
914914
);
915915
assert_eq!(
916916
pool_events_since_last_call(),
@@ -1022,8 +1022,8 @@ fn pool_migration_e2e() {
10221022
assert_eq!(
10231023
staking_events_since_last_call(),
10241024
vec![
1025-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5 },
1026-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
1025+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5, era: 5 },
1026+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 6 },
10271027
]
10281028
);
10291029
assert_eq!(
@@ -1199,7 +1199,7 @@ fn pool_migration_e2e() {
11991199
staking_events_since_last_call(),
12001200
vec![
12011201
StakingEvent::Withdrawn { stash: POOL1_BONDED, amount: 10 },
1202-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5 },
1202+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5, era: 9 },
12031203
StakingEvent::Withdrawn { stash: POOL1_BONDED, amount: 5 }
12041204
]
12051205
);
@@ -1501,7 +1501,7 @@ fn pool_no_dangling_delegation() {
15011501

15021502
assert_eq!(
15031503
staking_events_since_last_call(),
1504-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 20 },]
1504+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 20, era: 4 },]
15051505
);
15061506
assert_eq!(
15071507
pool_events_since_last_call(),
@@ -1517,8 +1517,8 @@ fn pool_no_dangling_delegation() {
15171517
assert_eq!(
15181518
staking_events_since_last_call(),
15191519
vec![
1520-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
1521-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
1520+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 5 },
1521+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 5 },
15221522
]
15231523
);
15241524

@@ -1614,7 +1614,7 @@ fn pool_no_dangling_delegation() {
16141614

16151615
assert_eq!(
16161616
staking_events_since_last_call(),
1617-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5 }]
1617+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 5, era: 18 }]
16181618
);
16191619
assert_eq!(
16201620
pool_events_since_last_call(),
@@ -1691,7 +1691,7 @@ fn pool_no_dangling_delegation() {
16911691

16921692
assert_eq!(
16931693
staking_events_since_last_call(),
1694-
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 15 }]
1694+
vec![StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 15, era: 21 }]
16951695
);
16961696
assert_eq!(
16971697
pool_events_since_last_call(),
@@ -1799,7 +1799,7 @@ fn pool_members_unbond_in_one_era_when_nominators_not_slashable() {
17991799
assert_eq!(
18001800
staking_events_since_last_call(),
18011801
vec![
1802-
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10 },
1802+
StakingEvent::Unbonded { stash: POOL1_BONDED, amount: 10, era: 3 },
18031803
StakingEvent::Withdrawn { stash: POOL1_BONDED, amount: 10 },
18041804
]
18051805
);

0 commit comments

Comments
 (0)