Every terminal state in which the chain took money, and therefore every state
that gets a row (§ 3.1).
Utila's own enum documentation is what separates these from the states that
cost nothing, and it splits on one question — did the transaction enter a
block?
CONFIRMED confirmed by multiple blocks
MINED included in a block successfully
FAILED "entered a block but in a failed state and was confirmed
as such by multiple blocks"
MINED_FAILED "entered a block but in a failed state"
All four entered a block, so all four burned gas. The last two moved no value
and produce the fee-only row of § 4.6. Every other terminal state — DECLINED,
DECLINED_BY_AML_POLICY, CANCELED, DROPPED, EXPIRED, REPLACED — never reached
the chain, cost nothing, and gets no row at all.
Every terminal state in which the chain took money, and therefore every state that gets a row (§ 3.1).
Utila's own enum documentation is what separates these from the states that cost nothing, and it splits on one question — did the transaction enter a block?
CONFIRMED confirmed by multiple blocks MINED included in a block successfully FAILED "entered a block but in a failed state and was confirmed as such by multiple blocks" MINED_FAILED "entered a block but in a failed state"
All four entered a block, so all four burned gas. The last two moved no value and produce the fee-only row of § 4.6. Every other terminal state — DECLINED, DECLINED_BY_AML_POLICY, CANCELED, DROPPED, EXPIRED, REPLACED — never reached the chain, cost nothing, and gets no row at all.