mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-01 12:27:56 +00:00
Fix fungible unbalanced trait (#12569)
* Fix fungible unbalanced trait * Add simple decrease_balance test Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix decrease_balance_at_most * Fix decrease_balance_at_most in fungibles * Rename free_balanceto balance_on_free * Use reducible_balance instead of balance_on_free Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
@@ -164,7 +164,7 @@ pub trait Unbalanced<AccountId>: Inspect<AccountId> {
|
||||
amount: Self::Balance,
|
||||
) -> Result<Self::Balance, DispatchError> {
|
||||
let old_balance = Self::balance(who);
|
||||
let (mut new_balance, mut amount) = if old_balance < amount {
|
||||
let (mut new_balance, mut amount) = if Self::reducible_balance(who, false) < amount {
|
||||
return Err(TokenError::NoFunds.into())
|
||||
} else {
|
||||
(old_balance - amount, amount)
|
||||
@@ -186,8 +186,9 @@ pub trait Unbalanced<AccountId>: Inspect<AccountId> {
|
||||
/// Return the imbalance by which the account was reduced.
|
||||
fn decrease_balance_at_most(who: &AccountId, amount: Self::Balance) -> Self::Balance {
|
||||
let old_balance = Self::balance(who);
|
||||
let (mut new_balance, mut amount) = if old_balance < amount {
|
||||
(Zero::zero(), old_balance)
|
||||
let old_free_balance = Self::reducible_balance(who, false);
|
||||
let (mut new_balance, mut amount) = if old_free_balance < amount {
|
||||
(old_balance.saturating_sub(old_free_balance), old_free_balance)
|
||||
} else {
|
||||
(old_balance - amount, amount)
|
||||
};
|
||||
|
||||
@@ -185,7 +185,7 @@ pub trait Unbalanced<AccountId>: Inspect<AccountId> {
|
||||
amount: Self::Balance,
|
||||
) -> Result<Self::Balance, DispatchError> {
|
||||
let old_balance = Self::balance(asset, who);
|
||||
let (mut new_balance, mut amount) = if old_balance < amount {
|
||||
let (mut new_balance, mut amount) = if Self::reducible_balance(asset, who, false) < amount {
|
||||
return Err(TokenError::NoFunds.into())
|
||||
} else {
|
||||
(old_balance - amount, amount)
|
||||
@@ -211,8 +211,9 @@ pub trait Unbalanced<AccountId>: Inspect<AccountId> {
|
||||
amount: Self::Balance,
|
||||
) -> Self::Balance {
|
||||
let old_balance = Self::balance(asset, who);
|
||||
let (mut new_balance, mut amount) = if old_balance < amount {
|
||||
(Zero::zero(), old_balance)
|
||||
let old_free_balance = Self::reducible_balance(asset, who, false);
|
||||
let (mut new_balance, mut amount) = if old_free_balance < amount {
|
||||
(old_balance.saturating_sub(old_free_balance), old_free_balance)
|
||||
} else {
|
||||
(old_balance - amount, amount)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user