UNPKG

@drift-labs/sdk

Version:
60 lines (59 loc) 3.73 kB
/// <reference types="node" /> /// <reference types="node" /> import { ConfirmationStrategy, TxSender, TxSigAndSlot } from './types'; import { Commitment, ConfirmOptions, RpcResponseAndContext, Signer, SignatureResult, Transaction, TransactionSignature, Connection, VersionedTransaction, TransactionInstruction, AddressLookupTableAccount, BlockhashWithExpiryBlockHeight } from '@solana/web3.js'; import { TxHandler } from './txHandler'; import { IWallet } from '../types'; import NodeCache from 'node-cache'; export declare abstract class BaseTxSender implements TxSender { connection: Connection; wallet: IWallet; opts: ConfirmOptions; timeout: number; additionalConnections: Connection[]; timeoutCount: number; confirmationStrategy: ConfirmationStrategy; additionalTxSenderCallbacks: ((base58EncodedTx: string) => void)[]; txHandler: TxHandler; trackTxLandRate?: boolean; throwOnTimeoutError: boolean; throwOnTransactionError: boolean; lookbackWindowMinutes: number; txSigCache?: NodeCache; txLandRate: number; lastPriorityFeeSuggestion: number; landRateToFeeFunc: (landRate: number) => number; constructor({ connection, wallet, opts, timeout, additionalConnections, confirmationStrategy, additionalTxSenderCallbacks, trackTxLandRate, txHandler, txLandRateLookbackWindowMinutes, landRateToFeeFunc, throwOnTimeoutError, throwOnTransactionError, }: { connection: Connection; wallet: IWallet; opts?: ConfirmOptions; timeout?: number; additionalConnections?: any; confirmationStrategy?: ConfirmationStrategy; additionalTxSenderCallbacks?: ((base58EncodedTx: string) => void)[]; txHandler?: TxHandler; trackTxLandRate?: boolean; txLandRateLookbackWindowMinutes?: number; landRateToFeeFunc?: (landRate: number) => number; throwOnTimeoutError?: boolean; throwOnTransactionError?: boolean; }); send(tx: Transaction, additionalSigners?: Array<Signer>, opts?: ConfirmOptions, preSigned?: boolean): Promise<TxSigAndSlot>; prepareTx(tx: Transaction, additionalSigners: Array<Signer>, opts: ConfirmOptions, preSigned?: boolean): Promise<Transaction>; getVersionedTransaction(ixs: TransactionInstruction[], lookupTableAccounts: AddressLookupTableAccount[], _additionalSigners?: Array<Signer>, opts?: ConfirmOptions, blockhash?: BlockhashWithExpiryBlockHeight): Promise<VersionedTransaction>; sendVersionedTransaction(tx: VersionedTransaction, additionalSigners?: Array<Signer>, opts?: ConfirmOptions, preSigned?: boolean): Promise<TxSigAndSlot>; sendRawTransaction(rawTransaction: Buffer | Uint8Array, opts: ConfirmOptions): Promise<TxSigAndSlot>; simulateTransaction(tx: VersionedTransaction): Promise<boolean>; confirmTransactionWebSocket(signature: TransactionSignature, commitment?: Commitment): Promise<RpcResponseAndContext<SignatureResult>>; confirmTransactionPolling(signature: TransactionSignature, commitment?: Commitment): Promise<RpcResponseAndContext<SignatureResult> | undefined>; confirmTransaction(signature: TransactionSignature, commitment?: Commitment): Promise<RpcResponseAndContext<SignatureResult>>; getTimestamp(): number; promiseTimeout<T>(promises: Promise<T>[], timeoutMs: number): Promise<T | null>; sendToAdditionalConnections(rawTx: Buffer | Uint8Array, opts: ConfirmOptions): void; addAdditionalConnection(newConnection: Connection): void; getTimeoutCount(): number; checkConfirmationResultForError(txSig: string, result: SignatureResult): Promise<void>; getTxLandRate(): number; private defaultLandRateToFeeFunc; getSuggestedPriorityFeeMultiplier(): number; }