Transaction statuses

The consensus contracts define 15 numeric status values. APIs can return the stored status or an effective status calculated from the current time, such as ReadyToFinalize after an appeal window expires.

CodeStatusMeaning
0UninitializedNo transaction is initialized for this ID.
1PendingThe transaction is queued and waiting for activation.
2ProposingA leader is assigned and must propose an execution receipt.
3CommittingThe committee is submitting encrypted vote commitments.
4RevealingCommittee members are revealing their committed votes.
5AcceptedThe committee accepted the proposed receipt; the appeal window is open.
6UndeterminedThe round did not reach a result and no funded rotation remained; a leader appeal is possible.
7FinalizedThe appeal process is complete and finalization was recorded.
8CanceledThe transaction was canceled before completing consensus.
9AppealRevealingA fresh validator-appeal committee is revealing votes.
10AppealCommittingA fresh validator-appeal committee is committing votes.
11ReadyToFinalizeThe effective appeal window elapsed and the transaction can be finalized.
12ValidatorsTimeoutA validator majority reported that validation timed out; the appeal window is open.
13LeaderTimeoutThe leader reported an execution timeout; the appeal window is open.
14LeaderRevealingThe leader must reveal execution data and keys before committee vote reveals.

Status is not execution success

Accepted means the validator committee reached consensus on the receipt. The receipt itself can represent a successful return, a user error, a GenVM error, or a timeout. Inspect the receipt's execution result in addition to its consensus status.

Similarly, Finalized means the decided receipt is no longer appealable. It does not convert an error result into a successful contract call.

Stored and effective status

Some view functions accept a timestamp and derive the status that applies after a deadline. A transaction whose stored decision is Accepted, for example, can be reported as ReadyToFinalize after its appeal window elapses even before a finalization transaction updates storage to Finalized.

Use the numeric codes for program logic and display the names to users. See gen_getTransactionStatus.