From 414fb28a5e1c0fbf6efc8ba925a2257aafd2fa73 Mon Sep 17 00:00:00 2001 From: poma Date: Thu, 26 Nov 2020 10:34:40 +0300 Subject: [PATCH] more general fix for tx error --- package.json | 2 +- src/Transaction.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 7fd0cf9..c0a1a64 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tx-manager", - "version": "0.2.8", + "version": "0.2.9", "description": "", "main": "index.js", "scripts": { diff --git a/src/Transaction.js b/src/Transaction.js index b955c23..b632d3e 100644 --- a/src/Transaction.js +++ b/src/Transaction.js @@ -13,12 +13,14 @@ const nonceErrors = [ const gasPriceErrors = [ 'Transaction gas price supplied is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.', 'replacement transaction underpriced', + 'transaction underpriced', /Transaction gas price \d+wei is too low. There is another transaction with same nonce in the queue with gas price: \d+wei. Try increasing the gas price or incrementing the nonce./, ] // prettier-ignore const sameTxErrors = [ 'Transaction with the same hash was already imported.', + 'already known', ] class Transaction { @@ -268,8 +270,13 @@ class Transaction { } _handleSendError(e) { - if (e.error && e.error.code === 'SERVER_ERROR') { - const message = e.error.error.message + if (e.error.error) { + // Sometimes ethers wraps known errors, unwrap it in this case + e = e.error + } + + if (e.error && e.code === 'SERVER_ERROR') { + const message = e.error.message // nonce is too low, trying to increase and resubmit if (this._hasError(message, nonceErrors)) {