Skip to content

Commit d2664d9

Browse files
test: add update_rewards empty pools flow
1 parent 982e654 commit d2664d9

2 files changed

Lines changed: 45 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: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3032,6 +3032,51 @@ fn update_rewards_multiple_btc_pools_flow_test() {
30323032
assert!(delegator_rewards_18 == expected_pool_rewards);
30333033
}
30343034

3035+
/// Flow:
3036+
/// Start consensus rewards.
3037+
/// Staker stake with STRK pool.
3038+
/// Open BTC pool.
3039+
/// Advance K epochs.
3040+
/// update_rewards.
3041+
/// Test staker rewards.
3042+
#[test]
3043+
fn update_rewards_empty_pools_flow_test() {
3044+
let cfg: StakingInitConfig = Default::default();
3045+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
3046+
let stake_amount = system.staking.get_min_stake();
3047+
let staker = system.new_staker(amount: stake_amount);
3048+
let commission = 200;
3049+
let staking_contract = system.staking.address;
3050+
let minting_curve_contract = system.minting_curve.address;
3051+
system.stake(:staker, amount: stake_amount, pool_enabled: true, :commission);
3052+
let strk_pool = system.staking.get_pool(:staker);
3053+
let btc_pool = system
3054+
.set_open_for_delegation(:staker, token_address: system.btc_token.contract_address());
3055+
system.start_consensus_rewards();
3056+
3057+
system.update_rewards(:staker, disable_rewards: false);
3058+
3059+
// Calculate expected rewards.
3060+
let (expected_staker_rewards, _) = calculate_staker_strk_rewards_with_balances_v3(
3061+
amount_own: stake_amount,
3062+
pool_amount: Zero::zero(),
3063+
:commission,
3064+
:staking_contract,
3065+
:minting_curve_contract,
3066+
);
3067+
assert!(expected_staker_rewards.is_non_zero());
3068+
3069+
// Claim rewards - test staker rewards
3070+
let staker_rewards = system.staker_claim_rewards(:staker);
3071+
assert!(staker_rewards == expected_staker_rewards);
3072+
3073+
// Test pool balances
3074+
let strk_pool_balance = system.token.balance_of(account: strk_pool);
3075+
let btc_pool_balance = system.token.balance_of(account: btc_pool);
3076+
assert!(strk_pool_balance.is_zero());
3077+
assert!(btc_pool_balance.is_zero());
3078+
}
3079+
30353080
/// Flow:
30363081
/// 2 BTC tokens (A and B) added - test tokens
30373082
/// Enable token A - test tokens

0 commit comments

Comments
 (0)