Skip to content

Commit 1ee509f

Browse files
test: add get_stakers increase stake flow
1 parent 9ef4317 commit 1ee509f

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
@@ -2358,3 +2358,52 @@ fn get_stakers_enable_disable_btc_tokens_flow_test() {
23582358
.span();
23592359
assert!(stakers == expected_stakers);
23602360
}
2361+
2362+
/// Flow:
2363+
/// 2 Stakers stake.
2364+
/// Test get_stakers.
2365+
/// Staker 1 increase stake.
2366+
/// Test get_stakers.
2367+
#[test]
2368+
fn get_stakers_increase_stake_flow_test() {
2369+
let cfg: StakingInitConfig = Default::default();
2370+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
2371+
let stake_amount = system.staking.get_min_stake();
2372+
let staking_consensus = system.staking.consensus_dispatcher();
2373+
let staker_1 = system.new_staker(amount: stake_amount * 2);
2374+
let staker_2 = system.new_staker(amount: stake_amount);
2375+
system.stake(staker: staker_1, amount: stake_amount, pool_enabled: false, commission: 200);
2376+
system.stake(staker: staker_2, amount: stake_amount, pool_enabled: false, commission: 200);
2377+
system.advance_k_epochs();
2378+
2379+
// Test get_stakers
2380+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2381+
let expected_stakers = array![
2382+
(staker_1.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2383+
(staker_2.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2384+
]
2385+
.span();
2386+
assert!(stakers == expected_stakers);
2387+
2388+
// Staker 1 increase stake.
2389+
system.increase_stake(staker: staker_1, amount: stake_amount);
2390+
2391+
// Test same epoch.
2392+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2393+
let expected_stakers = array![
2394+
(staker_1.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2395+
(staker_2.staker.address, STRK_WEIGHT_FACTOR / 2, Option::None),
2396+
]
2397+
.span();
2398+
assert!(stakers == expected_stakers);
2399+
2400+
// Test after K epochs.
2401+
system.advance_k_epochs();
2402+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2403+
let expected_stakers = array![
2404+
(staker_1.staker.address, STRK_WEIGHT_FACTOR * 2 / 3, Option::None),
2405+
(staker_2.staker.address, STRK_WEIGHT_FACTOR / 3, Option::None),
2406+
]
2407+
.span();
2408+
assert!(stakers == expected_stakers);
2409+
}

0 commit comments

Comments
 (0)