mirror of
https://git.ghostchain.io/proxmio/ghost-node.git
synced 2025-12-27 11:19:57 +00:00
avoid errors from minting sub-existential balance
Signed-off-by: Uncle Stinky <uncle.stinky@ghostchain.io>
This commit is contained in:
@@ -28,7 +28,7 @@ use sp_runtime::{
|
||||
self as rt_offchain, HttpError,
|
||||
storage::{MutateStorageError, StorageRetrievalError, StorageValueRef},
|
||||
},
|
||||
traits::{CheckedSub, BlockNumberProvider, Convert, Saturating},
|
||||
traits::{BlockNumberProvider, Convert, Saturating},
|
||||
};
|
||||
use sp_std::{
|
||||
vec::Vec, prelude::*,
|
||||
@@ -330,6 +330,7 @@ pub mod pallet {
|
||||
UnregisteredClapRemove,
|
||||
TooMuchAuthorities,
|
||||
CouldNotAccumulateCommission,
|
||||
CouldNotAccumulateIncomingImbalance,
|
||||
CouldNotIncreaseGatekeeperAmount,
|
||||
}
|
||||
|
||||
@@ -580,25 +581,21 @@ impl<T: Config> Pallet<T> {
|
||||
.map(|network_data| Perbill::from_parts(network_data.incoming_fee))
|
||||
.unwrap_or_default()
|
||||
.mul_ceil(clap.amount);
|
||||
let final_amount = clap.amount.saturating_sub(commission);
|
||||
|
||||
let final_amount = clap.amount
|
||||
.checked_sub(&commission)
|
||||
.map(|value| T::Currency::minimum_balance()
|
||||
.lt(&value)
|
||||
.then(|| value)
|
||||
)
|
||||
.flatten()
|
||||
.unwrap_or_default();
|
||||
|
||||
let _ = T::NetworkDataHandler::increase_gatekeeper_amount(&clap.network_id, &final_amount)
|
||||
let _ = T::NetworkDataHandler::increase_gatekeeper_amount(&clap.network_id, &clap.amount)
|
||||
.map_err(|_| Error::<T>::CouldNotIncreaseGatekeeperAmount)?;
|
||||
let _ = T::NetworkDataHandler::accumulate_incoming_imbalance(&final_amount)
|
||||
.map_err(|_| Error::<T>::CouldNotAccumulateIncomingImbalance)?;
|
||||
let _ = T::NetworkDataHandler::accumulate_commission(&commission)
|
||||
.map_err(|_| Error::<T>::CouldNotAccumulateCommission)?;
|
||||
|
||||
T::Currency::mint_into(
|
||||
&clap.receiver,
|
||||
final_amount
|
||||
)?;
|
||||
if final_amount > T::Currency::minimum_balance() {
|
||||
T::Currency::mint_into(
|
||||
&clap.receiver,
|
||||
final_amount
|
||||
)?;
|
||||
}
|
||||
|
||||
*is_applaused = true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user