Skip to content

Commit db61e91

Browse files
test: add get_stakers 100% power test (#34)
<!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/starkware-libs/starknet-staking/34) <!-- Reviewable:end --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds a flow test asserting `get_stakers` returns 100% staking power with BTC delegation and exposes `STAKING_POWER_BASE_VALUE` for use. > > - **Tests**: > - Add `get_stakers_staking_power_100_flow_test` in `src/flow_test/test.cairo` to verify staking power equals `STAKING_POWER_BASE_VALUE` when delegating BTC to a single staker. > - **Utils**: > - Make `STAKING_POWER_BASE_VALUE` `pub(crate)` in `src/staking/utils.cairo` and import it in tests. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 21f569c. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 2f7be63 commit db61e91

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

src/flow_test/test.cairo

Lines changed: 35 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,37 @@ 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
2602+
.set_open_for_delegation(
2603+
staker: staker, token_address: system.btc_token.contract_address(),
2604+
);
2605+
let delegator = system
2606+
.new_btc_delegator(amount: btc_delegation_amount, token: system.btc_token);
2607+
system
2608+
.delegate_btc(
2609+
delegator: delegator,
2610+
pool: btc_pool,
2611+
amount: btc_delegation_amount,
2612+
token: system.btc_token,
2613+
);
2614+
system.advance_k_epochs();
2615+
2616+
// Test get_stakers.
2617+
let stakers = staking_consensus.get_stakers(epoch_id: system.staking.get_current_epoch());
2618+
let expected_stakers = array![(staker.staker.address, STAKING_POWER_BASE_VALUE, Option::None)]
2619+
.span();
2620+
assert!(stakers == expected_stakers);
2621+
}

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)