Skip to content
This repository has been archived by the owner on Jan 22, 2025. It is now read-only.

Commit

Permalink
docs: add TransactionConfirmataionStrategy type
Browse files Browse the repository at this point in the history
  • Loading branch information
GHesericsu committed Dec 19, 2022
1 parent 2ad2d8e commit 9ce0478
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 18 deletions.
23 changes: 12 additions & 11 deletions web3.js/src/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -3597,13 +3604,11 @@ export class Connection {
}

confirmTransaction(
strategy:
| BlockheightBasedTransactionConfirmationStrategy
| DurableNonceTransactionConfirmationStrategy,
strategy: TransactionConfirmationStrategy,
commitment?: Commitment,
): Promise<RpcResponseAndContext<SignatureResult>>;

/** @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,
Expand All @@ -3612,20 +3617,16 @@ export class Connection {

// eslint-disable-next-line no-dupe-class-members
async confirmTransaction(
strategy:
| BlockheightBasedTransactionConfirmationStrategy
| DurableNonceTransactionConfirmationStrategy
| TransactionSignature,
strategy: TransactionConfirmationStrategy | TransactionSignature,
commitment?: Commitment,
): Promise<RpcResponseAndContext<SignatureResult>> {
let rawSignature: string;

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);
}
Expand Down
10 changes: 3 additions & 7 deletions web3.js/src/utils/send-and-confirm-raw-transaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
BlockheightBasedTransactionConfirmationStrategy,
Connection,
DurableNonceTransactionConfirmationStrategy,
} from '../connection';
TransactionConfirmationStrategy} from '../connection';
import type {TransactionSignature} from '../transaction';
import type {ConfirmOptions} from '../connection';

Expand Down Expand Up @@ -42,16 +42,12 @@ export async function sendAndConfirmRawTransaction(
connection: Connection,
rawTransaction: Buffer,
confirmationStrategyOrConfirmOptions:
| BlockheightBasedTransactionConfirmationStrategy
| DurableNonceTransactionConfirmationStrategy
| TransactionConfirmationStrategy
| ConfirmOptions
| undefined,
maybeConfirmOptions?: ConfirmOptions,
): Promise<TransactionSignature> {
let confirmationStrategy:
| BlockheightBasedTransactionConfirmationStrategy
| DurableNonceTransactionConfirmationStrategy
| undefined;
let confirmationStrategy: TransactionConfirmationStrategy | undefined;
let options: ConfirmOptions | undefined;
if (
confirmationStrategyOrConfirmOptions &&
Expand Down

0 comments on commit 9ce0478

Please sign in to comment.