stargate: Allow broadcast timing to be customized in SigningStargateClient

This commit is contained in:
willclarktech 2021-05-11 14:46:29 +02:00
parent d141a2101a
commit 0c2fe1b596
No known key found for this signature in database
GPG Key ID: 551A86E2E398ADF7

View File

@ -151,11 +151,15 @@ export interface SigningStargateClientOptions {
readonly prefix?: string;
readonly gasPrice?: GasPrice;
readonly gasLimits?: Partial<GasLimits<CosmosFeeTable>>;
readonly broadcastTimeoutMs?: number;
readonly broadcastPollIntervalMs?: number;
}
export class SigningStargateClient extends StargateClient {
public readonly fees: CosmosFeeTable;
public readonly registry: Registry;
public readonly broadcastTimeoutMs: number | undefined;
public readonly broadcastPollIntervalMs: number | undefined;
private readonly signer: OfflineSigner;
private readonly aminoTypes: AminoTypes;
@ -201,6 +205,8 @@ export class SigningStargateClient extends StargateClient {
this.registry = registry;
this.aminoTypes = aminoTypes;
this.signer = signer;
this.broadcastTimeoutMs = options.broadcastTimeoutMs;
this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;
}
public async sendTokens(
@ -306,7 +312,7 @@ export class SigningStargateClient extends StargateClient {
): Promise<BroadcastTxResponse> {
const txRaw = await this.sign(signerAddress, messages, fee, memo);
const txBytes = TxRaw.encode(txRaw).finish();
return this.broadcastTx(txBytes);
return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs);
}
/**