From 0ce6abf0fe942fe7cb1d14b8e4485621be9c3fe8 Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Sat, 2 Nov 2024 02:49:06 +1100 Subject: [PATCH] fix(nonce): indentation mistake after last merge (#92) * fix an indentation mistake after last merge * add assertion to ensure nonce is not populated * assert populated nonce is populated, not transaction --- ethers/signer.nim | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/ethers/signer.nim b/ethers/signer.nim index 86e9093..b85aadc 100644 --- a/ethers/signer.nim +++ b/ethers/signer.nim @@ -119,18 +119,18 @@ method populateTransaction*( if transaction.gasPrice.isNone and (transaction.maxFee.isNone or transaction.maxPriorityFee.isNone): populated.gasPrice = some(await signer.getGasPrice()) - if transaction.nonce.isNone and transaction.gasLimit.isNone: - # when both nonce and gasLimit are not populated, we must ensure getNonce is - # followed by an estimateGas so we can determine if there was an error. If - # there is an error, the nonce must be decreased to prevent nonce gaps and - # stuck transactions - populated.nonce = some(await signer.getNonce()) - try: - populated.gasLimit = some(await signer.estimateGas(populated, BlockTag.pending)) - except EstimateGasError as e: - raise e - except ProviderError as e: - raiseSignerError(e.msg) + if transaction.nonce.isNone and transaction.gasLimit.isNone: + # when both nonce and gasLimit are not populated, we must ensure getNonce is + # followed by an estimateGas so we can determine if there was an error. If + # there is an error, the nonce must be decreased to prevent nonce gaps and + # stuck transactions + populated.nonce = some(await signer.getNonce()) + try: + populated.gasLimit = some(await signer.estimateGas(populated, BlockTag.pending)) + except EstimateGasError as e: + raise e + except ProviderError as e: + raiseSignerError(e.msg) else: if transaction.nonce.isNone: @@ -139,6 +139,8 @@ method populateTransaction*( if transaction.gasLimit.isNone: populated.gasLimit = some(await signer.estimateGas(populated, BlockTag.pending)) + doAssert populated.nonce.isSome, "nonce not populated!" + return populated method cancelTransaction*(