diff --git a/web3.js/src/connection.ts b/web3.js/src/connection.ts index abc7b11aa5bfad..b6f3f45fb76f29 100644 --- a/web3.js/src/connection.ts +++ b/web3.js/src/connection.ts @@ -347,6 +347,13 @@ export type BaseTransactionConfirmationStrategy = Readonly<{ signature: TransactionSignature; }>; +/** + * This type represents all transaction confirmation strategies + */ +export type TransactionConfirmationStrategy = + | BlockheightBasedTransactionConfirmationStrategy + | DurableNonceTransactionConfirmationStrategy; + /* @internal */ function assertEndpointUrl(putativeUrl: string) { if (/^https?:/.test(putativeUrl) === false) { @@ -3597,13 +3604,11 @@ export class Connection { } confirmTransaction( - strategy: - | BlockheightBasedTransactionConfirmationStrategy - | DurableNonceTransactionConfirmationStrategy, + strategy: TransactionConfirmationStrategy, commitment?: Commitment, ): Promise>; - /** @deprecated Instead, call `confirmTransaction` and pass in `BlockheightBasedTransactionConfirmationStrategy` or `DurableNonceTransactionConfirmationStrategy` */ + /** @deprecated Instead, call `confirmTransaction` and pass in {@link TransactionConfirmationStrategy} @ */ // eslint-disable-next-line no-dupe-class-members confirmTransaction( strategy: TransactionSignature, @@ -3612,10 +3617,7 @@ export class Connection { // eslint-disable-next-line no-dupe-class-members async confirmTransaction( - strategy: - | BlockheightBasedTransactionConfirmationStrategy - | DurableNonceTransactionConfirmationStrategy - | TransactionSignature, + strategy: TransactionConfirmationStrategy | TransactionSignature, commitment?: Commitment, ): Promise> { let rawSignature: string; @@ -3623,9 +3625,8 @@ export class Connection { if (typeof strategy == 'string') { rawSignature = strategy; } else { - const config = strategy as - | BlockheightBasedTransactionConfirmationStrategy - | DurableNonceTransactionConfirmationStrategy; + const config = strategy as TransactionConfirmationStrategy; + if (config.abortSignal?.aborted) { return Promise.reject(config.abortSignal.reason); } diff --git a/web3.js/src/utils/send-and-confirm-raw-transaction.ts b/web3.js/src/utils/send-and-confirm-raw-transaction.ts index b841cd39c4ca16..78620f69e58eb8 100644 --- a/web3.js/src/utils/send-and-confirm-raw-transaction.ts +++ b/web3.js/src/utils/send-and-confirm-raw-transaction.ts @@ -4,7 +4,7 @@ import { BlockheightBasedTransactionConfirmationStrategy, Connection, DurableNonceTransactionConfirmationStrategy, -} from '../connection'; +TransactionConfirmationStrategy} from '../connection'; import type {TransactionSignature} from '../transaction'; import type {ConfirmOptions} from '../connection'; @@ -42,16 +42,12 @@ export async function sendAndConfirmRawTransaction( connection: Connection, rawTransaction: Buffer, confirmationStrategyOrConfirmOptions: - | BlockheightBasedTransactionConfirmationStrategy - | DurableNonceTransactionConfirmationStrategy + | TransactionConfirmationStrategy | ConfirmOptions | undefined, maybeConfirmOptions?: ConfirmOptions, ): Promise { - let confirmationStrategy: - | BlockheightBasedTransactionConfirmationStrategy - | DurableNonceTransactionConfirmationStrategy - | undefined; + let confirmationStrategy: TransactionConfirmationStrategy | undefined; let options: ConfirmOptions | undefined; if ( confirmationStrategyOrConfirmOptions &&