Transaction Draft
Get prepared transaction data for blockchain submission.
When to use:
- After
transactionDeployEnqueue()
for deployment - After
rollUpOnChainStart()
for rollup - Before submitting transactions to blockchain
Definition
await zkdb
.db(databaseName: string)
.transactionDraft(transactionType: ETransactionType): Promise<TTransactionDraftResponse>;
Parameters
transactionType
(ETransactionType): Type of transaction to draftETransactionType.Deploy
: Database deployment transactionETransactionType.Rollup
: Rollup transaction
Returns
Promise<TTransactionDraftResponse>
: Returns complete transaction metadata including the raw transaction data needed for blockchain submission. ThetransactionRaw
field contains the encoded transaction ready to be submitted to the Mina blockchain, whilerawTransactionId
is used for tracking and confirmation.
type TTransactionDraftResponse = {
rawTransactionId: string;
databaseName: string;
transactionType: ETransactionType;
status: ETransactionStatus;
transactionRaw: string;
txHash?: string;
error?: string;
createdAt: Date;
updatedAt: Date;
};
enum ETransactionStatus {
Queued = 'Queued',
Processing = 'Processing',
Confirmed = 'Confirmed',
Unknown = 'Unknown'
}
Example
import { ETransactionType } from '@zkdb/common';
const zkdb = await ZkDatabase.connect({
userName: "chiro-user",
privateKey: "EKFTciRxyxshZjimay9sktsn7v5PvmC5zPq7q4JnitHUytxUVnFP",
environment: "node",
// This URL is for test environment
url: "https://api.zkdatabase.org/graphql",
});
await zkdb.auth.signIn();
const dbTest = zkdb.db('zkdb_test');
const draft = await dbTest.transactionDraft(ETransactionType.Deploy);
console.log('Transaction draft:', {
id: draft.rawTransactionId,
type: draft.transactionType,
status: draft.status,
hasRawData: !!draft.transactionRaw
});
await zkdb.auth.signOut();