diff --git a/pallets/flexible-fee/src/lib.rs b/pallets/flexible-fee/src/lib.rs index 00447e08f1..01ffee68ed 100644 --- a/pallets/flexible-fee/src/lib.rs +++ b/pallets/flexible-fee/src/lib.rs @@ -55,6 +55,8 @@ mod mock; mod tests; mod weights; +const MAX_ORDER_LIST_LEN: u32 = 20; + #[frame_support::pallet] pub mod pallet { use super::*; @@ -149,6 +151,7 @@ pub mod pallet { #[pallet::error] pub enum Error { NotEnoughBalance, + ExceedMaxListLength, } #[pallet::call] @@ -163,6 +166,11 @@ pub mod pallet { let who = ensure_signed(origin)?; if let Some(mut asset_order_list) = asset_order_list_vec { + ensure!( + (asset_order_list.len()) as u32 <= MAX_ORDER_LIST_LEN, + Error::::ExceedMaxListLength + ); + asset_order_list.insert(0, T::NativeCurrencyId::get()); asset_order_list.dedup(); UserFeeChargeOrderList::::insert(&who, asset_order_list);