mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 18:07:58 +00:00
NIS should retain funds in reserve (#12928)
* Keep funds with receipt holder * Counterpart is optional * Use named reserves * Tests * Benchmarks * Fixes * Update frame/nis/src/lib.rs Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> * Update frame/nis/src/lib.rs Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Update frame/nis/src/tests.rs * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/nis/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Update frame/nis/src/lib.rs * Formatting Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
@@ -78,6 +78,7 @@ pub trait Mutate<AccountId>: Inspect<AccountId> {
|
||||
/// returned and nothing is changed. If successful, the amount of tokens reduced is returned.
|
||||
fn burn_from(who: &AccountId, amount: Self::Balance) -> Result<Self::Balance, DispatchError>;
|
||||
|
||||
// TODO: Remove.
|
||||
/// Attempt to reduce the balance of `who` by as much as possible up to `amount`, and possibly
|
||||
/// slightly more due to minimum_balance requirements. If no decrease is possible then an `Err`
|
||||
/// is returned and nothing is changed. If successful, the amount of tokens reduced is returned.
|
||||
@@ -143,6 +144,7 @@ pub trait InspectHold<AccountId>: Inspect<AccountId> {
|
||||
fn can_hold(who: &AccountId, amount: Self::Balance) -> bool;
|
||||
}
|
||||
|
||||
// TODO: Introduce `HoldReason`.
|
||||
/// Trait for mutating a fungible asset which can be reserved.
|
||||
pub trait MutateHold<AccountId>: InspectHold<AccountId> + Transfer<AccountId> {
|
||||
/// Hold some funds in an account.
|
||||
@@ -160,6 +162,8 @@ pub trait MutateHold<AccountId>: InspectHold<AccountId> + Transfer<AccountId> {
|
||||
best_effort: bool,
|
||||
) -> Result<Self::Balance, DispatchError>;
|
||||
|
||||
// TODO: Introduce repatriate_held
|
||||
|
||||
/// Transfer held funds into a destination account.
|
||||
///
|
||||
/// If `on_hold` is `true`, then the destination account must already exist and the assets
|
||||
@@ -195,6 +199,7 @@ pub trait BalancedHold<AccountId>: Balanced<AccountId> + MutateHold<AccountId> {
|
||||
}
|
||||
|
||||
impl<AccountId, T: Balanced<AccountId> + MutateHold<AccountId>> BalancedHold<AccountId> for T {
|
||||
// TODO: This should be implemented properly, and `slash` should be removed.
|
||||
fn slash_held(
|
||||
who: &AccountId,
|
||||
amount: Self::Balance,
|
||||
|
||||
Reference in New Issue
Block a user