Enum CurrencyMovementState
How a currency movement ended.
public enum CurrencyMovementState
Fields
The transaction completed. The currency has left the economy.
The transaction did not complete and the currency was given back.
No outcome recorded. The column default, and never written by any path.
A row in this state means an INSERT omitted the outcome, which is a bug rather than a transaction awaiting settlement. Present so that case is visible instead of being silently counted as currency leaving the economy.
Remarks
A ledger row is written once, after the transaction it describes has already resolved and its deduction has been persisted, so the outcome is known at the moment of writing and the row is never revisited.
This is deliberately NOT an escrow. An escrow holds funds across an in-flight transaction so an interrupted one can be recovered, which requires the hold and the balance deduction to commit together. They cannot here: the deduction goes through the in-memory attribute controller and an asynchronous persistence queue, not a transaction this code can join. A hold recorded outside that transaction is not recoverable state — it is a row that says a transaction happened, and returning money on the strength of it either pays out currency that was never taken or refunds a purchase that completed. Recording the settled outcome directly removes the window in which either could be believed.