-
Notifications
You must be signed in to change notification settings - Fork 1k
documents new vaultClawback functionaliy #422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
|
||
| - If `Vault.Asset` is an `IOU` and: | ||
| - The `Issuer` account is not the submitter of the transaction. | ||
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `IOU`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `IOU`: | |
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `IOU` and: |
Otherwise there might be confusion about whether to fail if the submitter is issuer and asset is an IOU, and nothing else.
|
|
||
| - If `Vault.Asset` is an `MPT` and: | ||
| - `MPTokenIssuance.Issuer` is not the submitter of the transaction. | ||
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `MPT`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `MPT`: | |
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `MPT` and: |
| - `MPTokenIssuance.Issuer` is not the submitter of the transaction. | ||
| - If the submitter is the **Asset Issuer** and `Vault.Asset` is an `MPT`: | ||
| - `MPTokenIssuance.lsfMPTCanClawback` flag is not set (the asset does not support clawback). | ||
| - If the `MPTokenIssuance.lsfMPTCanLock` flag is NOT set (the asset cannot be locked). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we've established that lsfMPTCanLock is not required for MPT clawbacks.
| ##### 3.3.1.1 Failure conditions | ||
| - **Asset Issuer**: The `Amount` must be specified as the Vault's asset type (IOU or MPT). The transaction will clawback up to `Amount` of assets from the `Holder`'s shares, sending the funds to the Issuer's account. | ||
|
|
||
| - **Vault Owner**: The `Amount` must be specified as the Vault's share type (MPT), where `mpt_issuance_id` matches `Vault.MPTokenIssuanceID`. Since the Vault Owner can only submit this transaction when `Vault.AssetsTotal` and `Vault.AssetsAvailable` are both zero, no assets are transferred—only shares are destroyed. Partial burns are not permitted, the Vault Owner must burn all shares held by the `Holder`. The `Amount` can be specified as either: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not make it simpler by just making amount absent in this case? This would imply burning all shares assuming all other conditions are met.
Extends the VaultClawback transaction to allow the Vault Owner to force burn depositor shares when the vault has no assets remaining.
Problem
A vault can become permanently stuck when Vault.AssetsTotal and Vault.AssetsAvailable are both zero, but shares still exist. This situation may arise when a loan issued for the total of the vault's assets defaults. In this state:
Deposits cannot settle the balance
The Vault object becomes non-deletable
Solution
The VaultClawback transaction can now be submitted by:
Asset Issuer (existing functionality): Clawback funds from the vault, specifying Amount as the vault's asset (IOU or MPT).
Vault Owner (new functionality): Force burn worthless shares when both Vault.AssetsTotal and Vault.AssetsAvailable are zero. The Amount must be specified as the vault's share (MPT), and partial burns are not permitted—the Vault Owner must burn all shares held by the Holder.
Changes
Updated VaultClawback transaction description to document both use cases
Added Amount field documentation clarifying the expected asset type per submitter
Updated failure conditions to authorize Vault Owner and enforce the zero-asset requirement