diff --git a/blog/2025/rippled-2.4.0.md b/blog/2025/rippled-2.4.0.md index d74b2764f0..e94cc06455 100644 --- a/blog/2025/rippled-2.4.0.md +++ b/blog/2025/rippled-2.4.0.md @@ -62,7 +62,7 @@ The following amendments are open for voting with this release: - Added the ability to specify MPTs when defining assets in transactions. ([#5200](https://github.com/XRPLF/rippled/pull/5200)) **TODO: doc new `mpt_issuance_id` field** - Refactored `LedgerEntry.cpp` to make it easier to read. Also added a `state` alias for `ripple_state` in the `ledger_entry` API method. ([#5199](https://github.com/XRPLF/rippled/pull/5199)) **TODO: doc update ledger_entry method** -- Improved UNL security by enabling validators to set a minimum number of UNL publishers to agree on validators. ([#5112](https://github.com/XRPLF/rippled/pull/5112)) **TODO: doc UNL config** +- Improved UNL security by enabling validators to set a minimum number of UNL publishers to agree on validators. ([#5112](https://github.com/XRPLF/rippled/pull/5112)) - Added a new `simulate` API method to execute dry runs of transactions and see the simulated metadata. ([#5069](https://github.com/XRPLF/rippled/pull/5069), [#5265](https://github.com/XRPLF/rippled/pull/5265)) **TODO: doc new API method** - Updated the XRPL Foundation UNL keys. ([#5289](https://github.com/XRPLF/rippled/pull/5289)) - Added support to filter ledger entry types by their canonical names in the `ledger`, `ledger_data`, and `account_objects` API methods. ([#5271](https://github.com/XRPLF/rippled/pull/5271)) diff --git a/docs/_snippets/common-links.md b/docs/_snippets/common-links.md index 8268f0d92c..b91120a8c3 100644 --- a/docs/_snippets/common-links.md +++ b/docs/_snippets/common-links.md @@ -401,6 +401,7 @@ [fixCheckThreading amendment]: /resources/known-amendments.md#fixcheckthreading [fixDisallowIncomingV1 amendment]: /resources/known-amendments.md#fixdisallowincomingv1 [fixFillOrKill amendment]: /resources/known-amendments.md#fixfillorkill +[fixInvalidTxFlags amendment]: /resources/known-amendments.md#fixinvalidtxflags [fixMasterKeyAsRegularKey amendment]: /resources/known-amendments.md#fixmasterkeyasregularkey [fixNFTokenDirV1 amendment]: /resources/known-amendments.md#fixnftokendirv1 [fixNFTokenPageLinks amendment]: /resources/known-amendments.md#fixnftokenpagelinks diff --git a/docs/references/protocol/transactions/types/credentialaccept.md b/docs/references/protocol/transactions/types/credentialaccept.md index 8228f48e9d..fb6e8ad9ad 100644 --- a/docs/references/protocol/transactions/types/credentialaccept.md +++ b/docs/references/protocol/transactions/types/credentialaccept.md @@ -46,6 +46,7 @@ The combination of `Account`, `Issuer`, and `CredentialType` must match a `Crede | `tecNO_ENTRY` | The credential uniquely identified by the `Account`, `Issuer`, and `CredentialType` fields of the transaction does not exist in the ledger. | | `temDISABLED` | The related amendment is not enabled. | | `temINVALID_ACCOUNT_ID` | The provided `Issuer` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. _(Requires the [fixInvalidTxFlags amendment][] {% not-enabled /%})_ | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/credentialcreate.md b/docs/references/protocol/transactions/types/credentialcreate.md index 810968b320..71b9ffdde5 100644 --- a/docs/references/protocol/transactions/types/credentialcreate.md +++ b/docs/references/protocol/transactions/types/credentialcreate.md @@ -48,6 +48,7 @@ Besides errors that can occur for all transactions, CredentialCreate transaction | `tecNO_TARGET` | The account specified in the `Subject` field is not a funded account in the ledger. | | `temDISABLED` | The related amendment is not enabled. | | `temINVALID_ACCOUNT_ID` | The provided `Subject` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. _(Requires the [fixInvalidTxFlags amendment][] {% not-enabled /%})_ | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/credentialdelete.md b/docs/references/protocol/transactions/types/credentialdelete.md index e206162051..950e06558f 100644 --- a/docs/references/protocol/transactions/types/credentialdelete.md +++ b/docs/references/protocol/transactions/types/credentialdelete.md @@ -47,6 +47,7 @@ This transaction looks for a [Credential ledger entry](../../ledger-data/ledger- | `temINVALID_ACCOUNT_ID` | A provided `Subject` or `Issuer` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | | `tecNO_PERMISSION` | The sender is neither the issuer nor subject of the credential, and the credential is not expired. | | `tecNO_ENTRY` | The specified credential does not exist in the ledger. | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. _(Requires the [fixInvalidTxFlags amendment][] {% not-enabled /%})_ | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/resources/known-amendments.md b/resources/known-amendments.md index eeb36ab2b5..f56a68e377 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -17,6 +17,7 @@ This list is updated manually. For a live view of amendment voting, see the Amen | Name | Introduced | Status | |:----------------------------------|:-----------|:------------------------------| +| [fixInvalidTxFlags][] | v2.4.0 | {% badge href="https://xrpl.org/blog/2025/rippled-2.4.0" %}Open for Voting: 2025-03-05{% /badge %} | | [AMMClawback][] | v2.3.0 | {% badge href="https://livenet.xrpl.org/transactions/8672DFD11FCF79F8E8F92E300187E8E533899ED8C8CF5AFB1A9C518195C16261" %}Enabled: 2025-01-30{% /badge %} | | [Credentials][] | v2.3.0 | {% badge href="https://xrpl.org/blog/2024/rippled-2.3.0" %}Open for Voting: 2024-11-26{% /badge %} | | [fixAMMv1_2][] | v2.3.0 | {% badge href="https://livenet.xrpl.org/transactions/71D5031A5BD927BDFE424E51699E69F2784097D615D0852BF20C168BA9B5EA76" %}Enabled: 2025-01-30{% /badge %} | @@ -873,6 +874,18 @@ This amendment standardizes the way inner objects ([Object-type fields in the ca It is believed that this change does not affect transaction processing, but it is possible that there are edge cases where it could cause an improperly formatted transaction to receive a different error. With this amendment, any such transactions would fail with a different result code such as `temMALFORMED`; without this amendment, those transactions would be expected to fail with the code `tefEXCEPTION` instead. +### fixInvalidTxFlags +[fixInvalidTxFlags]: #fixinvalidtxflags + +| Amendment | fixInvalidTxFlags | +|:-------------|:-------------------------| +| Amendment ID | | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | + +Adds flag checks for `CredentialCreate`, `CredentialAccept`, and `CredentialDelete` transactions. With this amendment enabled, these transactions will return a `temINVALID_FLAG` error if they include a flag that doesn't exist, or a contradictory combination of flags. + ### fixMasterKeyAsRegularKey [fixMasterKeyAsRegularKey]: #fixmasterkeyasregularkey