Skip to content

Commit 74cbcfc

Browse files
test: add update_rewards transition with balance change flow
1 parent 016908f commit 74cbcfc

File tree

2 files changed

+74
-1
lines changed

2 files changed

+74
-1
lines changed

src/flow_test/flow_ideas.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
- member change balance and test with view of current epoch balance
66

77
## `update_rewards`
8-
- staker change balance, attest, change balance, attest, set_v3, change balance, update_rewards, change_balance, update_rewards, test rewards.
98
- with member from previous versions.
109

1110
## k=1 -> k=2 balances

src/flow_test/test.cairo

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3854,3 +3854,77 @@ fn update_rewards_delegator_rewards_same_epoch_flow_test() {
38543854
let delegator_rewards = system.delegator_claim_rewards(:delegator, :pool);
38553855
assert!(delegator_rewards == expected_single_block_delegator_rewards * 4);
38563856
}
3857+
3858+
/// Flow:
3859+
/// Staker stake.
3860+
/// Advance K epochs
3861+
/// Attest - aggregate rewards
3862+
/// Increase stake
3863+
/// Advance K epochs
3864+
/// Attest - aggregate rewards
3865+
/// Start consensus rewards
3866+
/// Increase stake
3867+
/// Advance K epochs
3868+
/// update_rewards - aggregate rewards
3869+
/// Increase stake
3870+
/// Advance K epochs
3871+
/// update_rewards - aggregate rewards
3872+
/// Test rewards.
3873+
#[test]
3874+
fn update_rewards_transition_with_balance_change_flow_test() {
3875+
let cfg: StakingInitConfig = Default::default();
3876+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
3877+
let stake_amount = system.staking.get_min_stake();
3878+
let staker = system.new_staker(amount: stake_amount * 4);
3879+
let commission = 200;
3880+
let staking_contract = system.staking.address;
3881+
let minting_curve_contract = system.minting_curve.address;
3882+
let mut total_stake = Zero::zero();
3883+
let mut expected_total_rewards = Zero::zero();
3884+
3885+
system.stake(:staker, amount: stake_amount, pool_enabled: false, :commission);
3886+
total_stake += stake_amount;
3887+
system.advance_k_epochs_and_attest(:staker);
3888+
let (expected_rewards, _) = calculate_staker_strk_rewards_with_balances_v2(
3889+
amount_own: total_stake,
3890+
pool_amount: Zero::zero(),
3891+
:commission,
3892+
:staking_contract,
3893+
:minting_curve_contract,
3894+
);
3895+
expected_total_rewards += expected_rewards;
3896+
3897+
system.increase_stake(:staker, amount: stake_amount);
3898+
total_stake += stake_amount;
3899+
system.advance_k_epochs_and_attest(:staker);
3900+
let (expected_rewards, _) = calculate_staker_strk_rewards_with_balances_v2(
3901+
amount_own: total_stake,
3902+
pool_amount: Zero::zero(),
3903+
:commission,
3904+
:staking_contract,
3905+
:minting_curve_contract,
3906+
);
3907+
expected_total_rewards += expected_rewards;
3908+
3909+
system.start_consensus_rewards();
3910+
system.increase_stake(:staker, amount: stake_amount);
3911+
total_stake += stake_amount;
3912+
system.advance_k_epochs();
3913+
system.update_rewards(:staker, disable_rewards: false);
3914+
let (expected_rewards, _) = calculate_staker_strk_rewards_with_balances_v3(
3915+
amount_own: total_stake, pool_amount: Zero::zero(), :commission, :minting_curve_contract,
3916+
);
3917+
expected_total_rewards += expected_rewards;
3918+
3919+
system.increase_stake(:staker, amount: stake_amount);
3920+
total_stake += stake_amount;
3921+
system.advance_k_epochs();
3922+
system.update_rewards(:staker, disable_rewards: false);
3923+
let (expected_rewards, _) = calculate_staker_strk_rewards_with_balances_v3(
3924+
amount_own: total_stake, pool_amount: Zero::zero(), :commission, :minting_curve_contract,
3925+
);
3926+
expected_total_rewards += expected_rewards;
3927+
3928+
let staker_rewards = system.staker_claim_rewards(:staker);
3929+
assert!(staker_rewards == expected_total_rewards);
3930+
}

0 commit comments

Comments
 (0)