Skip to content

Commit a9470a5

Browse files
committed
Update EVM tests and cleanup
1 parent 8a7661c commit a9470a5

File tree

6 files changed

+64
-58
lines changed

6 files changed

+64
-58
lines changed

evm-tests/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ between runtime and precompile contracts.
1313

1414
## polkadot api
1515

16+
You need `polkadot-api` globally installed:
17+
18+
```bash
19+
$ npm i -g polkadot-api
20+
```
21+
1622
To get the metadata, you need start the localnet via run
1723
`./scripts/localnet.sh`. then run following command to get metadata, a folder
1824
name .papi will be created, which include the metadata and type definitions.

evm-tests/test/staking.precompile.stake-get.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe("Test staking precompile get methods", () => {
4545
await contract.getStake(hotkey.publicKey, coldkey.publicKey, netuid)
4646
);
4747

48-
// validator returned as bigint now.
48+
// validator returned as bigint now.
4949
const validators =
5050
await contract.getAlphaStakedValidators(hotkey.publicKey, netuid)
5151

evm-tests/test/subnet.precompile.hyperparameter.test.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as assert from "assert";
22

3-
import { getDevnetApi, getRandomSubstrateKeypair } from "../src/substrate"
3+
import { getDevnetApi, getRandomSubstrateKeypair, getAliceSigner, waitForTransactionWithRetry } from "../src/substrate"
44
import { devnet } from "@polkadot-api/descriptors"
55
import { TypedApi } from "polkadot-api";
66
import { convertPublicKeyToSs58 } from "../src/address-utils"
@@ -25,6 +25,21 @@ describe("Test the Subnet precompile contract", () => {
2525
await forceSetBalanceToSs58Address(api, convertPublicKeyToSs58(hotkey1.publicKey))
2626
await forceSetBalanceToSs58Address(api, convertPublicKeyToSs58(hotkey2.publicKey))
2727
await forceSetBalanceToEthAddress(api, wallet.address)
28+
29+
// Disable admin freeze window and owner hyperparam rate limiting for tests
30+
{
31+
const alice = getAliceSigner()
32+
33+
// Set AdminFreezeWindow to 0
34+
const setFreezeWindow = api.tx.AdminUtils.sudo_set_admin_freeze_window({ window: 0 })
35+
const sudoFreezeTx = api.tx.Sudo.sudo({ call: setFreezeWindow.decodedCall })
36+
await waitForTransactionWithRetry(api, sudoFreezeTx, alice)
37+
38+
// Set OwnerHyperparamRateLimit to 0
39+
const setOwnerRateLimit = api.tx.AdminUtils.sudo_set_owner_hparam_rate_limit({ limit: BigInt(0) })
40+
const sudoOwnerRateTx = api.tx.Sudo.sudo({ call: setOwnerRateLimit.decodedCall })
41+
await waitForTransactionWithRetry(api, sudoOwnerRateTx, alice)
42+
}
2843
})
2944

3045
it("Can register network without identity info", async () => {

pallets/admin-utils/src/lib.rs

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ pub mod pallet {
220220
)?;
221221
pallet_subtensor::Pallet::<T>::set_serving_rate_limit(netuid, serving_rate_limit);
222222
log::debug!("ServingRateLimitSet( serving_rate_limit: {serving_rate_limit:?} ) ");
223-
Self::record_owner_rl(
223+
pallet_subtensor::Pallet::<T>::record_owner_rl(
224224
maybe_owner,
225225
netuid,
226226
&[TransactionType::OwnerHyperparamUpdate],
@@ -279,7 +279,7 @@ pub mod pallet {
279279
log::debug!(
280280
"MaxDifficultySet( netuid: {netuid:?} max_difficulty: {max_difficulty:?} ) "
281281
);
282-
Self::record_owner_rl(
282+
pallet_subtensor::Pallet::<T>::record_owner_rl(
283283
maybe_owner,
284284
netuid,
285285
&[TransactionType::OwnerHyperparamUpdate],
@@ -313,7 +313,7 @@ pub mod pallet {
313313
Error::<T>::SubnetDoesNotExist
314314
);
315315

316-
Self::record_owner_rl(
316+
pallet_subtensor::Pallet::<T>::record_owner_rl(
317317
maybe_owner,
318318
netuid,
319319
&[
@@ -407,7 +407,7 @@ pub mod pallet {
407407
Error::<T>::SubnetDoesNotExist
408408
);
409409
pallet_subtensor::Pallet::<T>::set_adjustment_alpha(netuid, adjustment_alpha);
410-
Self::record_owner_rl(
410+
pallet_subtensor::Pallet::<T>::record_owner_rl(
411411
maybe_owner,
412412
netuid,
413413
&[TransactionType::OwnerHyperparamUpdate],
@@ -439,7 +439,7 @@ pub mod pallet {
439439
Error::<T>::SubnetDoesNotExist
440440
);
441441
pallet_subtensor::Pallet::<T>::set_max_weight_limit(netuid, max_weight_limit);
442-
Self::record_owner_rl(
442+
pallet_subtensor::Pallet::<T>::record_owner_rl(
443443
maybe_owner,
444444
netuid,
445445
&[TransactionType::OwnerHyperparamUpdate],
@@ -473,7 +473,7 @@ pub mod pallet {
473473
);
474474

475475
pallet_subtensor::Pallet::<T>::set_immunity_period(netuid, immunity_period);
476-
Self::record_owner_rl(
476+
pallet_subtensor::Pallet::<T>::record_owner_rl(
477477
maybe_owner,
478478
netuid,
479479
&[TransactionType::OwnerHyperparamUpdate],
@@ -510,7 +510,7 @@ pub mod pallet {
510510
log::debug!(
511511
"MinAllowedWeightSet( netuid: {netuid:?} min_allowed_weights: {min_allowed_weights:?} ) "
512512
);
513-
Self::record_owner_rl(
513+
pallet_subtensor::Pallet::<T>::record_owner_rl(
514514
maybe_owner,
515515
netuid,
516516
&[TransactionType::OwnerHyperparamUpdate],
@@ -566,7 +566,7 @@ pub mod pallet {
566566
);
567567
pallet_subtensor::Pallet::<T>::set_kappa(netuid, kappa);
568568
log::debug!("KappaSet( netuid: {netuid:?} kappa: {kappa:?} ) ");
569-
Self::record_owner_rl(
569+
pallet_subtensor::Pallet::<T>::record_owner_rl(
570570
maybe_owner,
571571
netuid,
572572
&[TransactionType::OwnerHyperparamUpdate],
@@ -594,7 +594,7 @@ pub mod pallet {
594594
);
595595
pallet_subtensor::Pallet::<T>::set_rho(netuid, rho);
596596
log::debug!("RhoSet( netuid: {netuid:?} rho: {rho:?} ) ");
597-
Self::record_owner_rl(
597+
pallet_subtensor::Pallet::<T>::record_owner_rl(
598598
maybe_owner,
599599
netuid,
600600
&[TransactionType::OwnerHyperparamUpdate],
@@ -634,7 +634,7 @@ pub mod pallet {
634634
log::debug!(
635635
"ActivityCutoffSet( netuid: {netuid:?} activity_cutoff: {activity_cutoff:?} ) "
636636
);
637-
Self::record_owner_rl(
637+
pallet_subtensor::Pallet::<T>::record_owner_rl(
638638
maybe_owner,
639639
netuid,
640640
&[TransactionType::OwnerHyperparamUpdate],
@@ -695,7 +695,7 @@ pub mod pallet {
695695
log::debug!(
696696
"NetworkPowRegistrationAllowed( registration_allowed: {registration_allowed:?} ) "
697697
);
698-
Self::record_owner_rl(
698+
pallet_subtensor::Pallet::<T>::record_owner_rl(
699699
maybe_owner,
700700
netuid,
701701
&[TransactionType::OwnerHyperparamUpdate],
@@ -763,7 +763,7 @@ pub mod pallet {
763763
);
764764
pallet_subtensor::Pallet::<T>::set_min_burn(netuid, min_burn);
765765
log::debug!("MinBurnSet( netuid: {netuid:?} min_burn: {min_burn:?} ) ");
766-
Self::record_owner_rl(
766+
pallet_subtensor::Pallet::<T>::record_owner_rl(
767767
maybe_owner,
768768
netuid,
769769
&[TransactionType::OwnerHyperparamUpdate],
@@ -803,7 +803,7 @@ pub mod pallet {
803803
);
804804
pallet_subtensor::Pallet::<T>::set_max_burn(netuid, max_burn);
805805
log::debug!("MaxBurnSet( netuid: {netuid:?} max_burn: {max_burn:?} ) ");
806-
Self::record_owner_rl(
806+
pallet_subtensor::Pallet::<T>::record_owner_rl(
807807
maybe_owner,
808808
netuid,
809809
&[TransactionType::OwnerHyperparamUpdate],
@@ -898,7 +898,7 @@ pub mod pallet {
898898
log::debug!(
899899
"BondsMovingAverageSet( netuid: {netuid:?} bonds_moving_average: {bonds_moving_average:?} ) "
900900
);
901-
Self::record_owner_rl(
901+
pallet_subtensor::Pallet::<T>::record_owner_rl(
902902
maybe_owner,
903903
netuid,
904904
&[TransactionType::OwnerHyperparamUpdate],
@@ -930,7 +930,7 @@ pub mod pallet {
930930
);
931931
pallet_subtensor::Pallet::<T>::set_bonds_penalty(netuid, bonds_penalty);
932932
log::debug!("BondsPenalty( netuid: {netuid:?} bonds_penalty: {bonds_penalty:?} ) ");
933-
Self::record_owner_rl(
933+
pallet_subtensor::Pallet::<T>::record_owner_rl(
934934
maybe_owner,
935935
netuid,
936936
&[TransactionType::OwnerHyperparamUpdate],
@@ -1215,7 +1215,7 @@ pub mod pallet {
12151215

12161216
pallet_subtensor::Pallet::<T>::set_commit_reveal_weights_enabled(netuid, enabled);
12171217
log::debug!("ToggleSetWeightsCommitReveal( netuid: {netuid:?} ) ");
1218-
Self::record_owner_rl(
1218+
pallet_subtensor::Pallet::<T>::record_owner_rl(
12191219
maybe_owner,
12201220
netuid,
12211221
&[TransactionType::OwnerHyperparamUpdate],
@@ -1246,7 +1246,7 @@ pub mod pallet {
12461246
)?;
12471247
pallet_subtensor::Pallet::<T>::set_liquid_alpha_enabled(netuid, enabled);
12481248
log::debug!("LiquidAlphaEnableToggled( netuid: {netuid:?}, Enabled: {enabled:?} ) ");
1249-
Self::record_owner_rl(
1249+
pallet_subtensor::Pallet::<T>::record_owner_rl(
12501250
maybe_owner,
12511251
netuid,
12521252
&[TransactionType::OwnerHyperparamUpdate],
@@ -1272,7 +1272,7 @@ pub mod pallet {
12721272
origin, netuid, alpha_low, alpha_high,
12731273
);
12741274
if res.is_ok() {
1275-
Self::record_owner_rl(
1275+
pallet_subtensor::Pallet::<T>::record_owner_rl(
12761276
maybe_owner,
12771277
netuid,
12781278
&[TransactionType::OwnerHyperparamUpdate],
@@ -1384,7 +1384,7 @@ pub mod pallet {
13841384
log::debug!("SetWeightCommitInterval( netuid: {netuid:?}, interval: {interval:?} ) ");
13851385

13861386
pallet_subtensor::Pallet::<T>::set_reveal_period(netuid, interval)?;
1387-
Self::record_owner_rl(
1387+
pallet_subtensor::Pallet::<T>::record_owner_rl(
13881388
maybe_owner,
13891389
netuid,
13901390
&[TransactionType::OwnerHyperparamUpdate],
@@ -1469,7 +1469,7 @@ pub mod pallet {
14691469
)?;
14701470
let res = pallet_subtensor::Pallet::<T>::toggle_transfer(netuid, toggle);
14711471
if res.is_ok() {
1472-
Self::record_owner_rl(
1472+
pallet_subtensor::Pallet::<T>::record_owner_rl(
14731473
maybe_owner,
14741474
netuid,
14751475
&[TransactionType::OwnerHyperparamUpdate],
@@ -1624,7 +1624,7 @@ pub mod pallet {
16241624
pallet_subtensor::Pallet::<T>::set_alpha_sigmoid_steepness(netuid, steepness);
16251625

16261626
log::debug!("AlphaSigmoidSteepnessSet( netuid: {netuid:?}, steepness: {steepness:?} )");
1627-
Self::record_owner_rl(
1627+
pallet_subtensor::Pallet::<T>::record_owner_rl(
16281628
maybe_owner,
16291629
netuid,
16301630
&[TransactionType::OwnerHyperparamUpdate],
@@ -1657,7 +1657,7 @@ pub mod pallet {
16571657

16581658
Self::deposit_event(Event::Yuma3EnableToggled { netuid, enabled });
16591659
log::debug!("Yuma3EnableToggled( netuid: {netuid:?}, Enabled: {enabled:?} ) ");
1660-
Self::record_owner_rl(
1660+
pallet_subtensor::Pallet::<T>::record_owner_rl(
16611661
maybe_owner,
16621662
netuid,
16631663
&[TransactionType::OwnerHyperparamUpdate],
@@ -1690,7 +1690,7 @@ pub mod pallet {
16901690

16911691
Self::deposit_event(Event::BondsResetToggled { netuid, enabled });
16921692
log::debug!("BondsResetToggled( netuid: {netuid:?} bonds_reset: {enabled:?} ) ");
1693-
Self::record_owner_rl(
1693+
pallet_subtensor::Pallet::<T>::record_owner_rl(
16941694
maybe_owner,
16951695
netuid,
16961696
&[TransactionType::OwnerHyperparamUpdate],
@@ -1800,7 +1800,7 @@ pub mod pallet {
18001800
&[TransactionType::OwnerHyperparamUpdate],
18011801
)?;
18021802
pallet_subtensor::Pallet::<T>::set_owner_immune_neuron_limit(netuid, immune_neurons)?;
1803-
Self::record_owner_rl(
1803+
pallet_subtensor::Pallet::<T>::record_owner_rl(
18041804
maybe_owner,
18051805
netuid,
18061806
&[TransactionType::OwnerHyperparamUpdate],
@@ -1847,24 +1847,6 @@ pub mod pallet {
18471847
Ok(())
18481848
}
18491849
}
1850-
1851-
impl<T: Config> Pallet<T> {
1852-
// Helper: if owner path, record last-blocks for the provided TransactionTypes
1853-
fn record_owner_rl(
1854-
maybe_owner: Option<<T as frame_system::Config>::AccountId>,
1855-
netuid: NetUid,
1856-
txs: &[TransactionType],
1857-
) {
1858-
if let Some(who) = maybe_owner {
1859-
let now = pallet_subtensor::Pallet::<T>::get_current_block_as_u64();
1860-
for tx in txs {
1861-
pallet_subtensor::Pallet::<T>::set_last_transaction_block_on_subnet(
1862-
&who, netuid, tx, now,
1863-
);
1864-
}
1865-
}
1866-
}
1867-
}
18681850
}
18691851

18701852
impl<T: Config> sp_runtime::BoundToRuntimeAppPublic for Pallet<T> {

pallets/admin-utils/src/tests/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1968,7 +1968,7 @@ fn test_sudo_set_admin_freeze_window_and_rate() {
19681968
<<Test as Config>::RuntimeOrigin>::root(),
19691969
7
19701970
));
1971-
assert_eq!(SubtensorModule::get_admin_freeze_window(), 7);
1971+
assert_eq!(pallet_subtensor::AdminFreezeWindow::<Test>::get(), 7);
19721972

19731973
// Owner hyperparam rate limit setter
19741974
assert_eq!(
@@ -1982,7 +1982,7 @@ fn test_sudo_set_admin_freeze_window_and_rate() {
19821982
<<Test as Config>::RuntimeOrigin>::root(),
19831983
5
19841984
));
1985-
assert_eq!(SubtensorModule::get_owner_hyperparam_rate_limit(), 5);
1985+
assert_eq!(pallet_subtensor::OwnerHyperparamRateLimit::<Test>::get(), 5);
19861986
});
19871987
}
19881988

@@ -2149,7 +2149,7 @@ fn test_hyperparam_rate_limit_not_blocking_with_default() {
21492149
SubnetOwner::<Test>::insert(netuid, owner);
21502150

21512151
// Read the default (unset) owner hyperparam rate limit
2152-
let default_limit = SubtensorModule::get_owner_hyperparam_rate_limit();
2152+
let default_limit = pallet_subtensor::OwnerHyperparamRateLimit::<Test>::get();
21532153

21542154
assert_eq!(default_limit, 0);
21552155

pallets/subtensor/src/utils/misc.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -111,27 +111,30 @@ impl<T: Config> Pallet<T> {
111111
Ok(())
112112
}
113113

114-
// (Removed dedicated ensure_owner_hparam_rate_limit; OwnerHyperparamUpdate is checked via TransactionType)
115-
116-
// === Admin freeze window accessors ===
117-
pub fn get_admin_freeze_window() -> u16 {
118-
AdminFreezeWindow::<T>::get()
119-
}
120-
121114
pub fn set_admin_freeze_window(window: u16) {
122115
AdminFreezeWindow::<T>::set(window);
123116
Self::deposit_event(Event::AdminFreezeWindowSet(window));
124117
}
125118

126-
pub fn get_owner_hyperparam_rate_limit() -> u64 {
127-
OwnerHyperparamRateLimit::<T>::get()
128-
}
129-
130119
pub fn set_owner_hyperparam_rate_limit(limit: u64) {
131120
OwnerHyperparamRateLimit::<T>::set(limit);
132121
Self::deposit_event(Event::OwnerHyperparamRateLimitSet(limit));
133122
}
134123

124+
/// If owner is `Some`, record last-blocks for the provided `TransactionType`s.
125+
pub fn record_owner_rl(
126+
maybe_owner: Option<<T as frame_system::Config>::AccountId>,
127+
netuid: NetUid,
128+
txs: &[TransactionType],
129+
) {
130+
if let Some(who) = maybe_owner {
131+
let now = Self::get_current_block_as_u64();
132+
for tx in txs {
133+
Self::set_last_transaction_block_on_subnet(&who, netuid, tx, now);
134+
}
135+
}
136+
}
137+
135138
// ========================
136139
// ==== Global Setters ====
137140
// ========================

0 commit comments

Comments
 (0)