documents new vaultClawback functionaliy#422
Conversation
| ##### 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.
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.
There was a problem hiding this comment.
I improved the documentation to reflect that the Amount can either be inferred based on who is submitting the transaction (owner or issuer), or explicitly provided.
There was a problem hiding this comment.
I improved the documentation to reflect that the Amount can either be inferred based on who is submitting the transaction (owner or issuer), or explicitly provided.
IIRC, Amount needs to be explicitly specified if the owner is the issuer.
There was a problem hiding this comment.
Yes, that's right, see from the spec:
- If the Vault Owner and Asset Issuer are the same entity, the `Amount` must be explicitly provided.
| - The `Scale` parameter is provided. | ||
|
|
||
| - The `Asset` is `MPT`: | ||
| - The `Scale` parameter is provided. |
There was a problem hiding this comment.
Is this no longer an error condition?
|
|
||
| The `Amount` field is an `STAmount` that specifies the quantity and type of asset to clawback. Its interpretation depends on who submits the transaction: | ||
|
|
||
| - **Asset Issuer**: The `Amount` must be the Vault's asset type (IOU or MPT). The transaction claws back up to `Amount` of assets from the `Holder`'s shares, sending the funds to the Issuer's account. Partial clawback is supported. |
There was a problem hiding this comment.
| - **Asset Issuer**: The `Amount` must be the Vault's asset type (IOU or MPT). The transaction claws back up to `Amount` of assets from the `Holder`'s shares, sending the funds to the Issuer's account. Partial clawback is supported. | |
| - **Asset Issuer**: The `Amount` must be the Vault's asset type (IOU or MPT). The transaction claws back up to `Amount` of assets from the `Holder`'s shares, burning the funds. Partial clawback is supported. |
| ##### 3.3.1.2 Failure conditions | ||
|
|
||
| - `VaultID` is zero or empty. | ||
|
|
There was a problem hiding this comment.
We don't need empty lines between each failure condition. Also, they should be numbered.
| - The transaction claws back or burns all funds, up to the total the `Holder` owns. | ||
| - If the Vault Owner and Asset Issuer are the same entity, the `Amount` must be explicitly provided. | ||
|
|
||
| ##### 3.3.1.2 Failure conditions |
There was a problem hiding this comment.
| ##### 3.3.1.2 Failure conditions | |
| ##### 3.3.1.2 Failure Conditions |
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