11use codec:: { Decode , DecodeWithMemTracking , Encode , MaxEncodedLen } ;
22use frame_support:: { pallet_prelude:: DispatchError , traits:: GetCallMetadata } ;
33use scale_info:: TypeInfo ;
4+ use serde:: { Deserialize , Serialize } ;
45use sp_std:: collections:: btree_map:: BTreeMap ;
56
67/// Resolves the optional identifier within which a rate limit applies and can optionally adjust
@@ -31,8 +32,9 @@ pub trait RateLimitUsageResolver<Origin, Call, Usage> {
3132}
3233
3334/// Identifies a runtime call by pallet and extrinsic indices.
34- #[ cfg_attr( feature = "std" , derive( serde:: Deserialize , serde:: Serialize ) ) ]
3535#[ derive(
36+ Serialize ,
37+ Deserialize ,
3638 Clone ,
3739 Copy ,
3840 PartialEq ,
@@ -101,8 +103,9 @@ impl TransactionIdentifier {
101103}
102104
103105/// Policy describing the block span enforced by a rate limit.
104- #[ cfg_attr( feature = "std" , derive( serde:: Deserialize , serde:: Serialize ) ) ]
105106#[ derive(
107+ Serialize ,
108+ Deserialize ,
106109 Clone ,
107110 Copy ,
108111 PartialEq ,
@@ -125,14 +128,21 @@ pub enum RateLimitKind<BlockNumber> {
125128///
126129/// The configuration is mutually exclusive: either the call is globally limited or it stores a set
127130/// of per-scope spans.
128- #[ cfg_attr( feature = "std" , derive( serde:: Deserialize , serde:: Serialize ) ) ]
129- #[ cfg_attr(
130- feature = "std" ,
131- serde(
132- bound = "Scope: Ord + serde::Serialize + serde::de::DeserializeOwned, BlockNumber: serde::Serialize + serde::de::DeserializeOwned"
133- )
131+ #[ derive(
132+ Serialize ,
133+ Deserialize ,
134+ Clone ,
135+ PartialEq ,
136+ Eq ,
137+ Encode ,
138+ Decode ,
139+ DecodeWithMemTracking ,
140+ TypeInfo ,
141+ Debug ,
142+ ) ]
143+ #[ serde(
144+ bound = "Scope: Ord + serde::Serialize + serde::de::DeserializeOwned, BlockNumber: serde::Serialize + serde::de::DeserializeOwned"
134145) ]
135- #[ derive( Clone , PartialEq , Eq , Encode , Decode , DecodeWithMemTracking , TypeInfo , Debug ) ]
136146pub enum RateLimit < Scope , BlockNumber > {
137147 /// Global span applied to every invocation.
138148 Global ( RateLimitKind < BlockNumber > ) ,
0 commit comments