From 710ac01ef742ec35023764f56d8d2e4d84412b10 Mon Sep 17 00:00:00 2001 From: Eric Su <60202455+GHesericsu@users.noreply.github.com> Date: Mon, 19 Dec 2022 20:23:38 +0000 Subject: [PATCH] docs: make the comments on using the new confirmTransaction clearer (#29251) * docs: make the comments on using the new connection.confirmTransaction clearer * docs: add TransactionConfirmataionStrategy type * refactor: change param type in sendAndConfirmRawTransaction * docs: fix typo --- web3.js/src/connection.ts | 23 ++++++++++--------- .../utils/send-and-confirm-raw-transaction.ts | 13 ++++------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/web3.js/src/connection.ts b/web3.js/src/connection.ts index c6b88e1ad..5f7640fb6 100644 --- a/web3.js/src/connection.ts +++ b/web3.js/src/connection.ts @@ -349,6 +349,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) { @@ -3603,13 +3610,11 @@ export class Connection { } confirmTransaction( - strategy: - | BlockheightBasedTransactionConfirmationStrategy - | DurableNonceTransactionConfirmationStrategy, + strategy: TransactionConfirmationStrategy, commitment?: Commitment, ): Promise>; - /** @deprecated Instead, call `confirmTransaction` using a `TransactionConfirmationConfig` */ + /** @deprecated Instead, call `confirmTransaction` and pass in {@link TransactionConfirmationStrategy} */ // eslint-disable-next-line no-dupe-class-members confirmTransaction( strategy: TransactionSignature, @@ -3618,10 +3623,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; @@ -3629,9 +3631,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 b841cd39c..da1178e9d 100644 --- a/web3.js/src/utils/send-and-confirm-raw-transaction.ts +++ b/web3.js/src/utils/send-and-confirm-raw-transaction.ts @@ -4,6 +4,7 @@ import { BlockheightBasedTransactionConfirmationStrategy, Connection, DurableNonceTransactionConfirmationStrategy, + TransactionConfirmationStrategy, } from '../connection'; import type {TransactionSignature} from '../transaction'; import type {ConfirmOptions} from '../connection'; @@ -15,14 +16,14 @@ import type {ConfirmOptions} from '../connection'; * * @param {Connection} connection * @param {Buffer} rawTransaction - * @param {BlockheightBasedTransactionConfirmationStrategy} confirmationStrategy + * @param {TransactionConfirmationStrategy} confirmationStrategy * @param {ConfirmOptions} [options] * @returns {Promise} */ export async function sendAndConfirmRawTransaction( connection: Connection, rawTransaction: Buffer, - confirmationStrategy: BlockheightBasedTransactionConfirmationStrategy, + confirmationStrategy: TransactionConfirmationStrategy, options?: ConfirmOptions, ): Promise; @@ -42,16 +43,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 &&