Skip to content

Commit f0310f5

Browse files
committed
Reformat
1 parent c06a4e9 commit f0310f5

File tree

6 files changed

+62
-130
lines changed

6 files changed

+62
-130
lines changed

runtime/src/precompiles/balance_transfer.rs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,9 @@
1-
use core::marker::PhantomData;
2-
3-
use pallet_evm::{
4-
BalanceConverter, ExitError, ExitSucceed, PrecompileFailure, PrecompileHandle,
5-
PrecompileOutput, PrecompileResult,
6-
};
1+
use pallet_evm::PrecompileHandle;
72
use precompile_utils::EvmResult;
83
use sp_core::H256;
94
use sp_runtime::traits::UniqueSaturatedInto;
10-
use sp_runtime::AccountId32;
11-
use sp_std::vec::Vec;
125

13-
use crate::precompiles::{
14-
contract_to_origin, get_method_id, parse_slice, parse_pubkey, PrecompileExt, PrecompileHandleExt,
15-
};
6+
use crate::precompiles::{contract_to_origin, parse_pubkey, PrecompileExt, PrecompileHandleExt};
167
use crate::Runtime;
178

189
pub struct BalanceTransferPrecompile;

runtime/src/precompiles/metagraph.rs

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
extern crate alloc;
22
use alloc::string::String;
33

4-
use fp_evm::{
5-
ExitError, ExitSucceed, PrecompileFailure, PrecompileHandle, PrecompileOutput, PrecompileResult,
6-
};
4+
use fp_evm::{ExitError, PrecompileFailure, PrecompileHandle};
75
use pallet_subtensor::AxonInfo as SubtensorModuleAxonInfo;
86
use precompile_utils::{solidity::Codec, EvmResult};
9-
use sp_core::{ByteArray, H256, U256};
10-
use sp_std::vec;
7+
use sp_core::{ByteArray, H256};
118

12-
use crate::precompiles::{get_method_id, parse_slice, PrecompileExt, PrecompileHandleExt};
9+
use crate::precompiles::PrecompileExt;
1310
use crate::Runtime;
1411

