diff --git a/ethers/contract.nim b/ethers/contract.nim index c590313..7f1e117 100644 --- a/ethers/contract.nim +++ b/ethers/contract.nim @@ -123,7 +123,7 @@ proc send(contract: Contract, Future[?TransactionResponse] {.async.} = if signer =? contract.signer: let transaction = createTransaction(contract, function, parameters, overrides) - let populated = await signer.populateTransaction(transaction) + let populated = await signer.populateTransaction(transaction, cancelOnEstimateGasError = true) let txResp = await signer.sendTransaction(populated) return txResp.some else: diff --git a/ethers/signer.nim b/ethers/signer.nim index 089600c..1c53207 100644 --- a/ethers/signer.nim +++ b/ethers/signer.nim @@ -1,7 +1,12 @@ import ./basics import ./provider +import pkg/chronicles export basics +export chronicles + +logScope: + topics = "ethers signer" type Signer* = ref object of RootObj @@ -87,7 +92,8 @@ method decreaseNonce*(signer: Signer) {.base, gcsafe.} = signer.lastSeenNonce = some lastSeen - 1 method populateTransaction*(signer: Signer, - transaction: Transaction): + transaction: Transaction, + cancelOnEstimateGasError = false): Future[Transaction] {.base, async.} = if sender =? transaction.sender and sender != await signer.getAddress(): diff --git a/testmodule/testContracts.nim b/testmodule/testContracts.nim index 2c85216..bc5adae 100644 --- a/testmodule/testContracts.nim +++ b/testmodule/testContracts.nim @@ -9,6 +9,7 @@ import ./hardhat import ./helpers import ./miner import ./mocks +import ./examples type TestToken = ref object of Erc20Token