Skip to main content
Discriminated union for transaction lifecycle states.

Schema

import * as TransactionStatus from 'voltaire-effect/TransactionStatus'
import * as Schema from 'effect/Schema'

const status = Schema.decodeSync(TransactionStatus.JSON)({
  type: 'success',
  gasUsed: 21000n
})

Constructors

import * as TransactionStatus from 'voltaire-effect/TransactionStatus'

TransactionStatus.pending()              // { type: 'pending' }
TransactionStatus.success(21000n)        // { type: 'success', gasUsed: 21000n }
TransactionStatus.failed('Out of gas')   // { type: 'failed', revertReason: '...' }

Type Guards

if (TransactionStatus.isSuccess(status)) {
  console.log(status.gasUsed)
}
if (TransactionStatus.isFailed(status)) {
  console.log(status.revertReason)
}