From 6d93d7bb7fc51a679b7a17bebe40c7b12ece7fc8 Mon Sep 17 00:00:00 2001 From: Liam Aharon Date: Wed, 12 Apr 2023 00:17:25 +1000 Subject: [PATCH] Fix fungible and fungibles set_balance return value (#13851) * Fix fungible set_balance return value * fix fungibles set_balance return value --- .../frame/support/src/traits/tokens/fungible/regular.rs | 4 ++-- .../frame/support/src/traits/tokens/fungibles/regular.rs | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/substrate/frame/support/src/traits/tokens/fungible/regular.rs b/substrate/frame/support/src/traits/tokens/fungible/regular.rs index 574392cac8..5a201b33b7 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/regular.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/regular.rs @@ -327,9 +327,9 @@ pub trait Mutate: Inspect + Unbalanced { fn set_balance(who: &AccountId, amount: Self::Balance) -> Self::Balance { let b = Self::balance(who); if b > amount { - Self::burn_from(who, b - amount, BestEffort, Force).map(|d| amount.saturating_sub(d)) + Self::burn_from(who, b - amount, BestEffort, Force).map(|d| b.saturating_sub(d)) } else { - Self::mint_into(who, amount - b).map(|d| amount.saturating_add(d)) + Self::mint_into(who, amount - b).map(|d| b.saturating_add(d)) } .unwrap_or(b) } diff --git a/substrate/frame/support/src/traits/tokens/fungibles/regular.rs b/substrate/frame/support/src/traits/tokens/fungibles/regular.rs index 03c1498801..27d1a50b34 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles/regular.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles/regular.rs @@ -365,10 +365,9 @@ pub trait Mutate: Inspect + Unbalanced { fn set_balance(asset: Self::AssetId, who: &AccountId, amount: Self::Balance) -> Self::Balance { let b = Self::balance(asset, who); if b > amount { - Self::burn_from(asset, who, b - amount, BestEffort, Force) - .map(|d| amount.saturating_sub(d)) + Self::burn_from(asset, who, b - amount, BestEffort, Force).map(|d| b.saturating_sub(d)) } else { - Self::mint_into(asset, who, amount - b).map(|d| amount.saturating_add(d)) + Self::mint_into(asset, who, amount - b).map(|d| b.saturating_add(d)) } .unwrap_or(b) }