From 84b4023fda30dee7138d1ad9d4a16e21b0fd25a2 Mon Sep 17 00:00:00 2001 From: open-junius Date: Mon, 17 Nov 2025 14:47:28 +0800 Subject: [PATCH 1/4] fix wrong alpha price in precompile --- precompiles/src/alpha.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/precompiles/src/alpha.rs b/precompiles/src/alpha.rs index 9dd0379f10..40f85f1dfb 100644 --- a/precompiles/src/alpha.rs +++ b/precompiles/src/alpha.rs @@ -35,10 +35,11 @@ where #[precompile::public("getAlphaPrice(uint16)")] #[precompile::view] fn get_alpha_price(_handle: &mut impl PrecompileHandle, netuid: u16) -> EvmResult { - let price = + let current_alpha_price = as SwapHandler>::current_alpha_price(netuid.into()); + let price = current_alpha_price.saturating_mul(U96F32::from_num(1_000_000_000)); let price: SubstrateBalance = price.saturating_to_num::().into(); - let price_eth = ::BalanceConverter::into_evm_balance(price) + let price_eth = ::BalanceConverter::into_evm_balance(price.into()) .map(|amount| amount.into_u256()) .ok_or(ExitError::InvalidRange)?; @@ -48,9 +49,11 @@ where #[precompile::public("getMovingAlphaPrice(uint16)")] #[precompile::view] fn get_moving_alpha_price(_handle: &mut impl PrecompileHandle, netuid: u16) -> EvmResult { - let price: U96F32 = pallet_subtensor::Pallet::::get_moving_alpha_price(netuid.into()); + let moving_alpha_price: U96F32 = + pallet_subtensor::Pallet::::get_moving_alpha_price(netuid.into()); + let price = moving_alpha_price.saturating_mul(U96F32::from_num(1_000_000_000)); let price: SubstrateBalance = price.saturating_to_num::().into(); - let price_eth = ::BalanceConverter::into_evm_balance(price) + let price_eth = ::BalanceConverter::into_evm_balance(price.into()) .map(|amount| amount.into_u256()) .ok_or(ExitError::InvalidRange)?; From cd2ab8abaa7d9f4fb0c819260a261c68b0302a5d Mon Sep 17 00:00:00 2001 From: open-junius Date: Mon, 17 Nov 2025 14:50:07 +0800 Subject: [PATCH 2/4] fix all wrong price --- precompiles/src/alpha.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/precompiles/src/alpha.rs b/precompiles/src/alpha.rs index 40f85f1dfb..17402ca909 100644 --- a/precompiles/src/alpha.rs +++ b/precompiles/src/alpha.rs @@ -205,7 +205,8 @@ where } } - let price: SubstrateBalance = sum_alpha_price.saturating_to_num::().into(); + let price = sum_alpha_price.saturating_mul(U96F32::from_num(1_000_000_000)); + let price: SubstrateBalance = price.saturating_to_num::().into(); let price_eth = ::BalanceConverter::into_evm_balance(price) .map(|amount| amount.into_u256()) .ok_or(ExitError::InvalidRange)?; From 7052e44f58ed201a6723f082043406918cfeaebd Mon Sep 17 00:00:00 2001 From: open-junius Date: Mon, 17 Nov 2025 14:55:43 +0800 Subject: [PATCH 3/4] bump version --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index f6843c50ee..9ece1dd025 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -220,7 +220,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 346, + spec_version: 347, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, From 8b8b2303d2cb68b69d31d943e34053f1acf96160 Mon Sep 17 00:00:00 2001 From: open-junius Date: Mon, 17 Nov 2025 18:36:23 +0800 Subject: [PATCH 4/4] remove unnecessary into --- precompiles/src/alpha.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/precompiles/src/alpha.rs b/precompiles/src/alpha.rs index 17402ca909..8dcea0e829 100644 --- a/precompiles/src/alpha.rs +++ b/precompiles/src/alpha.rs @@ -39,7 +39,7 @@ where as SwapHandler>::current_alpha_price(netuid.into()); let price = current_alpha_price.saturating_mul(U96F32::from_num(1_000_000_000)); let price: SubstrateBalance = price.saturating_to_num::().into(); - let price_eth = ::BalanceConverter::into_evm_balance(price.into()) + let price_eth = ::BalanceConverter::into_evm_balance(price) .map(|amount| amount.into_u256()) .ok_or(ExitError::InvalidRange)?; @@ -53,7 +53,7 @@ where pallet_subtensor::Pallet::::get_moving_alpha_price(netuid.into()); let price = moving_alpha_price.saturating_mul(U96F32::from_num(1_000_000_000)); let price: SubstrateBalance = price.saturating_to_num::().into(); - let price_eth = ::BalanceConverter::into_evm_balance(price.into()) + let price_eth = ::BalanceConverter::into_evm_balance(price) .map(|amount| amount.into_u256()) .ok_or(ExitError::InvalidRange)?;