feat: add skipPreflight option

This commit is contained in:
Justin Starry
2020-06-03 19:55:42 +08:00
committed by Michael Vines
parent a6e07e44da
commit 8547ae43ce
12 changed files with 263 additions and 68 deletions

View File

@@ -2,6 +2,7 @@
import {Connection} from '../connection';
import type {TransactionSignature} from '../transaction';
import type {ConfirmOptions} from '../connection';
/**
* Send and confirm a raw transaction
@@ -9,12 +10,19 @@ import type {TransactionSignature} from '../transaction';
export async function sendAndConfirmRawTransaction(
connection: Connection,
rawTransaction: Buffer,
confirmations: ?number,
options?: ConfirmOptions,
): Promise<TransactionSignature> {
const start = Date.now();
const signature = await connection.sendRawTransaction(rawTransaction);
const status = (await connection.confirmTransaction(signature, confirmations))
.value;
const signature = await connection.sendRawTransaction(
rawTransaction,
options,
);
const status = (
await connection.confirmTransaction(
signature,
options && options.confirmations,
)
).value;
if (status) {
if (status.err) {

View File

@@ -4,6 +4,7 @@ import {Connection} from '../connection';
import {Transaction} from '../transaction';
import {sleep} from './sleep';
import type {Account} from '../account';
import type {ConfirmOptions} from '../connection';
import type {TransactionSignature} from '../transaction';
const NUM_SEND_RETRIES = 10;
@@ -17,15 +18,22 @@ export async function sendAndConfirmTransaction(
connection: Connection,
transaction: Transaction,
signers: Array<Account>,
confirmations: ?number,
options?: ConfirmOptions,
): Promise<TransactionSignature> {
const start = Date.now();
let sendRetries = NUM_SEND_RETRIES;
for (;;) {
const signature = await connection.sendTransaction(transaction, signers);
const signature = await connection.sendTransaction(
transaction,
signers,
options,
);
const status = (
await connection.confirmTransaction(signature, confirmations)
await connection.confirmTransaction(
signature,
options && options.confirmations,
)
).value;
if (status) {