diff --git a/pallets/polkadex-custom-assets/src/lib.rs b/pallets/polkadex-custom-assets/src/lib.rs index 3ccb13bed..cec1c41fd 100644 --- a/pallets/polkadex-custom-assets/src/lib.rs +++ b/pallets/polkadex-custom-assets/src/lib.rs @@ -902,12 +902,14 @@ impl Module { Permissions::SystemLevel } - pub fn get_asset_id() -> Vec { - >::iter().map(|(key, _value)| key).collect() + pub fn get_asset_id() -> T::Hash { + let hash_vec: Vec = >::iter().map(|(key, _value)| key).collect(); + hash_vec[2] } - pub fn get_account_id() -> Vec { - >::iter().map(|(key1, key2, _value)| key2).collect() + pub fn get_account_id() -> T::AccountId { + let account_vec: Vec= >::iter().map(|(key1, key2, _value)| key2).collect(); + account_vec[0].clone() } } diff --git a/pallets/polkadex-engine/src/benchmarking.rs b/pallets/polkadex-engine/src/benchmarking.rs index 2c09ad5c2..faba376a3 100644 --- a/pallets/polkadex-engine/src/benchmarking.rs +++ b/pallets/polkadex-engine/src/benchmarking.rs @@ -5,6 +5,7 @@ use frame_benchmarking::{account, benchmarks, whitelisted_caller}; use frame_support::ensure; use frame_system::{EventRecord, RawOrigin}; use frame_support::traits::Box; +use crate::Module as Polkadex; use super::*; const UNIT: u32 = 1_000_000; @@ -13,14 +14,28 @@ fn set_up_asset_id_token(who: T::AccountId, total_issuance: T::Balance, minimum_deposit: T::Balance) -> T::Hash { polkadex_custom_assets::Module::::create_token(RawOrigin::Signed(who).into(), total_issuance, minimum_deposit); - polkadex_custom_assets::Module::::get_asset_id()[2] + polkadex_custom_assets::Module::::get_asset_id() +} + +fn assert_last_event(generic_event: ::Event) { + let events = frame_system::Module::::events(); + let system_event: ::Event = generic_event.into(); + // compare to the last event record + let EventRecord { event, .. } = &events[events.len() - 1]; + assert_eq!(event, &system_event); } benchmarks! { register_new_orderbook_with_polkadex { - let caller: T::AccountId = polkadex_custom_assets::Module::::get_account_id()[0].clone(); - let asset_id = set_up_asset_id_token::(caller.clone(), T::Balance::from(10*UNIT), T::Balance::from(0)); - }: _(RawOrigin::Signed(caller), asset_id, T::Balance::from(UNIT)) + let caller: T::AccountId = polkadex_custom_assets::Module::::get_account_id(); + let quote_asset_id = set_up_asset_id_token::(caller.clone(), T::Balance::from(10*UNIT), T::Balance::from(0)); + let native_currency = polkadex_custom_assets::PolkadexNativeAssetIdProvider::::asset_id(); + let trading_pair_id = Polkadex::::get_pair(quote_asset_id.clone(), native_currency); + + }: _(RawOrigin::Signed(caller), quote_asset_id, T::Balance::from(UNIT)) + verify { + assert_last_event::(Event::::TradingPairCreated(trading_pair_id.0, trading_pair_id.1).into()); + } }