Skip to content

Commit 986b446

Browse files
test: add get_stakers increase stake flow
1 parent 6b110ac commit 986b446

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

workspace/apps/staking/contracts/src/flow_test/flow_ideas.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Flow Ideas
22
## `get_stakers`
3-
- Stake, get stakers, increase stake, get stakers.
43
- Stake with delegation, get stakers, switch pool, get stakers.
54
- Staker without public key.
65

workspace/apps/staking/contracts/src/flow_test/test.cairo

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2347,3 +2347,52 @@ fn get_stakers_enable_disable_btc_tokens_flow_test() {
23472347
.span();
23482348
assert!(stakers == expected_stakers);
23492349
}
2350+
2351+
/// Flow:
2352+
/// 2 Stakers stake.
2353+
/// Test get_stakers.
2354+
/// Staker 1 increase stake.
2355+
/// Test get_stakers.
2356+
#[test]
2357+
fn get_stakers_increase_stake_flow_test() {
2358+
let cfg: StakingInitConfig = Default::default();
2359+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
2360+
let stake_amount = system.staking.get_min_stake();
2361+
let staking_consensus = system.staking.consensus_dispatcher();
2362+
let staker_1 = system.new_staker(amount: stake_amount * 2);
2363+
let staker_2 = system.new_staker(amount: stake_amount);
2364+
system.stake(staker: staker_1, amount: stake_amount, pool_enabled: false, commission: 200);
2365+
system.stake(staker: staker_2, amount: stake_amount, pool_enabled: false, commission: 200);
2366+
system.advance_k_epochs();
2367+
2368+
// Test get_stakers
2369+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2370+
let expected_stakers = array![
2371+
(staker_1.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2372+
(staker_2.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2373+
]
2374+
.span();
2375+
assert!(stakers == expected_stakers);
2376+
2377+
// Staker 1 increase stake.
2378+
system.increase_stake(staker: staker_1, amount: stake_amount);
2379+
2380+
// Test same epoch.
2381+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2382+
let expected_stakers = array![
2383+
(staker_1.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2384+
(staker_2.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2385+
]
2386+
.span();
2387+
assert!(stakers == expected_stakers);
2388+
2389+
// Test after K epochs.
2390+
system.advance_k_epochs();
2391+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2392+
let expected_stakers = array![
2393+
(staker_1.staker.address, STRK_WEIGHT_FACTOR * 2 / 3, Option::None),
2394+
(staker_2.staker.address, STRK_WEIGHT_FACTOR / 3, Option::None),
2395+
]
2396+
.span();
2397+
assert!(stakers == expected_stakers);
2398+
}

0 commit comments

Comments
 (0)