diff --git a/pallets/duniter-account/src/types.rs b/pallets/duniter-account/src/types.rs index d967ddad5bc825ad9fd285e0e9e439235bd96985..6632b18b94cf057aea095e260e6284bfe2930fab 100644 --- a/pallets/duniter-account/src/types.rs +++ b/pallets/duniter-account/src/types.rs @@ -32,13 +32,17 @@ pub struct AccountData<Balance> { pub(super) reserved: Balance, // see Substrate AccountData fee_frozen: Balance, + // Workaround because ExtraFlags is not public + // Refactoration is needed + flag: pallet_balances::AccountData<Balance>, } -impl<Balance: Zero> AccountData<Balance> { +impl<Balance: Zero + Clone> AccountData<Balance> { pub fn set_balances(&mut self, new_balances: pallet_balances::AccountData<Balance>) { - self.free = new_balances.free; - self.reserved = new_balances.reserved; - self.fee_frozen = new_balances.frozen; + self.free = new_balances.free.clone(); + self.reserved = new_balances.reserved.clone(); + self.fee_frozen = new_balances.frozen.clone(); + self.flag = new_balances; } pub fn was_providing(&self) -> bool { !self.free.is_zero() || !self.reserved.is_zero() @@ -53,7 +57,7 @@ impl<Balance: Zero + sp_std::default::Default> From<AccountData<Balance>> free: account_data.free, reserved: account_data.reserved, frozen: account_data.fee_frozen, - ..Default::default() + flags: account_data.flag.flags, } } }