Skip to content

Commit 93429b1

Browse files
test: add get_stakers 100% power test
1 parent fc48614 commit 93429b1

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

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

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use staking::pool::pool::Pool;
1010
use staking::pool::pool::Pool::STRK_CONFIG;
1111
use staking::pool::utils::compute_rewards_rounded_down;
1212
use staking::staking::interface::{IStakingConsensusDispatcherTrait, IStakingDispatcherTrait};
13-
use staking::staking::utils::{BTC_WEIGHT_FACTOR, STRK_WEIGHT_FACTOR};
13+
use staking::staking::utils::{BTC_WEIGHT_FACTOR, STAKING_POWER_BASE_VALUE, STRK_WEIGHT_FACTOR};
1414
use staking::test_utils::constants::{
1515
BTC_18D_CONFIG, BTC_5D_CONFIG, BTC_8D_CONFIG, PUBLIC_KEY, STRK_BASE_VALUE,
1616
TEST_MIN_BTC_FOR_REWARDS,
@@ -2585,3 +2585,29 @@ fn get_stakers_switch_delegation_flow_test() {
25852585
assert!(stakers == expected_stakers);
25862586
}
25872587

2588+
/// Flow:
2589+
/// Staker stake.
2590+
/// Delegator delegate BTC.
2591+
/// Test staking power in get_stakers is 100%.
2592+
#[test]
2593+
fn get_stakers_staking_power_100_flow_test() {
2594+
let cfg: StakingInitConfig = Default::default();
2595+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
2596+
let stake_amount = system.staking.get_min_stake();
2597+
let btc_delegation_amount = TEST_MIN_BTC_FOR_REWARDS;
2598+
let staking_consensus = system.staking.consensus_dispatcher();
2599+
let staker = system.new_staker(amount: stake_amount);
2600+
system.stake(staker: staker, amount: stake_amount, pool_enabled: true, commission: 200);
2601+
let btc_pool = system.set_open_for_delegation(staker: staker, token_address: system.btc_token.contract_address());
2602+
let delegator = system.new_btc_delegator(amount: btc_delegation_amount, token: system.btc_token);
2603+
system.delegate_btc(delegator: delegator, pool: btc_pool, amount: btc_delegation_amount, token: system.btc_token);
2604+
system.advance_k_epochs();
2605+
2606+
// Test get_stakers.
2607+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2608+
let expected_stakers = array![
2609+
(staker.staker.address, STAKING_POWER_BASE_VALUE, Option::None),
2610+
]
2611+
.span();
2612+
assert!(stakers == expected_stakers);
2613+
}

workspace/apps/staking/contracts/src/staking/utils.cairo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use starkware_utils::storage::iterable_map::{
2323
};
2424
use starkware_utils::trace::trace::{Trace, TraceTrait};
2525

26-
const STAKING_POWER_BASE_VALUE: u128 = 10_u128.pow(10);
26+
pub(crate) const STAKING_POWER_BASE_VALUE: u128 = 10_u128.pow(10);
2727
pub(crate) const STRK_WEIGHT_FACTOR: u128 = STAKING_POWER_BASE_VALUE
2828
* (ALPHA_DENOMINATOR - ALPHA)
2929
/ ALPHA_DENOMINATOR;

0 commit comments

Comments
 (0)