From 9e6cbf1139eb8eb1e5147c81660bfc22931055af Mon Sep 17 00:00:00 2001 From: Petar Penovic Date: Tue, 24 Sep 2024 17:33:15 +0200 Subject: [PATCH] chore: sync configuration options for both channel versions --- src/channel/rpc_0_6.ts | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/channel/rpc_0_6.ts b/src/channel/rpc_0_6.ts index 1558f3b85..491ae32f9 100644 --- a/src/channel/rpc_0_6.ts +++ b/src/channel/rpc_0_6.ts @@ -51,13 +51,24 @@ export class RpcChannel { private specVersion?: string; + private transactionRetryIntervalFallback?: number; + readonly waitMode: Boolean; // behave like web2 rpc and return when tx is processed private batchClient?: BatchClient; constructor(optionsOrProvider?: RpcProviderOptions) { - const { nodeUrl, retries, headers, blockIdentifier, chainId, specVersion, waitMode, batch } = - optionsOrProvider || {}; + const { + nodeUrl, + retries, + headers, + blockIdentifier, + chainId, + specVersion, + waitMode, + transactionRetryIntervalFallback, + batch, + } = optionsOrProvider || {}; if (Object.values(NetworkName).includes(nodeUrl as NetworkName)) { this.nodeUrl = getDefaultNodeUrl(nodeUrl as NetworkName, optionsOrProvider?.default); } else if (nodeUrl) { @@ -72,6 +83,7 @@ export class RpcChannel { this.specVersion = specVersion; this.waitMode = waitMode || false; this.requestId = 0; + this.transactionRetryIntervalFallback = transactionRetryIntervalFallback; if (typeof batch === 'number') { this.batchClient = new BatchClient({ @@ -82,6 +94,10 @@ export class RpcChannel { } } + private get transactionRetryIntervalDefault() { + return this.transactionRetryIntervalFallback ?? 5000; + } + public setChainId(chainId: StarknetChainId) { this.chainId = chainId; } @@ -267,7 +283,7 @@ export class RpcChannel { let { retries } = this; let onchain = false; let isErrorState = false; - const retryInterval = options?.retryInterval ?? 5000; + const retryInterval = options?.retryInterval ?? this.transactionRetryIntervalDefault; const errorStates: any = options?.errorStates ?? [ RPC.ETransactionStatus.REJECTED, // TODO: commented out to preserve the long-standing behavior of "reverted" not being treated as an error by default