Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
fe413cf
Era REward Manager
Ank4n Apr 1, 2026
ef58054
default impl staker reward calculator
Ank4n Apr 1, 2026
de58f7e
new pallet apis
Ank4n Apr 1, 2026
ec33c18
impls
Ank4n Apr 1, 2026
986390f
session rotation
Ank4n Apr 1, 2026
9c8e724
remove default impl for account id provider
Ank4n Apr 1, 2026
bf84f15
staking test compile
Ank4n Apr 1, 2026
d8ff407
integration test compiles
Ank4n Apr 1, 2026
87891e4
fmt
Ank4n Apr 1, 2026
eee0f27
fix tests minimal change
Ank4n Apr 1, 2026
2f74354
update EraPaid rustdoc
Ank4n Apr 1, 2026
6059429
fix all test
Ank4n Apr 1, 2026
1f76881
reward remainder can be removed
Ank4n Apr 1, 2026
ec5bdad
really remove RewardRemainder
Ank4n Apr 1, 2026
ea5bd79
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 1, 2026
ebe54cd
max commission tests
Ank4n Apr 1, 2026
c6e7a45
integrate runtime
Ank4n Apr 1, 2026
0ce1167
fmt
Ank4n Apr 1, 2026
2bf54f1
prdoc
Ank4n Apr 1, 2026
1bca7fc
zepter
Ank4n Apr 1, 2026
83a890e
taplo
Ank4n Apr 1, 2026
e839931
todo for dap bench
Ank4n Apr 1, 2026
d44646a
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 2, 2026
7028a80
add missing bench for max commission
Ank4n Apr 2, 2026
04c002b
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 2, 2026
869a3b2
fix test-delegate-stake compile
Ank4n Apr 2, 2026
3283c72
dev weight for staking async
Ank4n Apr 2, 2026
4912afb
fix drip issuance bench
Ank4n Apr 2, 2026
5e17025
weights
Ank4n Apr 2, 2026
0a4040e
taplo
Ank4n Apr 2, 2026
dda4321
add dap bench to WAH
Ank4n Apr 2, 2026
07b2840
fix weight run with frame template
Ank4n Apr 2, 2026
1aa31ea
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 2, 2026
8706c6c
ensure pot is created
Ank4n Apr 2, 2026
a811db6
disable legacy minting
Ank4n Apr 2, 2026
c939bc2
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 3, 2026
e77d44e
failing test
Ank4n Apr 3, 2026
cb16275
the fix
Ank4n Apr 3, 2026
e733237
remove staked rewards
Ank4n Apr 3, 2026
d6e23b8
feedback
Ank4n Apr 3, 2026
aa13771
fmt
Ank4n Apr 3, 2026
82aa08e
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 3, 2026
ff0de15
fix benchmarking compilation after removal of max_staked_rewards
sigurpol Apr 3, 2026
4dfa78c
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 3, 2026
e83c03b
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 3, 2026
fd11b55
dap in kitchensink
Ank4n Apr 3, 2026
f0ca2a0
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 3, 2026
6ed99ab
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 6, 2026
2456443
kusama compat
Ank4n Apr 6, 2026
d22f812
bench fix
Ank4n Apr 6, 2026
6ab8071
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 6, 2026
2b04c3a
fmt
Ank4n Apr 6, 2026
6f7b2b9
license file
Ank4n Apr 6, 2026
48e67bf
disable mint integrity test
Ank4n Apr 6, 2026
9bd2cb9
disable minting try state check
Ank4n Apr 6, 2026
a850691
minimise diff
Ank4n Apr 6, 2026
7b42139
fix nominator reward part
Ank4n Apr 6, 2026
1aa1d07
esnure nominator underpay is detected
Ank4n Apr 6, 2026
a123a1e
cosmetic
Ank4n Apr 6, 2026
e5e7120
update prdoc
Ank4n Apr 6, 2026
15ab79b
vibed - need to review these properly
Ank4n Apr 3, 2026
7d496e0
tests for validator incentive
Ank4n Apr 6, 2026
0d19e7b
fmt
Ank4n Apr 6, 2026
63c712f
prdoc
Ank4n Apr 6, 2026
a283929
self review
Ank4n Apr 6, 2026
a6633b5
fmt
Ank4n Apr 6, 2026
243f46d
validator incentive tests
Ank4n Apr 6, 2026
56d5e5a
fmt
Ank4n Apr 6, 2026
86948fa
fake weights
Ank4n Apr 6, 2026
8eb0861
put some TODOs
Ank4n Apr 6, 2026
32880aa
make prdoc happy
Ank4n Apr 6, 2026
671f0b4
move ErasValidatorIncentiveWeight to the end
Ank4n Apr 7, 2026
a573167
Register ValidatorIncentiveRecipient to wah
Ank4n Apr 7, 2026
8343456
Incentive Weight
Ank4n Apr 7, 2026
3ec1beb
fix lazy pruning
Ank4n Apr 7, 2026
43e930e
bench for pruning
Ank4n Apr 7, 2026
d2a08c3
curve edge case tests
Ank4n Apr 7, 2026
d270e11
consolidate bench setup in one fkin loop
Ank4n Apr 7, 2026
1f2f4bd
missing bench
Ank4n Apr 7, 2026
9340a31
add validator incentive setup for payout bench
Ank4n Apr 7, 2026
c01a450
defensive path tests
Ank4n Apr 7, 2026
7c36219
clippy GOD
Ank4n Apr 7, 2026
9c20c9a
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 7, 2026
b47df30
Merge branch 'ankn-staker-reward-from-pot' into ankn-validator-incentive
Ank4n Apr 7, 2026
864f440
guard against destroy if pot was never created
Ank4n Apr 7, 2026
39caae0
rename ValidatorMissingPayee to just MissingPayee
Ank4n Apr 7, 2026
6ededb6
add stash to missing payee
Ank4n Apr 7, 2026
2552fb6
fmt
Ank4n Apr 7, 2026
4007ee1
ensure if guard set, disable minting in config is always set
Ank4n Apr 7, 2026
520eddf
e2e tests
Ank4n Apr 7, 2026
c01c326
improve legacy -> dap mode test
Ank4n Apr 7, 2026
8b14681
fmt
Ank4n Apr 7, 2026
8f43b97
mock setup to switch impls
Ank4n Apr 7, 2026
14980ee
fmt
Ank4n Apr 7, 2026
45afe25
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 7, 2026
a9dc064
Merge branch 'ankn-staker-reward-from-pot' into ankn-validator-incentive
Ank4n Apr 7, 2026
f1274cb
more fixes
Ank4n Apr 7, 2026
50185a8
fmt
Ank4n Apr 7, 2026
c032dac
add new events to the end
Ank4n Apr 7, 2026
74138ba
improvements
Ank4n Apr 7, 2026
55aa179
fmt
Ank4n Apr 7, 2026
29c8ee5
papi e2e test
Ank4n Apr 8, 2026
0bfd62c
more assertions
Ank4n Apr 9, 2026
b202aed
minor
Ank4n Apr 10, 2026
b71f5b3
hard assertion
Ank4n Apr 10, 2026
fd3cfe7
assert for era 0
Ank4n Apr 10, 2026
87f6e3f
assert on all events
Ank4n Apr 10, 2026
da0fb80
check all era events
Ank4n Apr 10, 2026
f85c6dc
assert on all events
Ank4n Apr 10, 2026
5be95b0
rename to IssuanceCurve
Ank4n Apr 10, 2026
f953b6d
fix comments
Ank4n Apr 10, 2026
0686742
fmt
Ank4n Apr 10, 2026
229300f
remove misleading hard-pressure curve comment
Ank4n Apr 10, 2026
032b4f2
Merge branch 'master' into ankn-staker-reward-from-pot
Ank4n Apr 10, 2026
764c119
Merge branch 'ankn-staker-reward-from-pot' into ankn-validator-incentive
Ank4n Apr 10, 2026
9fd42dc
fmt
Ank4n Apr 10, 2026
5fd2939
merge from master
Ank4n Apr 13, 2026
b748409
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 13, 2026
7593f4b
fmt
Ank4n Apr 13, 2026
01c19ae
claude improvements
Ank4n Apr 13, 2026
8e4258c
fmt
Ank4n Apr 13, 2026
4a4873e
measured pov mode
Ank4n Apr 14, 2026
3902254
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 15, 2026
7c72b9a
skip insert zero weight
Ank4n Apr 16, 2026
04c7850
fmt
Ank4n Apr 16, 2026
3acc258
legacy explicit split
Ank4n Apr 16, 2026
9ac4cf8
legacy -> dap -> dap with incentive e2e test
Ank4n Apr 16, 2026
5122374
fmt
Ank4n Apr 16, 2026
a0e159c
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 16, 2026
560f9b5
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 16, 2026
e1304f4
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 16, 2026
491bfc5
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 17, 2026
944691c
include full staking allocation
Ank4n Apr 17, 2026
1334c3d
defensive failure on own appearing twice
Ank4n Apr 17, 2026
21cd45e
fmt
Ank4n Apr 17, 2026
8910505
fix optimum < cap check
Ank4n Apr 17, 2026
3df19a7
non zero value so bench passes
Ank4n Apr 17, 2026
af73393
refactor test
Ank4n Apr 17, 2026
0b38a7c
fmt
Ank4n Apr 17, 2026
8108bc3
remove unused return
Ank4n Apr 17, 2026
8cc7f93
minor
Ank4n Apr 17, 2026
8814246
view functions
Ank4n Apr 17, 2026
e5a6912
weights
Ank4n Apr 17, 2026
dfba053
Update from github-actions[bot] running command 'bench --pallet palle…
github-actions[bot] Apr 17, 2026
49f3116
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 17, 2026
e37c22d
Change bump type for asset-hub-westend-runtime
Ank4n Apr 17, 2026
f1ef0c1
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 17, 2026
060e23d
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 20, 2026
5320940
debug assert
Ank4n Apr 20, 2026
b56cf8c
ensure incentive correctly paid
Ank4n Apr 20, 2026
2bdc87f
add rustdoc
Ank4n Apr 20, 2026
68c577b
return budget as struct
Ank4n Apr 20, 2026
169ad81
rename fn
Ank4n Apr 20, 2026
d59e6c7
fmt
Ank4n Apr 20, 2026
2c3f24f
ensure bob got rewards
Ank4n Apr 20, 2026
9ea0461
fix test
Ank4n Apr 20, 2026
8ba8b02
rename to incentive_weight*
Ank4n Apr 20, 2026
a1cd918
renames
Ank4n Apr 20, 2026
f738903
fix weak assertion
Ank4n Apr 20, 2026
980f856
use multi_page_election_provider
Ank4n Apr 20, 2026
3c5e196
refactor
Ank4n Apr 20, 2026
fe11844
guard flip assertion
Ank4n Apr 20, 2026
5257f29
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 20, 2026
2387688
migration test
Ank4n Apr 20, 2026
9e8df5d
saturating add
Ank4n Apr 20, 2026
42eaa52
validators with no reward point get no incentive
Ank4n Apr 21, 2026
37e4b56
Merge branch 'master' into ankn-validator-incentive
Ank4n Apr 21, 2026
f7f10ce
fmt
Ank4n Apr 21, 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
13 changes: 10 additions & 3 deletions cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1779,16 +1779,17 @@ impl frame_support::traits::Get<u64> for DapLastIssuanceTimestamp {
}
}

