Skip to main content

Transaction

type Transaction<Proven, Signed>: TransactionCommon & {
"safeSend": Promise<PendingTransaction | RejectedTransaction>;
"send": PendingTransactionPromise;
} & Proven extends false ? {
"prove": Promise<Transaction<true, Signed>>;
} : {
"proofs": (Proof<ZkappPublicInput, Empty> | undefined)[];
} & Signed extends false ? {
"sign": Transaction<Proven, true>;
} : {};

Defines the structure and operations associated with a transaction. This type encompasses methods for serializing the transaction, signing it, generating proofs, and submitting it to the network.

Type declaration​

safeSend()​

Sends the Transaction to the network. Unlike the standard Transaction.send, this function does not throw an error if internal errors are detected. Instead, it returns a PendingTransaction if the transaction is successfully sent for processing or a RejectedTransaction if it encounters errors during processing or is outright rejected by the Mina daemon.

Returns​

Promise\<PendingTransaction | RejectedTransaction>

A promise that resolves to a PendingTransaction if the transaction is accepted for processing, or a RejectedTransaction if the transaction fails or is rejected.

Example​

const result = await transaction.safeSend();
if (result.status === 'pending') {
console.log('Transaction sent successfully to the Mina daemon.');
} else if (result.status === 'rejected') {
console.error('Transaction failed with errors:', result.errors);
}

send()​

Returns​

PendingTransactionPromise

Type parameters​

• Proven extends boolean

• Signed extends boolean

Source​

lib/mina/transaction.ts:84