@drift-labs/sdk
Version:
SDK for Drift Protocol
60 lines (59 loc) • 3.73 kB
TypeScript
/// <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;
}