diff --git a/node/rpc/src/lib.rs b/node/rpc/src/lib.rs index c80f9bfe7a..22fb09afa2 100644 --- a/node/rpc/src/lib.rs +++ b/node/rpc/src/lib.rs @@ -84,7 +84,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: StablePoolRuntimeApi, @@ -126,7 +126,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/rpc/runtime-api/src/lib.rs b/pallets/farming/rpc/runtime-api/src/lib.rs index 245707f798..ed06c7cd20 100644 --- a/pallets/farming/rpc/runtime-api/src/lib.rs +++ b/pallets/farming/rpc/runtime-api/src/lib.rs @@ -18,15 +18,16 @@ #![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; 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 9a5406c5c1..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, @@ -32,7 +32,7 @@ use sp_rpc::number::NumberOrHex; use sp_runtime::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, 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/gauge.rs b/pallets/farming/src/gauge.rs index 1ceba4eaba..74a95414ac 100644 --- a/pallets/farming/src/gauge.rs +++ b/pallets/farming/src/gauge.rs @@ -405,12 +405,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 { @@ -446,9 +446,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 6c163674e3..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::{ @@ -62,6 +62,9 @@ pub type CurrencyIdOf = <::MultiCurrency as MultiCurrency< type BalanceOf = <::MultiCurrency as MultiCurrency>>::Balance; +use parity_scale_codec::FullCodec; +use sp_std::fmt::Debug; + #[frame_support::pallet] pub mod pallet { use super::*; @@ -74,7 +77,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 + + Default; + + type MultiCurrency: MultiCurrency, CurrencyId = Self::CurrencyId>; type ControlOrigin: EnsureOrigin; diff --git a/pallets/farming/src/mock.rs b/pallets/farming/src/mock.rs index 863ac0e91e..ce68ef8a51 100644 --- a/pallets/farming/src/mock.rs +++ b/pallets/farming/src/mock.rs @@ -159,6 +159,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 88d55884a3..9c1a1216fa 100644 --- a/pallets/system-staking/src/mock.rs +++ b/pallets/system-staking/src/mock.rs @@ -348,6 +348,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 9c1604f061..43b36e536c 100644 --- a/runtime/bifrost-kusama/src/lib.rs +++ b/runtime/bifrost-kusama/src/lib.rs @@ -1406,6 +1406,7 @@ parameter_types! { impl bifrost_farming::Config for Runtime { type RuntimeEvent = RuntimeEvent; type MultiCurrency = Currencies; + type CurrencyId = CurrencyId; type ControlOrigin = TechAdminOrCouncil; type TreasuryAccount = BifrostTreasuryAccount; type Keeper = FarmingKeeperPalletId; @@ -2318,7 +2319,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 af9afe2b98..77c211e5f5 100644 --- a/runtime/bifrost-polkadot/src/lib.rs +++ b/runtime/bifrost-polkadot/src/lib.rs @@ -1235,6 +1235,7 @@ parameter_types! { impl bifrost_farming::Config for Runtime { type RuntimeEvent = RuntimeEvent; + type CurrencyId = CurrencyId; type MultiCurrency = Currencies; type ControlOrigin = TechAdminOrCouncil; type TreasuryAccount = BifrostTreasuryAccount; @@ -2044,7 +2045,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()) }