/// Default budget: 85% staker rewards, 15% buffer.
/// Default budget: 85% staker rewards, 15% buffer, 0% validator incentive.
pub struct DefaultDapBudget;
impl frame_support::traits::Get<pallet_dap::BudgetAllocationMap> for DefaultDapBudget {
fn get() -> pallet_dap::BudgetAllocationMap {
use sp_runtime::Perbill;
use sp_staking::budget::BudgetRecipientList;

let recipients = <Runtime as pallet_dap::Config>::BudgetRecipients::recipients();
// [dap (buffer), StakerRewardRecipient]
let percentages = [Perbill::from_percent(15), Perbill::from_percent(85)];
// [dap (buffer), StakerRewardRecipient, ValidatorIncentiveRecipient]
let percentages =
[Perbill::from_percent(15), Perbill::from_percent(85), Perbill::from_percent(0)];

let mut map = pallet_dap::BudgetAllocationMap::new();
for ((key, _), perbill) in recipients.into_iter().zip(percentages) {
Expand Down Expand Up @@ -2164,6 +2165,12 @@ pallet_revive::impl_runtime_apis_plus_revive_traits!(
}
}

impl frame_support::view_functions::runtime_api::RuntimeViewFunction<Block> for Runtime {
fn execute_view_function(id: frame_support::view_functions::ViewFunctionId, input: Vec<u8>) -> Result<Vec<u8>, frame_support::view_functions::ViewFunctionDispatchError> {
Runtime::execute_view_function(id, input)
}
}

impl sp_block_builder::BlockBuilder<Block> for Runtime {
fn apply_extrinsic(extrinsic: <Block as BlockT>::Extrinsic) -> ApplyExtrinsicResult {
Executive::apply_extrinsic(extrinsic)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,9 @@ impl pallet_dap::Config for Runtime {
pallet_staking_async::StakerRewardRecipient<
pallet_staking_async::Seed<StakingPotsPalletId>,
>,
pallet_staking_async::ValidatorIncentiveRecipient<
pallet_staking_async::Seed<StakingPotsPalletId>,
>,
);
type Time = pallet_timestamp::Pallet<Runtime>;
type IssuanceCadence = IssuanceCadence;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
//! Autogenerated weights for `pallet_dap`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2026-04-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2026-04-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `5851f50484f3`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! HOSTNAME: `f80cfa9a9b2b`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024

// Executed Command:
Expand Down Expand Up @@ -56,8 +56,8 @@ impl<T: frame_system::Config> pallet_dap::weights::WeightInfo for WeightInfo<T>
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 7_979_000 picoseconds.
Weight::from_parts(8_699_000, 0)
// Minimum execution time: 9_077_000 picoseconds.
Weight::from_parts(9_956_000, 0)
.saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1))
}
Expand All @@ -67,16 +67,18 @@ impl<T: frame_system::Config> pallet_dap::weights::WeightInfo for WeightInfo<T>
/// Proof: `Dap::LastIssuanceTimestamp` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
/// Storage: `Dap::BudgetAllocation` (r:1 w:0)
/// Proof: `Dap::BudgetAllocation` (`max_values`: Some(1), `max_size`: Some(593), added: 1088, mode: `MaxEncodedLen`)
/// Storage: `System::Account` (r:2 w:2)
/// Storage: `System::Account` (r:3 w:3)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Revive::OriginalAccount` (r:2 w:2)
/// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
fn drip_issuance() -> Weight {
// Proof Size summary in bytes:
// Measured: `2541`
// Estimated: `6196`
// Minimum execution time: 62_672_000 picoseconds.
Weight::from_parts(65_724_000, 0)
.saturating_add(Weight::from_parts(0, 6196))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(3))
// Measured: `6762`
// Estimated: `8799`
// Minimum execution time: 115_578_000 picoseconds.
Weight::from_parts(121_955_000, 0)
.saturating_add(Weight::from_parts(0, 8799))
.saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(6))
}
}
Loading
Loading