From ccd3e218342ae9b10ae127faa91c79f5e7b55801 Mon Sep 17 00:00:00 2001 From: AnhVAR Date: Mon, 29 Jul 2024 11:16:08 +0700 Subject: [PATCH] skip throw error getaccountnumber when signtx in case msg_noop --- src/wallet/wallet.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/wallet/wallet.ts b/src/wallet/wallet.ts index 357c570..b1289d0 100644 --- a/src/wallet/wallet.ts +++ b/src/wallet/wallet.ts @@ -249,7 +249,18 @@ export class Wallet { // Extract the relevant account data const address: string = await this.getAddress(); - const accountNumber: number = await this.provider.getAccountNumber(address); + // For case Sponsor Service will skip getAccountNumber if account not initialized + let accountNumber: number = 0; + if (tx.messages[0].typeUrl === '/vm.m_noop') { + try { + accountNumber = await this.provider.getAccountNumber(address); + } catch (e) { + // Skip getAccountNumber if account not initialized + accountNumber = 0; + } + } else { + accountNumber = await this.provider.getAccountNumber(address); + } const accountSequence: number = await this.provider.getAccountSequence(address); const publicKey: Uint8Array = await this.signer.getPublicKey();