Skip to content

Commit 203a4cd

Browse files
test: add update_rewards empty pools flow
1 parent 622f67b commit 203a4cd

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

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 with empty pool (STRK + BTC).
98
- staker immediately/one epoch after he called intent.
109
- update rewards for 2 different blocks in the same epoch - should be same rewards.
1110
- Change epoch len in blocks - rewards should be changed.

src/flow_test/test.cairo

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3021,6 +3021,46 @@ fn update_rewards_multiple_btc_pools_flow_test() {
30213021
assert!(delegator_rewards_18 == expected_pool_rewards);
30223022
}
30233023

3024+
/// Flow:
3025+
/// Start consensus rewards.
3026+
/// Staker stake with STRK pool.
3027+
/// Open BTC pool.
3028+
/// Advance K epochs.
3029+
/// update_rewards.
3030+
/// Test staker rewards.
3031+
#[test]
3032+
fn update_rewards_empty_pools_flow_test() {
3033+
let cfg: StakingInitConfig = Default::default();
3034+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
3035+
let stake_amount = system.staking.get_min_stake();
3036+
let staker = system.new_staker(amount: stake_amount);
3037+
let commission = 200;
3038+
let minting_curve_contract = system.minting_curve.address;
3039+
system.stake(:staker, amount: stake_amount, pool_enabled: true, :commission);
3040+
let strk_pool = system.staking.get_pool(:staker);
3041+
let btc_pool = system
3042+
.set_open_for_delegation(:staker, token_address: system.btc_token.contract_address());
3043+
system.start_consensus_rewards();
3044+
3045+
system.update_rewards(:staker, disable_rewards: false);
3046+
3047+
// Calculate expected rewards.
3048+
let (expected_staker_rewards, _) = calculate_staker_strk_rewards_with_balances_v3(
3049+
amount_own: stake_amount, pool_amount: Zero::zero(), :commission, :minting_curve_contract,
3050+
);
3051+
assert!(expected_staker_rewards.is_non_zero());
3052+
3053+
// Claim rewards - test staker rewards
3054+
let staker_rewards = system.staker_claim_rewards(:staker);
3055+
assert!(staker_rewards == expected_staker_rewards);
3056+
3057+
// Test pool balances
3058+
let strk_pool_balance = system.token.balance_of(account: strk_pool);
3059+
let btc_pool_balance = system.token.balance_of(account: btc_pool);
3060+
assert!(strk_pool_balance.is_zero());
3061+
assert!(btc_pool_balance.is_zero());
3062+
}
3063+
30243064
/// Flow:
30253065
/// 2 BTC tokens (A and B) added - test tokens
30263066
/// Enable token A - test tokens

0 commit comments

Comments
 (0)