From 13ab4150524c95d9ca74f5f87ebe3aa30a27a72a Mon Sep 17 00:00:00 2001
From: bgallois <benjamin@gallois.cc>
Date: Wed, 31 May 2023 23:12:16 +0200
Subject: [PATCH] workaround pallet_duniter_account

Workaround to be able to pass https://github.com/paritytech/substrate/blob/6ef184e33f6ce0f56999ae84b212ea6148c0624d/frame/balances/src/benchmarking.rs#L271 in the benchmark.
ExtraFlags is private and Default is always new_logic not suitable for the benchmark.
---
 pallets/duniter-account/src/types.rs | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/pallets/duniter-account/src/types.rs b/pallets/duniter-account/src/types.rs
index d967ddad5..6632b18b9 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,
         }
     }
 }
-- 
GitLab