From f891e8b4925858fe402215e81397007d63693a41 Mon Sep 17 00:00:00 2001 From: cr4pt0 Date: Thu, 13 Apr 2023 20:40:33 +0100 Subject: [PATCH 1/8] introduce T::Currency --- pallets/farming/src/gauge.rs | 8 ++++---- pallets/farming/src/lib.rs | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pallets/farming/src/gauge.rs b/pallets/farming/src/gauge.rs index 97c8e4d5ec..633223fab2 100644 --- a/pallets/farming/src/gauge.rs +++ b/pallets/farming/src/gauge.rs @@ -381,12 +381,12 @@ where pub fn get_farming_rewards( who: &T::AccountId, pid: PoolId, - ) -> Result)>, DispatchError> { + ) -> Result)>, DispatchError> { let share_info = SharesAndWithdrawnRewards::::get(pid, who).ok_or(Error::::ShareInfoNotExists)?; let pool_info = PoolInfos::::get(pid).ok_or(Error::::PoolDoesNotExist)?; let total_shares = U256::from(pool_info.total_shares.to_owned().saturated_into::()); - let mut result_vec = Vec::<(CurrencyId, BalanceOf)>::new(); + let mut result_vec = Vec::<(T::CurrencyId, BalanceOf)>::new(); pool_info.rewards.iter().try_for_each( |(reward_currency, (total_reward, total_withdrawn_reward))| -> DispatchResult { @@ -421,9 +421,9 @@ where pub fn get_gauge_rewards( who: &T::AccountId, pid: PoolId, - ) -> Result)>, DispatchError> { + ) -> Result)>, DispatchError> { let pool_info = PoolInfos::::get(pid).ok_or(Error::::PoolDoesNotExist)?; - let mut result_vec = Vec::<(CurrencyId, BalanceOf)>::new(); + let mut result_vec = Vec::<(T::CurrencyId, BalanceOf)>::new(); match pool_info.gauge { None => (), diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index 29f3ea48af..c9634d91e6 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -63,6 +63,9 @@ pub type CurrencyIdOf = <::MultiCurrency as MultiCurrency< type BalanceOf = <::MultiCurrency as MultiCurrency>>::Balance; +use codec::FullCodec; +use sp_std::fmt::Debug; + #[frame_support::pallet] pub mod pallet { use super::*; @@ -76,7 +79,18 @@ pub mod pallet { pub trait Config: frame_system::Config { type RuntimeEvent: From> + IsType<::RuntimeEvent>; - type MultiCurrency: MultiCurrency, CurrencyId = CurrencyId>; + type CurrencyId: FullCodec + + Eq + + PartialEq + + Copy + + MaybeSerializeDeserialize + + Debug + + scale_info::TypeInfo + + MaxEncodedLen + + Ord + + std::default::Default; + + type MultiCurrency: MultiCurrency, CurrencyId = Self::CurrencyId>; type ControlOrigin: EnsureOrigin; From d2accda631c59f1faddbd616adea1747e707e23e Mon Sep 17 00:00:00 2001 From: cr4pt0 Date: Thu, 13 Apr 2023 20:43:34 +0100 Subject: [PATCH 2/8] replace std::default::Default to Default in trait bound --- pallets/farming/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index c9634d91e6..11504ce5cd 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -88,7 +88,7 @@ pub mod pallet { + scale_info::TypeInfo + MaxEncodedLen + Ord - + std::default::Default; + + Default; type MultiCurrency: MultiCurrency, CurrencyId = Self::CurrencyId>; From 6744933933704e251496c9dbf0674144ac01bbea Mon Sep 17 00:00:00 2001 From: cr4pt0 Date: Thu, 13 Apr 2023 20:45:34 +0100 Subject: [PATCH 3/8] cargo fmt --all --- pallets/farming/src/lib.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index 11504ce5cd..694ed7f66e 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -80,15 +80,15 @@ pub mod pallet { type RuntimeEvent: From> + IsType<::RuntimeEvent>; type CurrencyId: FullCodec - + Eq - + PartialEq - + Copy - + MaybeSerializeDeserialize - + Debug - + scale_info::TypeInfo - + MaxEncodedLen - + Ord - + Default; + + Eq + + PartialEq + + Copy + + MaybeSerializeDeserialize + + Debug + + scale_info::TypeInfo + + MaxEncodedLen + + Ord + + Default; type MultiCurrency: MultiCurrency, CurrencyId = Self::CurrencyId>; From 6bac767b3e95aa145fce7cd4f01166497f487487 Mon Sep 17 00:00:00 2001 From: cr4pt0 Date: Thu, 13 Apr 2023 20:57:09 +0100 Subject: [PATCH 4/8] introduce one more generic type to rpc --- pallets/farming/rpc/runtime-api/src/lib.rs | 5 +++-- pallets/farming/rpc/src/lib.rs | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pallets/farming/rpc/runtime-api/src/lib.rs b/pallets/farming/rpc/runtime-api/src/lib.rs index 34188be13a..12965a6d7d 100644 --- a/pallets/farming/rpc/runtime-api/src/lib.rs +++ b/pallets/farming/rpc/runtime-api/src/lib.rs @@ -19,14 +19,15 @@ #![cfg_attr(not(feature = "std"), no_std)] use codec::Codec; -use node_primitives::{Balance, CurrencyId}; +use node_primitives::Balance; use sp_api::decl_runtime_apis; use sp_std::vec::Vec; decl_runtime_apis! { - pub trait FarmingRuntimeApi where + pub trait FarmingRuntimeApi where AccountId: Codec, PoolId: Codec, + CurrencyId: Codec, { fn get_farming_rewards( who: AccountId, diff --git a/pallets/farming/rpc/src/lib.rs b/pallets/farming/rpc/src/lib.rs index ffcb4f4207..cb19707095 100644 --- a/pallets/farming/rpc/src/lib.rs +++ b/pallets/farming/rpc/src/lib.rs @@ -25,14 +25,14 @@ use jsonrpsee::{ proc_macros::rpc, types::error::{CallError, ErrorCode, ErrorObject}, }; -use node_primitives::{Balance, CurrencyId}; +use node_primitives::Balance; use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; use sp_rpc::number::NumberOrHex; use sp_runtime::{generic::BlockId, traits::Block as BlockT}; #[rpc(client, server)] -pub trait FarmingRpcApi { +pub trait FarmingRpcApi { /// rpc method for getting farming rewards #[method(name = "farming_getFarmingRewards")] fn get_farming_rewards( @@ -65,14 +65,15 @@ impl FarmingRpc { } #[async_trait] -impl FarmingRpcApiServer<::Hash, AccountId, PoolId> - for FarmingRpc +impl + FarmingRpcApiServer<::Hash, AccountId, PoolId, CurrencyId> for FarmingRpc where Block: BlockT, C: Send + Sync + 'static + ProvideRuntimeApi + HeaderBackend, - C::Api: FarmingRuntimeApi, + C::Api: FarmingRuntimeApi, AccountId: Codec, PoolId: Codec, + CurrencyId: Codec, { fn get_farming_rewards( &self, From 2a206232f1166000515487512c9a2a2d7de37dc4 Mon Sep 17 00:00:00 2001 From: cr4pt0 Date: Mon, 17 Apr 2023 23:27:06 +0100 Subject: [PATCH 5/8] update bifrost codebase and adapt for new farming new associated type --- node/rpc/src/lib.rs | 4 ++-- pallets/farming/src/mock.rs | 1 + pallets/system-staking/src/mock.rs | 1 + runtime/bifrost-kusama/src/lib.rs | 3 ++- runtime/bifrost-polkadot/src/lib.rs | 3 ++- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/node/rpc/src/lib.rs b/node/rpc/src/lib.rs index f2f59072f0..e7b44b73c3 100644 --- a/node/rpc/src/lib.rs +++ b/node/rpc/src/lib.rs @@ -82,7 +82,7 @@ where + 'static, C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: FarmingRuntimeApi, + C::Api: FarmingRuntimeApi, C::Api: FeeRuntimeApi, C::Api: SalpRuntimeApi, C::Api: LiquidityMiningRuntimeApi, @@ -122,7 +122,7 @@ where + BlockIdTo, C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: FarmingRuntimeApi, + C::Api: FarmingRuntimeApi, C::Api: FeeRuntimeApi, C::Api: SalpRuntimeApi, C::Api: VeMintingRuntimeApi, diff --git a/pallets/farming/src/mock.rs b/pallets/farming/src/mock.rs index d599ec0d2b..ae725aaf59 100644 --- a/pallets/farming/src/mock.rs +++ b/pallets/farming/src/mock.rs @@ -161,6 +161,7 @@ ord_parameter_types! { impl bifrost_farming::Config for Runtime { type RuntimeEvent = RuntimeEvent; + type CurrencyId = CurrencyId; type MultiCurrency = Currencies; type ControlOrigin = EnsureSignedBy; type TreasuryAccount = TreasuryAccount; diff --git a/pallets/system-staking/src/mock.rs b/pallets/system-staking/src/mock.rs index 8bd375685e..5f7ef18a7d 100644 --- a/pallets/system-staking/src/mock.rs +++ b/pallets/system-staking/src/mock.rs @@ -301,6 +301,7 @@ ord_parameter_types! { impl bifrost_farming::Config for Runtime { type RuntimeEvent = RuntimeEvent; + type CurrencyId = CurrencyId; type MultiCurrency = Currencies; type ControlOrigin = EnsureSignedBy; type TreasuryAccount = TreasuryAccount; diff --git a/runtime/bifrost-kusama/src/lib.rs b/runtime/bifrost-kusama/src/lib.rs index 684ed61c02..6304b4ef9d 100644 --- a/runtime/bifrost-kusama/src/lib.rs +++ b/runtime/bifrost-kusama/src/lib.rs @@ -1442,6 +1442,7 @@ impl bifrost_vstoken_conversion::Config for Runtime { impl bifrost_farming::Config for Runtime { type RuntimeEvent = RuntimeEvent; type MultiCurrency = Currencies; + type CurrencyId = CurrencyId; type ControlOrigin = EitherOfDiverse; type TreasuryAccount = BifrostTreasuryAccount; type Keeper = FarmingKeeperPalletId; @@ -2179,7 +2180,7 @@ impl_runtime_apis! { } } - impl bifrost_farming_rpc_runtime_api::FarmingRuntimeApi for Runtime { + impl bifrost_farming_rpc_runtime_api::FarmingRuntimeApi for Runtime { fn get_farming_rewards(who: AccountId, pid: PoolId) -> Vec<(CurrencyId, Balance)> { Farming::get_farming_rewards(&who, pid).unwrap_or(Vec::new()) } diff --git a/runtime/bifrost-polkadot/src/lib.rs b/runtime/bifrost-polkadot/src/lib.rs index 0b23ebacd1..85014dd240 100644 --- a/runtime/bifrost-polkadot/src/lib.rs +++ b/runtime/bifrost-polkadot/src/lib.rs @@ -1219,6 +1219,7 @@ impl bifrost_vstoken_conversion::Config for Runtime { impl bifrost_farming::Config for Runtime { type RuntimeEvent = RuntimeEvent; + type CurrencyId = CurrencyId; type MultiCurrency = Currencies; type ControlOrigin = EitherOfDiverse; type TreasuryAccount = BifrostTreasuryAccount; @@ -1844,7 +1845,7 @@ impl_runtime_apis! { } } - impl bifrost_farming_rpc_runtime_api::FarmingRuntimeApi for Runtime { + impl bifrost_farming_rpc_runtime_api::FarmingRuntimeApi for Runtime { fn get_farming_rewards(who: AccountId, pid: PoolId) -> Vec<(CurrencyId, Balance)> { Farming::get_farming_rewards(&who, pid).unwrap_or(Vec::new()) } From afba88f14843de4e908a7d9d02d9ebad55327069 Mon Sep 17 00:00:00 2001 From: Gianfranco Tasteri Date: Mon, 6 Nov 2023 11:59:48 -0300 Subject: [PATCH 6/8] fix missing CurrencyId in trait declaration --- node/service/src/client_kusama.rs | 4 ++-- node/service/src/client_polkadot.rs | 6 +++--- pallets/farming/src/lib.rs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/node/service/src/client_kusama.rs b/node/service/src/client_kusama.rs index 7619514e9e..6b997f0f6d 100644 --- a/node/service/src/client_kusama.rs +++ b/node/service/src/client_kusama.rs @@ -85,7 +85,7 @@ pub trait RuntimeApiCollection: + sp_session::SessionKeys + cumulus_primitives_core::CollectCollationInfo + bifrost_flexible_fee_rpc_runtime_api::FlexibleFeeRuntimeApi - + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + bifrost_liquidity_mining_rpc_runtime_api::LiquidityMiningRuntimeApi + bifrost_salp_rpc_runtime_api::SalpRuntimeApi + zenlink_protocol_runtime_api::ZenlinkProtocolApi @@ -108,7 +108,7 @@ where + sp_session::SessionKeys + cumulus_primitives_core::CollectCollationInfo + bifrost_flexible_fee_rpc_runtime_api::FlexibleFeeRuntimeApi - + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + bifrost_liquidity_mining_rpc_runtime_api::LiquidityMiningRuntimeApi< Block, AccountId, diff --git a/node/service/src/client_polkadot.rs b/node/service/src/client_polkadot.rs index 96a1c7511d..7649150f59 100644 --- a/node/service/src/client_polkadot.rs +++ b/node/service/src/client_polkadot.rs @@ -20,7 +20,7 @@ use std::sync::Arc; use node_primitives::{ - AccountId, Balance, Block, BlockNumber, Hash, Header, Nonce, ParaId as BifrostParaId, PoolId, + AccountId, Balance, Block, BlockNumber,CurrencyId, Hash, Header, Nonce, ParaId as BifrostParaId, PoolId, }; use sc_client_api::{AuxStore, Backend as BackendT, BlockchainEvents, KeyIterator, UsageProvider}; use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; @@ -83,7 +83,7 @@ pub trait RuntimeApiCollection: + sp_session::SessionKeys + cumulus_primitives_core::CollectCollationInfo + bifrost_flexible_fee_rpc_runtime_api::FlexibleFeeRuntimeApi - + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + bifrost_salp_rpc_runtime_api::SalpRuntimeApi + bifrost_ve_minting_rpc_runtime_api::VeMintingRuntimeApi + zenlink_protocol_runtime_api::ZenlinkProtocolApi @@ -105,7 +105,7 @@ where + sp_session::SessionKeys + cumulus_primitives_core::CollectCollationInfo + bifrost_flexible_fee_rpc_runtime_api::FlexibleFeeRuntimeApi - + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + + bifrost_farming_rpc_runtime_api::FarmingRuntimeApi + bifrost_salp_rpc_runtime_api::SalpRuntimeApi + bifrost_ve_minting_rpc_runtime_api::VeMintingRuntimeApi + zenlink_protocol_runtime_api::ZenlinkProtocolApi, diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index 694ed7f66e..06c2e6d75b 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -44,7 +44,7 @@ use frame_support::{ }; use frame_system::pallet_prelude::*; pub use gauge::*; -use node_primitives::{CurrencyId, FarmingInfo, PoolId}; +use node_primitives::{ FarmingInfo, PoolId}; use orml_traits::MultiCurrency; pub use pallet::*; pub use rewards::*; From 3fb6283784a2af894008f79d6e59b6499c9372e8 Mon Sep 17 00:00:00 2001 From: Gianfranco Tasteri Date: Wed, 6 Dec 2023 18:11:59 -0300 Subject: [PATCH 7/8] use parity_scale for FullCodec --- pallets/farming/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index 72056dab7b..a2091a2a0e 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -62,7 +62,7 @@ pub type CurrencyIdOf = <::MultiCurrency as MultiCurrency< type BalanceOf = <::MultiCurrency as MultiCurrency>>::Balance; -use codec::FullCodec; +use parity_scale_codec::FullCodec; use sp_std::fmt::Debug; #[frame_support::pallet] From 618af81c6f05e067fde6abf4656a9568c6ddf699 Mon Sep 17 00:00:00 2001 From: Gianfranco Tasteri Date: Tue, 26 Dec 2023 18:42:26 -0300 Subject: [PATCH 8/8] replace currency id in farming benchmarks --- pallets/farming/rpc/runtime-api/src/lib.rs | 2 +- pallets/farming/rpc/src/lib.rs | 2 +- pallets/farming/src/benchmarking.rs | 159 ++++++++++----------- pallets/farming/src/lib.rs | 2 +- 4 files changed, 82 insertions(+), 83 deletions(-) diff --git a/pallets/farming/rpc/runtime-api/src/lib.rs b/pallets/farming/rpc/runtime-api/src/lib.rs index 94ba453d43..ed06c7cd20 100644 --- a/pallets/farming/rpc/runtime-api/src/lib.rs +++ b/pallets/farming/rpc/runtime-api/src/lib.rs @@ -18,7 +18,7 @@ #![cfg_attr(not(feature = "std"), no_std)] -use bifrost_primitives::{Balance, CurrencyId}; +use bifrost_primitives::Balance; use parity_scale_codec::Codec; use sp_api::decl_runtime_apis; use sp_std::vec::Vec; diff --git a/pallets/farming/rpc/src/lib.rs b/pallets/farming/rpc/src/lib.rs index 0f118f5462..5a02dbbb4c 100644 --- a/pallets/farming/rpc/src/lib.rs +++ b/pallets/farming/rpc/src/lib.rs @@ -19,7 +19,7 @@ use std::{marker::PhantomData, sync::Arc}; pub use bifrost_farming_rpc_runtime_api::{self as runtime_api, FarmingRuntimeApi}; -use bifrost_primitives::{Balance, CurrencyId}; +use bifrost_primitives::Balance; use jsonrpsee::{ core::{async_trait, RpcResult}, proc_macros::rpc, diff --git a/pallets/farming/src/benchmarking.rs b/pallets/farming/src/benchmarking.rs index f2eb7f5757..2022870b4d 100644 --- a/pallets/farming/src/benchmarking.rs +++ b/pallets/farming/src/benchmarking.rs @@ -29,17 +29,16 @@ use crate::{Pallet as Farming, *}; benchmarks! { on_initialize {}:{Farming::::on_initialize(BlockNumberFor::::from(10u32));} - create_farming_pool { let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; }: _(RawOrigin::Root, tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), @@ -49,44 +48,44 @@ benchmarks! { deposit { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::charge(RawOrigin::Signed(caller.clone()).into(), 0, charge_rewards)); }: _(RawOrigin::Signed(caller.clone()), 0, token_amount, None) withdraw { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::charge(RawOrigin::Signed(caller.clone()).into(), 0, charge_rewards)); assert_ok!(Farming::::deposit(RawOrigin::Signed(caller.clone()).into(), 0, token_amount, None)); }: _(RawOrigin::Signed(caller.clone()), 0, None) @@ -94,22 +93,22 @@ benchmarks! { claim { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::charge(RawOrigin::Signed(caller.clone()).into(), 0, charge_rewards)); assert_ok!(Farming::::deposit(RawOrigin::Signed(caller.clone()).into(), 0, token_amount, None)); System::::set_block_number(System::::block_number() + BlockNumberFor::::from(10u32)); @@ -119,22 +118,22 @@ benchmarks! { gauge_withdraw { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::charge(RawOrigin::Signed(caller.clone()).into(), 0, charge_rewards)); assert_ok!(Farming::::deposit(RawOrigin::Signed(caller.clone()).into(), 0, token_amount, Some((BalanceOf::::unique_saturated_from(100u128), BlockNumberFor::::from(100u32))))); // System::::set_block_number(System::::block_number() + BlockNumberFor::::from(10u32)); @@ -143,22 +142,22 @@ benchmarks! { withdraw_claim { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::charge(RawOrigin::Signed(caller.clone()).into(), 0, charge_rewards)); assert_ok!(Farming::::deposit(RawOrigin::Signed(caller.clone()).into(), 0, token_amount, None)); }: _(RawOrigin::Signed(caller.clone()), 0) @@ -166,17 +165,17 @@ benchmarks! { reset_pool { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; let pid = 0; - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), @@ -197,23 +196,23 @@ benchmarks! { Some(BlockNumberFor::::from(7u32)), Some(BlockNumberFor::::from(6u32)), Some(5), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)) + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)) ) force_retire_pool { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; let pid = 0; - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), @@ -230,17 +229,17 @@ benchmarks! { kill_pool { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; let pid = 0; - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), @@ -251,14 +250,14 @@ benchmarks! { edit_pool { let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool(RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards.clone())), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), @@ -275,15 +274,15 @@ benchmarks! { close_pool { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::create_farming_pool(RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), @@ -297,43 +296,43 @@ benchmarks! { charge { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; }: _(RawOrigin::Signed(caller.clone()), 0, charge_rewards) force_gauge_claim { let caller: T::AccountId = whitelisted_caller(); let token_amount = BalanceOf::::unique_saturated_from(1000u128); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let tokens_proportion = vec![(KSM, Perbill::from_percent(100))]; - let basic_rewards = vec![(KSM, token_amount)]; - let gauge_basic_rewards = vec![(KSM, token_amount)]; + let default_currency_id = CurrencyIdOf::::default(); + let tokens_proportion = vec![(default_currency_id, Perbill::from_percent(100))]; + let basic_rewards = vec![(default_currency_id, token_amount)]; + let gauge_basic_rewards = vec![(default_currency_id, token_amount)]; assert_ok!(Farming::::create_farming_pool( RawOrigin::Root.into(), tokens_proportion.clone(), basic_rewards.clone(), - Some((KSM, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), + Some((default_currency_id, BlockNumberFor::::from(1000u32), gauge_basic_rewards)), BalanceOf::::unique_saturated_from(0u128), BlockNumberFor::::from(0u32), BlockNumberFor::::from(7u32), BlockNumberFor::::from(6u32), 5, )); - let charge_rewards = vec![(KSM,BalanceOf::::unique_saturated_from(300000u128))]; + let charge_rewards = vec![(default_currency_id,BalanceOf::::unique_saturated_from(300000u128))]; assert_ok!(Farming::::charge(RawOrigin::Signed(caller.clone()).into(), 0, charge_rewards)); assert_ok!(Farming::::deposit(RawOrigin::Signed(caller.clone()).into(), 0, token_amount, Some((BalanceOf::::unique_saturated_from(100u128), BlockNumberFor::::from(100u32))))); assert_ok!(Farming::::set_retire_limit(RawOrigin::Root.into(), 10)); @@ -364,8 +363,8 @@ benchmarks! { charge_boost { let caller: T::AccountId = whitelisted_caller(); - const KSM: CurrencyId = CurrencyId::Token(TokenSymbol::KSM); - let charge_list = vec![(KSM, BalanceOf::::unique_saturated_from(1_000_0000_000_000u128))]; + let default_currency_id = CurrencyIdOf::::default(); + let charge_list = vec![(default_currency_id, BalanceOf::::unique_saturated_from(1_000_0000_000_000u128))]; assert_ok!(Farming::::add_boost_pool_whitelist(RawOrigin::Root.into(), vec![0])); assert_ok!(Farming::::start_boost_round(RawOrigin::Root.into(), BlockNumberFor::::from(100000u32))); }: _(RawOrigin::Signed(caller.clone()), charge_list) diff --git a/pallets/farming/src/lib.rs b/pallets/farming/src/lib.rs index a2091a2a0e..3628feb7a0 100644 --- a/pallets/farming/src/lib.rs +++ b/pallets/farming/src/lib.rs @@ -34,7 +34,7 @@ pub mod weights; pub use weights::WeightInfo; use crate::boost::*; -use bifrost_primitives::{CurrencyId, FarmingInfo, PoolId}; +use bifrost_primitives::{FarmingInfo, PoolId}; use frame_support::{ pallet_prelude::*, sp_runtime::{