Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9dd955c
unbond in 1 era
Ank4n Dec 1, 2025
088858e
crap impl; no test
Ank4n Dec 1, 2025
899e2c2
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 2, 2025
19bac61
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 8, 2025
9dd5700
add unit tests for nominators being slashable
Ank4n Dec 8, 2025
b8d2641
fmt
Ank4n Dec 8, 2025
97587e5
ensure pool guys can also unbond quickly like the normal staker guys
Ank4n Dec 9, 2025
42ee9ad
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 10, 2025
e088aa6
update bench
Ank4n Dec 9, 2025
333ef0c
make nominators slashable a storage instead of config
Ank4n Dec 9, 2025
adef8c9
some additional tests
Ank4n Dec 9, 2025
c0e7d35
comments
Ank4n Dec 15, 2025
0d23828
era wise snapshot of whether nominators are slashable
Ank4n Dec 15, 2025
a53dbf5
port full unbond and make nom pool work with pallet staking async
Ank4n Dec 16, 2025
fe8d59d
ensure pool members can unbond in 1 era
Ank4n Dec 16, 2025
18d70c1
some rustdocs
Ank4n Dec 16, 2025
1a1bf03
add debug assert to show nominator slash list is empty if nominators …
Ank4n Dec 16, 2025
33dbe4c
fix wah weight
Ank4n Dec 16, 2025
e9e3caa
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 16, 2025
0f5b40c
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 19, 2025
e3a5402
have a nominator fast unbond duration
Ank4n Dec 23, 2025
aa3aafa
refactor process offence for validator only
Ank4n Dec 23, 2025
ee8e471
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 23, 2025
6a1d82b
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 24, 2025
52b2a8c
fmt
Ank4n Dec 24, 2025
b901016
missing import
Ank4n Dec 24, 2025
1e0d52b
missing config
Ank4n Dec 24, 2025
d582692
add prdoc
Ank4n Dec 24, 2025
7d12ff4
move all bonded era snapshotting and cleanups together
Ank4n Dec 25, 2025
9bcade7
fmt
Ank4n Dec 25, 2025
cac6fd6
move bonded era cleanups to lazy pruning
Ank4n Dec 29, 2025
a6e2bae
minor
Ank4n Dec 29, 2025
2ada71f
make rand chacha nnon optional
Ank4n Dec 30, 2025
8451f3c
inline setting current era
Ank4n Dec 30, 2025
5b5a848
fix rustdoc
Ank4n Dec 30, 2025
a7c8138
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Dec 30, 2025
5b28c5c
semver
Ank4n Dec 30, 2025
236dd91
Update from github-actions[bot] running command 'bench --runtime asse…
github-actions[bot] Dec 30, 2025
a798e20
track last validating era for stakers
Ank4n Dec 31, 2025
5b9ae37
add last validator era invariant to try state check
Ank4n Dec 31, 2025
42b37c5
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Jan 5, 2026
524dd15
regenerate dev weights
Ank4n Jan 5, 2026
a0ff38d
revert payout stakers weight
Ank4n Jan 5, 2026
a311d99
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Jan 6, 2026
4d1e81b
update doc
Ank4n Jan 8, 2026
f9c8565
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Jan 9, 2026
1db1652
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Jan 12, 2026
3f92859
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Jan 13, 2026
6f564f5
Merge branch 'master' into ankn-nominators-can-unbond-very-fast
Ank4n Jan 14, 2026
e439dca
active is not current!!
Ank4n Jan 14, 2026
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
3 changes: 2 additions & 1 deletion Cargo.lock

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

Original file line number Diff line number Diff line change
Expand Up @@ -771,7 +771,7 @@ impl<T: frame_system::Config> pallet_staking_async::WeightInfo for WeightInfo<T>
/// Proof: `Staking::VirtualStakers` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
/// Storage: `Balances::Holds` (r:65 w:65)
/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(265), added: 2740, mode: `MaxEncodedLen`)
fn apply_slash() -> Weight {
fn apply_slash(_n: u32) -> Weight {
// Proof Size summary in bytes:
// Measured: `214677`
// Estimated: `210810`
Expand Down
7 changes: 5 additions & 2 deletions substrate/frame/nomination-pools/src/adapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,12 @@ pub trait StakeStrategy {
/// The type of staking strategy of the current adapter.
fn strategy_type() -> StakeStrategyType;

/// See [`StakingInterface::bonding_duration`].
/// See [`StakingInterface::nominator_bonding_duration`].
///
/// Pool accounts are nominators, so they use the nominator bonding duration which can be
/// shorter than the validator bonding duration when nominators are not slashable.
fn bonding_duration() -> EraIndex {
Self::CoreStaking::bonding_duration()
Self::CoreStaking::nominator_bonding_duration()
}

/// See [`StakingInterface::current_era`].
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@ frame-system = { workspace = true, default-features = true }

pallet-bags-list = { workspace = true, default-features = true }
pallet-balances = { workspace = true, default-features = true }
pallet-delegated-staking = { workspace = true, default-features = true }
pallet-delegated-staking = { workspace = true, default-features = true, features = ["runtime-benchmarks"] }
pallet-nomination-pools = { workspace = true, default-features = true }
pallet-staking = { workspace = true, default-features = true }
pallet-staking-async = { workspace = true, default-features = true, features = ["runtime-benchmarks"] }
pallet-staking-async-rc-client = { workspace = true, default-features = true }
pallet-staking-reward-curve = { workspace = true, default-features = true }
pallet-timestamp = { workspace = true, default-features = true }

Expand Down
Loading
Loading