@@ -3,7 +3,7 @@ use rayon::prelude::*;
33#[ cfg( feature = "serde" ) ]
44use serde:: { Deserialize , Serialize } ;
55
6- use codec:: { Decode , Encode , MaxEncodedLen } ;
6+ use codec:: { Decode , DecodeWithMemTracking , Encode , MaxEncodedLen } ;
77use scale_info:: TypeInfo ;
88
99use ark_ec:: CurveConfig ;
@@ -33,7 +33,7 @@ pub trait AccountStateUpdate {
3333 fn root_block ( & self ) -> BlockNumber ;
3434}
3535
36- #[ derive( Clone , Debug , Encode , Decode , PartialEq , Eq ) ]
36+ #[ derive( Clone , Debug , Encode , Decode , DecodeWithMemTracking , PartialEq , Eq ) ]
3737#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
3838#[ cfg_attr( feature = "sqlx" , derive( sqlx:: FromRow ) ) ]
3939pub struct AccountState {
@@ -100,6 +100,7 @@ impl TryFrom<BPAccountState> for AccountState {
100100 MaxEncodedLen ,
101101 Encode ,
102102 Decode ,
103+ DecodeWithMemTracking ,
103104 TypeInfo ,
104105 Debug ,
105106 PartialEq ,
@@ -121,7 +122,18 @@ impl AccountStateNullifier {
121122 }
122123}
123124
124- #[ derive( Copy , Clone , MaxEncodedLen , Encode , Decode , TypeInfo , Debug , PartialEq , Eq ) ]
125+ #[ derive(
126+ Copy ,
127+ Clone ,
128+ MaxEncodedLen ,
129+ Encode ,
130+ Decode ,
131+ DecodeWithMemTracking ,
132+ TypeInfo ,
133+ Debug ,
134+ PartialEq ,
135+ Eq ,
136+ ) ]
125137#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
126138#[ cfg_attr( feature = "utoipa" , derive( utoipa:: ToSchema ) ) ]
127139pub struct AccountStateCommitment ( CompressedAffine ) ;
@@ -190,7 +202,7 @@ impl AccountAssetStateChange {
190202 }
191203}
192204
193- #[ derive( Clone , Debug , Encode , Decode ) ]
205+ #[ derive( Clone , Debug , Encode , Decode , DecodeWithMemTracking ) ]
194206#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
195207pub struct AccountAssetState {
196208 pub current_state : AccountState ,
@@ -337,7 +349,7 @@ impl AccountAssetState {
337349/// Batched account asset registration proof.
338350///
339351/// This is used to register multiple account/asset pairs in a single proof.
340- #[ derive( Clone , Encode , Decode , Debug , TypeInfo , PartialEq , Eq ) ]
352+ #[ derive( Clone , Encode , Decode , DecodeWithMemTracking , Debug , TypeInfo , PartialEq , Eq ) ]
341353#[ scale_info( skip_type_params( T ) ) ]
342354pub struct BatchedAccountAssetRegistrationProof < T : DartLimits = ( ) > {
343355 pub proofs : BoundedVec < AccountAssetRegistrationProof , T :: MaxAccountAssetRegProofs > ,
@@ -513,7 +525,7 @@ impl<T: DartLimits> BatchedAccountAssetRegistrationProof<T> {
513525}
514526
515527/// Account asset registration proof. Report section 5.1.3 "Account Registration".
516- #[ derive( Clone , Encode , Decode , Debug , TypeInfo , PartialEq , Eq ) ]
528+ #[ derive( Clone , Encode , Decode , DecodeWithMemTracking , Debug , TypeInfo , PartialEq , Eq ) ]
517529pub struct AccountAssetRegistrationProof {
518530 pub account : AccountPublicKey ,
519531 pub asset_id : AssetId ,
0 commit comments