Updated amendement descriptions

This commit is contained in:
Thomas Silkjær
2025-11-18 16:21:41 +01:00
parent 6679f7893d
commit bbacf041ed

View File

@@ -83,61 +83,61 @@ Updates and improvements to the Hooks system.
##### Remit
Enables [Remit transactions](/docs/protocol-reference/transactions/transaction-types/remit) that allow sending multiple payment types, minting URITokens, transferring URITokens, and activating accounts in a single transaction.
Implements [XLS-55](https://github.com/XRPLF/XRPL-Standards/discussions/156). A new simple but powerful what-you-see-is-what-you-get push payment transaction type. Enables [Remit transactions](/docs/protocol-reference/transactions/transaction-types/remit) that allow paying multiple currencies and URITokens in the same transaction to the same destination. The transaction automatically pays to create missing trustlines, automatically pays the reserves on transferred tokens, and automatically pays to create the destination account if it doesn't exist. You can mint a receipt or bonus URIToken in-line within the transaction. Optionally inform a third party Hook about the transaction. No partial payments and no pathing.
##### ZeroB2M
Enables Burn2Mint operations with zero amounts. Fixes issues related to Burn2Mint operations when dealing with zero amounts.
Disables the burn-to-mint path for XRP to XAH. Normal behaviour of the Import transaction remains, but burned XRP is not credited. B2M is still available for key synchronisation or to activate an account, but cannot be used to mint new assets.
##### Remarks
Enables [SetRemarks transactions](/docs/protocol-reference/transactions/transaction-types/setremarks) that allow accounts to attach, update, or remove arbitrary remarks (key-value pairs) on supported ledger objects.
The Remarks amendment allows key-value pairs (similar to hook state) to be stored by object owners on those objects. This is akin to flipping over a document and hand-writing a note on it. Remarks can be anything and mean different things to different parties. Remarks can also be set to immutable. Remarks follow an object through changes of ownership and can be used to achieve novel use cases like dynamic NFTs and simplify some otherwise very complicated hook state operations. Enables [SetRemarks transactions](/docs/protocol-reference/transactions/transaction-types/setremarks).
##### Touch
Enables Touch transactions for account activation and interaction.
This amendment ensures all accounts involved in a transaction (all transactional stakeholders) are forced to appear in its metadata by incrementing a "touch counter" even if nothing else on the account was changed. This is named for the unix file utility touch. This provides better audit consistency and ease of programming automated tools.
##### HookCanEmit
Adds the `HookCanEmit` field to [HookDefinition](/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition) objects, specifying which transaction types a hook is allowed to emit.
This amendment adds a new field to HookSet objects: `HookCanEmit` is syntactically identical to the `HookOn` field, except that it controls which transaction types the Hook is allowed to emit rather than which transaction types trigger the hook. Note that it uses the same active-low semantics as `HookOn` with `SetHook` being active high. However if the field is absent it's taken to be that the Hook may emit any transaction including `SetHook`. Adds the `HookCanEmit` field to [HookDefinition](/docs/protocol-reference/ledger-data/ledger-objects-types/hook-definition) objects.
##### Clawback
Enables [Clawback transactions](/docs/protocol-reference/transactions/transaction-types/clawback) that allow issuers to revoke tokens that were previously issued by their account.
Enables [Clawback transactions](/docs/protocol-reference/transactions/transaction-types/clawback) that allow issuers to revoke tokens that were previously issued by their account. This is a ported feature from the XRPL. _(Introduced in 2025.7.9-release+1951)_
##### DeepFreeze
Enables deep freeze functionality for trustlines and assets.
Enables deep freeze functionality for trustlines and assets. This is a ported feature from the XRPL. _(Introduced in 2025.7.9-release+1951)_
##### IOUIssuerWeakTSH
Makes IOU issuers weak transactional stakeholders (TSH) in certain transaction types. See [Weak and Strong](/docs/hooks/concepts/weak-and-strong) for details.
Makes IOU issuers weak transactional stakeholders (TSH) in certain transaction types. Ensures that Currency Issuers have their hooks executed in third party transactions that touch or mention their currency, if they have opted into weak execution. See [Weak and Strong](/docs/hooks/concepts/weak-and-strong) for details. _(Introduced in 2025.7.9-release+1951)_
##### Cron
Enables scheduled Hook execution via [CronSet transactions](/docs/protocol-reference/transactions/transaction-types/cronset) and [Cron ledger objects](/docs/protocol-reference/ledger-data/ledger-objects-types/cron). _(Added by the [Cron amendment][].)_
Enables scheduled Hook execution via [CronSet transactions](/docs/protocol-reference/transactions/transaction-types/cronset) and [Cron ledger objects](/docs/protocol-reference/ledger-data/ledger-objects-types/cron). This feature allows Hooks to schedule a series of future self-invocations (akin to a cronjob in Linux systems) which can assist Hook developers in writing complex governance structures, games and more. The maximum number of repeats is 256, however issuing a further `CronSet` transaction can extend this once the number of repeats crosses a desired minimum threshold. _(Introduced in 2025.10.27-release+2405)_
##### ExtendedHookState
Extends Hook state management capabilities, including the `HookStateScale` field for [AccountRoot](/docs/protocol-reference/ledger-data/ledger-objects-types/accountroot) objects to control when Hook state entries become stale. _(Added by the [ExtendedHookState amendment][].)_
Extends Hook state management capabilities, including the `HookStateScale` field for [AccountRoot](/docs/protocol-reference/ledger-data/ledger-objects-types/accountroot) objects to control when Hook state entries become stale. This feature expands the amount of data Hooks can store in their Hook State (key-value system for Hooks) to allow Hooks richer data storage when they need it. The scale (up to 16) affects both the maximum size of the value you may store in a single hook state, along with the number of reserve units that k-v pair consumes. A scale of 1 (default) means you pay 1 reserve for up-to 256 bytes stored per Hook State. A scale of 4 means you pay 4 reserve units for up-to 1024 bytes per Hook State. It's important to note that you pay this rate (the scale rate) even if all of your Hook States contain only a single byte. It is possible to increase the scale after your Hook already has stored state, but not to decrease it. Decreasing the scale requires all HookState to be first deleted. _(Introduced in 2025.10.27-release+2405)_
#### Bug Fix Amendments
##### fixXahauV1
Fixes issues in the Xahau protocol implementation. _(Introduced in 2024.9.11-release+985)_
Enforces a namespaces per account limit of 256. Various bug fixes with URIToken logic. Ensures that default (0) STAmounts are recorded in metadata. Ensures that OfferID can be used instead of OfferSequence when cancelling an offer. Fixes a bug where certain hooks cannot be deleted. Fixes a bug where the quorum required for a `ttIMPORT` is accidentally too high. Allows accounts to appear more than once in a GenesisMint transaction. Changes the Issuer of a URIToken from strong to weak TSH when a URIToken is being burned. Ensures TSHes on escrows created by emitted transactions are correctly triggered. Adds hook parameters size fee to all txns (1 drop per byte). _(Introduced in 2024.9.11-release+985)_
##### fixXahauV2
Additional fixes for Xahau protocol implementation issues.
Cleans up TSH logic and removes old redundant table. Adds informational flags to each member of `sfHookExecutions`, describing weak, strong etc. execution. Adds `sfEmitNonce` to each member of `sfHookEmissions`, so as to better disambiguate emitted txns. Additional sanity checks on emitted txns to ensure they are placed into the correct ledger.
##### fixXahauV3
Further fixes for Xahau protocol implementation issues.
Further fixes for Xahau protocol implementation issues. This amendment ensures consistency and sensible outcomes for various edge cases. This amendment is set to default: _yes_ voting. If validators wish to vote against this amendment they must manually change their vote to no. _(Introduced in 2025.2.6-release+1299)_
##### fixNSDelete
Fixes issues related to namespace deletion operations in Hooks.
Fixes the behaviour of Hook State namespace deletion to ensure ledger consistency. Introduces a new tes code: `tesPARTIAL`. `tesPARTIAL` is returned if the transaction was successful but should be resubmitted by the user under a new sequence number to complete amortized work until `tesSUCCESS` is returned.
##### fix240819
@@ -153,15 +153,15 @@ Bug fix amendment from September 11, 2024.
##### fixFloatDivide
Fixes issues with floating point division operations in Hooks. This amendment ensures proper handling of division by zero and edge cases in the `float_divide` function. See [float_divide](/docs/hooks/functions/float/float_divide) for details.
Fixes issues with floating point division operations in Hooks. This amendment ensures proper handling of division by zero and edge cases in the `float_divide` function. Changes the behaviour of the `float_divide` hook API to correct a small error. This amendment is set to default: _yes_ voting. See [float_divide](/docs/hooks/functions/float/float_divide) for details. _(Introduced in 2024.11.18-release+1141)_
##### fixReduceImport
Fixes issues related to Import transaction processing.
Fixes issues related to Import transaction processing. This amendment ensures consistency and sensible outcomes for various edge cases. This amendment is set to default: _yes_ voting. If validators wish to vote against this amendment they must manually change their vote to no. _(Introduced in 2025.2.6-release+1299)_
##### fix20250131
Bug fix amendment from January 31, 2025.
Bug fix amendment from January 31, 2025. This amendment ensures consistency and sensible outcomes for various edge cases. This amendment is set to default: _yes_ voting. If validators wish to vote against this amendment they must manually change their vote to no. _(Introduced in 2025.2.6-release+1299)_
##### fixRewardClaimFlags
@@ -169,11 +169,11 @@ Fixes issues with reward claim transaction flags.
##### fixProvisionalDoubleThreading
Fixes issues with provisional double threading in transaction processing.
Fixes issues with provisional double threading in transaction processing. Ensures the correct PreviousTxnID and transaction metadata are maintained in double threading scenarios. _(Introduced in 2025.7.9-release+1951)_
##### fixInvalidTxFlags
Fixes issues with invalid transaction flags.
Fixes a bug that currently allows invalid flags to be provided to some transactions. While these invalid flags currently do nothing, they should actually produce a malformed error. After this fix is applied, invalid flags will produce a malformed error as expected. _(Introduced in 2025.10.27-release+2405)_
##### fixCronStacking