Coin Brief ENDE

rippled will reject malformed escrow conditions before they reach the ledger and cost a fee

The XRP Ledger reference server rippled merged pull request 8523 on 12 October. It changes how an EscrowFinish transaction with a malformed condition is handled, and it is gated on the fixCleanup3_5_0 amendment, so the new behaviour applies only once that amendment is enabled on the network.

The inconsistency. An escrow can carry a Condition field holding a crypto-condition. EscrowCreate has always rejected a malformed condition in preflight, the stage of checks that runs before a transaction is applied. EscrowFinish did not. A malformed condition passed preflight and failed later, in doApply, with tecCRYPTOCONDITION_ERROR.

Why that mattered. A tec result means the transaction is included in the ledger and the submitter is charged the fee, even though nothing happens. The PR calls this an unnecessary complication for a check that can be made earlier. With the fix, EscrowFinish returns temMALFORMED from preflightSigValidated when Condition does not deserialize as a crypto-condition: the transaction is not included in the ledger and no fee is charged.

rippled will reject malformed escrow conditions before they reach the ledger and cost a fee
rippled will reject malformed escrow conditions before they reach the ledger and cost a fee — Coin Brief

How it was found and tested. The PR says the issue was found during work on Smart Escrows. A new test finishes an escrow with a malformed condition and checks both the result and the fee, with and without fixCleanup3_5_0; existing cases with malformed or empty conditions now expect temMALFORMED when the fix is on, and the escrow test suite runs with all amendments except fixCleanup3_5_0 as well. The change touches two files, with 72 lines added and 12 removed.

Who should care. Wallets and services that build EscrowFinish transactions, and tools that interpret result codes: after activation, a malformed condition will surface as a tem rejection at submission instead of a tec failure recorded on the ledger. The PR declares no public API change.

Source: XRPLF/rippled, pull request 8523 "fix: Reject malformed conditions in EscrowFinish preflight" — https://github.com/XRPLF/rippled/pull/8523

Primary source
XRPL Foundation
https://github.com/XRPLF/rippled/pull/8523
Written by Victoria Shinder.