1512
pub struct MetagraphPrecompile;
@@ -23,13 +20,13 @@ impl PrecompileExt for MetagraphPrecompile {
2320
impl MetagraphPrecompile {
2421
#[precompile::public("getUidCount(uint16)")]
2522
#[precompile::view]
26-
fn get_uid_count(handle: &mut impl PrecompileHandle, netuid: u16) -> EvmResult<u16> {
23+
fn get_uid_count(_: &mut impl PrecompileHandle, netuid: u16) -> EvmResult<u16> {
2724
Ok(pallet_subtensor::SubnetworkN::<Runtime>::get(netuid))
2825
}
2926

3027
#[precompile::public("getStake(uint16,uint16)")]
3128
#[precompile::view]
32-
fn get_stake(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u64> {
29+
fn get_stake(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u64> {
3330
let hotkey = pallet_subtensor::Pallet::<Runtime>::get_hotkey_for_net_and_uid(netuid, uid)
3431
.map_err(|_| PrecompileFailure::Error {
3532
exit_status: ExitError::InvalidRange,
@@ -40,62 +37,62 @@ impl MetagraphPrecompile {
4037

4138
#[precompile::public("getRank(uint16,uint16)")]
4239
#[precompile::view]
43-
fn get_rank(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
40+
fn get_rank(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
4441
Ok(pallet_subtensor::Pallet::<Runtime>::get_rank_for_uid(
4542
netuid, uid,
4643
))
4744
}
4845

4946
#[precompile::public("getTrust(uint16,uint16)")]
5047
#[precompile::view]
51-
fn get_trust(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
48+
fn get_trust(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
5249
Ok(pallet_subtensor::Pallet::<Runtime>::get_trust_for_uid(
5350
netuid, uid,
5451
))
5552
}
5653

5754
#[precompile::public("getConsensus(uint16,uint16)")]
5855
#[precompile::view]
59-
fn get_consensus(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
56+
fn get_consensus(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
6057
Ok(pallet_subtensor::Pallet::<Runtime>::get_consensus_for_uid(
6158
netuid, uid,
6259
))
6360
}
6461

6562
#[precompile::public("getIncentive(uint16,uint16)")]
6663
#[precompile::view]
67-
fn get_incentive(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
64+
fn get_incentive(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
6865
Ok(pallet_subtensor::Pallet::<Runtime>::get_incentive_for_uid(
6966
netuid, uid,
7067
))
7168
}
7269

7370
#[precompile::public("getDividends(uint16,uint16)")]
7471
#[precompile::view]
75-
fn get_dividends(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
72+
fn get_dividends(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
7673
Ok(pallet_subtensor::Pallet::<Runtime>::get_dividends_for_uid(
7774
netuid, uid,
7875
))
7976
}
8077

8178
#[precompile::public("getEmission(uint16,uint16)")]
8279
#[precompile::view]
83-
fn get_emission(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u64> {
80+
fn get_emission(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u64> {
8481
Ok(pallet_subtensor::Pallet::<Runtime>::get_emission_for_uid(
8582
netuid, uid,
8683
))
8784
}
8885

8986
#[precompile::public("getVtrust(uint16,uint16)")]
9087
#[precompile::view]
91-
fn get_vtrust(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
88+
fn get_vtrust(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u16> {
9289
Ok(pallet_subtensor::Pallet::<Runtime>::get_validator_trust_for_uid(netuid, uid))
9390
}
9491

9592
#[precompile::public("getValidatorStatus(uint16,uint16)")]
9693
#[precompile::view]
9794
fn get_validator_status(
98-
handle: &mut impl PrecompileHandle,
95+
_: &mut impl PrecompileHandle,
9996
netuid: u16,
10097
uid: u16,
10198
) -> EvmResult<bool> {
@@ -104,25 +101,21 @@ impl MetagraphPrecompile {
104101

105102
#[precompile::public("getLastUpdate(uint16,uint16)")]
106103
#[precompile::view]
107-
fn get_last_update(
108-
handle: &mut impl PrecompileHandle,
109-
netuid: u16,
110-
uid: u16,
111-
) -> EvmResult<u64> {
104+
fn get_last_update(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<u64> {
112105
Ok(pallet_subtensor::Pallet::<Runtime>::get_last_update_for_uid(netuid, uid))
113106
}
114107

115108
#[precompile::public("getIsActive(uint16,uint16)")]
116109
#[precompile::view]
117-
fn get_is_active(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<bool> {
110+
fn get_is_active(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<bool> {
118111
Ok(pallet_subtensor::Pallet::<Runtime>::get_active_for_uid(
119112
netuid, uid,
120113
))
121114
}
122115

123116
#[precompile::public("getAxon(uint16,uint16)")]
124117
#[precompile::view]
125-
fn get_axon(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<AxonInfo> {
118+
fn get_axon(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<AxonInfo> {
126119
let hotkey = pallet_subtensor::Pallet::<Runtime>::get_hotkey_for_net_and_uid(netuid, uid)
127120
.map_err(|_| PrecompileFailure::Error {
128121
exit_status: ExitError::Other("hotkey not found".into()),
@@ -133,7 +126,7 @@ impl MetagraphPrecompile {
133126

134127
#[precompile::public("getHotkey(uint16,uint16)")]
135128
#[precompile::view]
136-
fn get_hotkey(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<H256> {
129+
fn get_hotkey(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<H256> {
137130
pallet_subtensor::Pallet::<Runtime>::get_hotkey_for_net_and_uid(netuid, uid)
138131
.map(|acc| H256::from_slice(acc.as_slice()))
139132
.map_err(|_| PrecompileFailure::Error {
@@ -143,7 +136,7 @@ impl MetagraphPrecompile {
143136

144137
#[precompile::public("getColdkey(uint16,uint16)")]
145138
#[precompile::view]
146-
fn get_coldkey(handle: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<H256> {
139+
fn get_coldkey(_: &mut impl PrecompileHandle, netuid: u16, uid: u16) -> EvmResult<H256> {
147140
let hotkey = pallet_subtensor::Pallet::<Runtime>::get_hotkey_for_net_and_uid(netuid, uid)
148141
.map_err(|_| PrecompileFailure::Error {
149142
exit_status: ExitError::InvalidRange,

runtime/src/precompiles/mod.rs

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ use core::marker::PhantomData;
66
use frame_support::dispatch::{GetDispatchInfo, Pays};
77
use frame_system::RawOrigin;
88
use pallet_evm::{
9-
AddressMapping, BalanceConverter, ExitError, ExitSucceed, GasWeightMapping,
10-
HashedAddressMapping, IsPrecompileResult, Precompile, PrecompileFailure, PrecompileHandle,
11-
PrecompileOutput, PrecompileResult, PrecompileSet,
9+
AddressMapping, BalanceConverter, ExitError, GasWeightMapping, HashedAddressMapping,
10+
IsPrecompileResult, Precompile, PrecompileFailure, PrecompileHandle, PrecompileResult,
11+
PrecompileSet,
1212
};
1313
use pallet_evm_precompile_modexp::Modexp;
1414
use pallet_evm_precompile_sha3fips::Sha3FIPS256;
1515
use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256};
1616
use precompile_utils::EvmResult;
17-
use sp_core::{hashing::keccak_256, H160, U256};
17+
use sp_core::{H160, U256};
1818
use sp_runtime::traits::BlakeTwo256;
1919
use sp_runtime::{traits::Dispatchable, AccountId32};
2020
use sp_std::vec;
@@ -114,19 +114,8 @@ fn hash(a: u64) -> H160 {
114114
H160::from_low_u64_be(a)
115115
}
116116

117-
/// Returns Ethereum method ID from an str method signature
118-
///
119-
pub fn get_method_id(method_signature: &str) -> [u8; 4] {
120-
// Calculate the full Keccak-256 hash of the method signature
121-
let hash = keccak_256(method_signature.as_bytes());
122-
123-
// Extract the first 4 bytes to get the method ID
124-
[hash[0], hash[1], hash[2], hash[3]]
125-
}
126-
127117
/// Takes a slice from bytes with PrecompileFailure as Error
128-
///
129-
pub fn parse_slice(data: &[u8], from: usize, to: usize) -> Result<&[u8], PrecompileFailure> {
118+
fn parse_slice(data: &[u8], from: usize, to: usize) -> Result<&[u8], PrecompileFailure> {
130119
let maybe_slice = data.get(from..to);
131120
if let Some(slice) = maybe_slice {
132121
Ok(slice)
@@ -143,7 +132,7 @@ pub fn parse_slice(data: &[u8], from: usize, to: usize) -> Result<&[u8], Precomp
143132
}
144133
}
145134

146-
pub fn parse_pubkey(data: &[u8]) -> Result<(AccountId32, vec::Vec<u8>), PrecompileFailure> {
135+
fn parse_pubkey(data: &[u8]) -> Result<(AccountId32, vec::Vec<u8>), PrecompileFailure> {
147136
let mut pubkey = [0u8; 32];
148137
pubkey.copy_from_slice(parse_slice(data, 0, 32)?);
149138

@@ -155,31 +144,17 @@ pub fn parse_pubkey(data: &[u8]) -> Result<(AccountId32, vec::Vec<u8>), Precompi
155144
}
156145

157146
fn try_u16_from_u256(value: U256) -> Result<u16, PrecompileFailure> {
158-
u16::try_from(value.as_u32()).map_err(|_| PrecompileFailure::Error {
147+
value.try_into().map_err(|_| PrecompileFailure::Error {
159148
exit_status: ExitError::Other("the value is outside of u16 bounds".into()),
160149
})
161150
}
162151

163-
fn parse_netuid(data: &[u8], offset: usize) -> Result<u16, PrecompileFailure> {
164-
if data.len() < offset + 2 {
165-
return Err(PrecompileFailure::Error {
166-
exit_status: ExitError::InvalidRange,
167-
});
168-
}
169-
170-
let mut netuid_bytes = [0u8; 2];
171-
netuid_bytes.copy_from_slice(parse_slice(data, offset, offset + 2)?);
172-
let netuid: u16 = netuid_bytes[1] as u16 | ((netuid_bytes[0] as u16) << 8u16);
173-
174-
Ok(netuid)
175-
}
176-
177152
fn contract_to_origin(contract: &[u8; 32]) -> Result<RawOrigin<AccountId32>, PrecompileFailure> {
178153
let (account_id, _) = parse_pubkey(contract)?;
179154
Ok(RawOrigin::Signed(account_id))
180155
}
181156

182-
pub(crate) trait PrecompileHandleExt: PrecompileHandle {
157+
trait PrecompileHandleExt: PrecompileHandle {
183158
fn caller_account_id(&self) -> AccountId32 {
184159
<HashedAddressMapping<BlakeTwo256> as AddressMapping<AccountId32>>::into_account_id(
185160
self.context().caller,
@@ -266,7 +241,7 @@ pub(crate) trait PrecompileHandleExt: PrecompileHandle {
266241

267242
impl<T> PrecompileHandleExt for T where T: PrecompileHandle {}
268243

269-
pub(crate) trait PrecompileExt: Precompile {
244+
trait PrecompileExt: Precompile {
270245
const INDEX: u64;
271246
// ss58 public key i.e., the contract sends funds it received to the destination address from
272247
// the method parameter.

runtime/src/precompiles/neuron.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
use frame_system::RawOrigin;
2-
use pallet_evm::{
3-
AddressMapping, ExitError, HashedAddressMapping, PrecompileFailure, PrecompileHandle,
4-
PrecompileResult,
5-
};
2+
use pallet_evm::PrecompileHandle;
63
use precompile_utils::EvmResult;
74
use sp_core::H256;
8-
use sp_runtime::traits::BlakeTwo256;
9-
use sp_runtime::AccountId32;
10-
use sp_std::vec;
115
use sp_std::vec::Vec;
126

13-
use crate::precompiles::{
14-
get_method_id, parse_netuid, parse_pubkey, parse_slice, PrecompileExt, PrecompileHandleExt,
15-
};
16-
use crate::{Runtime, RuntimeCall};
7+
use crate::precompiles::{parse_pubkey, PrecompileExt, PrecompileHandleExt};
8+
use crate::Runtime;
179

1810
pub struct NeuronPrecompile;
1911

runtime/src/precompiles/staking.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,13 @@
2626
//
2727

2828
use frame_system::RawOrigin;
29-
use pallet_evm::{
30-
AddressMapping, BalanceConverter, ExitError, ExitSucceed, HashedAddressMapping,
31-
PrecompileFailure, PrecompileHandle, PrecompileOutput, PrecompileResult,
32-
};
29+
use pallet_evm::{BalanceConverter, ExitError, PrecompileFailure, PrecompileHandle};
3330
use precompile_utils::EvmResult;
3431
use sp_core::{H256, U256};
35-
use sp_runtime::traits::{BlakeTwo256, Dispatchable, StaticLookup, UniqueSaturatedInto};
32+
use sp_runtime::traits::{Dispatchable, StaticLookup, UniqueSaturatedInto};
3633
use sp_runtime::AccountId32;
37-
use sp_std::vec;
3834

39-
use crate::precompiles::{
40-
get_method_id, parse_slice, parse_netuid, parse_pubkey, try_u16_from_u256, PrecompileExt,
41-
PrecompileHandleExt,
42-
};
35+
use crate::precompiles::{parse_pubkey, try_u16_from_u256, PrecompileExt, PrecompileHandleExt};
4336
use crate::{ProxyType, Runtime, RuntimeCall};
4437

4538
pub struct StakingPrecompile;

0 commit comments

Comments
 (0)