Lifecycle states for an escrow transfer. Conventions match sibling tables
(withdrawal, deposit, swap, redemption): UPPERCASE_SNAKE_CASE, past-tense
terminal states, single PENDING for any in-flight transition.
PENDING — quote; the mintfx withdrawal hold is not yet funded
CREATED — hold funded, no recipient bound yet
RECIPIENT_SET — recipient bound
CLAIMED — funds released to recipient (terminal)
CANCELLED — sender-initiated recall (terminal). Spelling matches
sibling enums (deposit, ledger_account_transfer both use the en-GB
double-L variant).
REJECTED — recipient- or authority-initiated rejection (terminal)
EXPIRED — auto-expired after 10 days (terminal)
FAILED — non-recoverable error during any transition (terminal)
The cross-cluster backfill collapses every legacy *ing intermediate to
PENDING; the original legacy value is preserved in the escrow's
escrow_transfer_status_update rows so nothing is lost.
Lifecycle states for an escrow transfer. Conventions match sibling tables (withdrawal, deposit, swap, redemption): UPPERCASE_SNAKE_CASE, past-tense terminal states, single
PENDINGfor any in-flight transition.PENDING— quote; the mintfx withdrawal hold is not yet fundedCREATED— hold funded, no recipient bound yetRECIPIENT_SET— recipient boundCLAIMED— funds released to recipient (terminal)CANCELLED— sender-initiated recall (terminal). Spelling matches sibling enums (deposit,ledger_account_transferboth use the en-GB double-L variant).REJECTED— recipient- or authority-initiated rejection (terminal)EXPIRED— auto-expired after 10 days (terminal)FAILED— non-recoverable error during any transition (terminal)The cross-cluster backfill collapses every legacy
*ingintermediate toPENDING; the original legacy value is preserved in the escrow'sescrow_transfer_status_updaterows so nothing is lost.