@renec-foundation/metaplex-js
Version:
Metaplex JavaScript API
51 lines (40 loc) • 1.25 kB
text/typescript
import { Keypair } from '@solana/web3.js';
import { Transaction } from '@renec-foundation/mpl-core';
interface TransactionsBatchParams {
beforeTransactions?: Transaction[];
transactions: Transaction[];
afterTransactions?: Transaction[];
}
export class TransactionsBatch {
beforeTransactions: Transaction[];
transactions: Transaction[];
afterTransactions: Transaction[];
signers: Keypair[] = [];
constructor({
beforeTransactions = [],
transactions,
afterTransactions = [],
}: TransactionsBatchParams) {
this.beforeTransactions = beforeTransactions;
this.transactions = transactions;
this.afterTransactions = afterTransactions;
}
addSigner(signer: Keypair) {
this.signers.push(signer);
}
addBeforeTransaction(transaction: Transaction) {
this.beforeTransactions.push(transaction);
}
addTransaction(transaction: Transaction) {
this.transactions.push(transaction);
}
addAfterTransaction(transaction: Transaction) {
this.afterTransactions.push(transaction);
}
toTransactions() {
return [...this.beforeTransactions, ...this.transactions, ...this.afterTransactions];
}
toInstructions() {
return this.toTransactions().flatMap((t) => t.instructions);
}
}