Skip to main content

@midnight/ledger v2.0.8Readme | API


@midnight/ledger v2.0.8 / Transaction

Class: Transaction

A Midnight transaction, consisting a section of ContractCalls and/or ContractDeploys, and a guaranteed and fallible Offer.

The guaranteed section are run first, and fee payment is taken during this part. If it succeeds, the fallible section is also run, and atomically rolled back if it fails.

Constructors

new Transaction()

new Transaction(): Transaction

Returns

Transaction

Properties

contractCalls

readonly contractCalls: (ContractCall | ContractDeploy)[];

The contract interactions contained in this transaction


fallibleCoins

readonly fallibleCoins: undefined | Offer;

The fallible Zswap offer


guaranteedCoins

readonly guaranteedCoins: Offer;

The guaranteed Zswap offer

Methods

eraseProofs()

eraseProofs(): ProofErasedTransaction

Erases the proofs contained in this transaction

Returns

ProofErasedTransaction


fees()

fees(): bigint

The cost of this transaction, in the atomic unit of the base token

Returns

bigint


identifiers()

identifiers(): string[]

Returns the set of identifiers contained within this transaction. Any of these may be used to watch for a specific transaction.

Returns

string[]


imbalances()

imbalances(guaranteed, fees?): Map<string, bigint>

For given fees, and a given section (guaranteed/fallible), what the surplus or deficit of this transaction in any token type is.

Parameters

guaranteed: boolean

fees?: bigint

Returns

Map<string, bigint>


merge()

merge(other): Transaction

Merges this transaction with another

Parameters

other: Transaction

Returns

Transaction

Throws

If both transactions have contract interactions, or they spend the same coins


serialize()

serialize(): Uint8Array

Returns

Uint8Array


toString()

toString(compact?): string

Parameters

compact?: boolean

Returns

string


transactionHash()

transactionHash(): string

Returns the hash associated with this transaction. Due to the ability to merge transactions, this should not be used to watch for a specific transaction.

Returns

string


wellFormed()

wellFormed(enforce_balancing): void

Tests well-formedness criteria, optionally including transaction balancing

Parameters

enforce_balancing: boolean

Returns

void

Throws

If the transaction is not well-formed for any reason


deserialize()

static deserialize(raw): Transaction

Parameters

raw: Uint8Array

Returns

Transaction


fromUnproven()

static fromUnproven(prove, unproven): Promise<Transaction>

Type hint that you should use an external proving function, for instance via the proof server.

Parameters

prove

unproven: UnprovenTransaction

Returns

Promise<Transaction>