/** * Transaction module for managing Dragonchain transactions */ import { DragonchainClient } from './client'; import { ContentType, TransactionCreateRequest, TransactionCreateResponse, TransactionBulkRequest, TransactionBulkResponse, Transaction, ListTransactionsResponse, InterchainTrace, } from './types'; export class TransactionClient { private client: DragonchainClient; constructor(client: DragonchainClient) { this.client = client; } /** * Creates a new transaction */ async create(request: TransactionCreateRequest): Promise { return this.client.post( '/api/v1/transaction', ContentType.JSON, request ); } /** * Creates multiple transactions in bulk */ async createBulk(request: TransactionBulkRequest): Promise { return this.client.post( '/api/v1/transaction/bulk', ContentType.JSON, request ); } /** * Gets a transaction by ID */ async get(transactionId: string): Promise { return this.client.get(`/api/v1/transaction/${transactionId}`); } /** * Traces a transaction to the validator (verification) blocks that validated * its prime block and the public-chain interchain anchors those validator * blocks were bundled into. If the transaction is still pending (not yet in a * block) the trace's arrays are empty. */ async getInterchain(transactionId: string): Promise { return this.client.get(`/api/v1/transaction/${transactionId}/interchain`); } /** * Lists all transactions */ async list(): Promise { return this.client.get('/api/v1/transaction/'); } }