-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Closed
Labels
enhancementNew feature or improvement.New feature or improvement.fixed/completeThis Bug is fixed or Enhancement is complete and published.This Bug is fixed or Enhancement is complete and published.v6Issues regarding v6Issues regarding v6
Description
Ethers Version
6.6.2
Search Terms
provider
Describe the Problem
My provider is configured as follows
export const provider = new ethers.FallbackProvider([
{
provider: new ethers.JsonRpcProvider(process.env.NODE_URL_1),
priority: 1,
weight: 2
},
{
provider: new ethers.JsonRpcProvider(process.env.NODE_URL_2),
priority: 2,
weight: 2
},
{
provider: new ethers.JsonRpcProvider(process.env.NODE_URL_3),
priority: 3,
weight: 2
}
])
When making a smart contract call await contractName.something() the TX succeeds on the explorer but ethers throws one of these errors-
Feed update failed Error: nonce has already been used (transaction="0x02f8b5820fa2830468d8843b9aca0084b2d05e0083030d409428e449afc8a04ed97ca840aa83b64c7c1f5f55ad80b84417835d1c000000000000000000000000000000000000000000000000000000000004809900000000000000000000000000000000000000000000000000000000649d5023c080a0b6c47a90cdae1b294a9349db737ab282ce77b9c201777efaa6b8c0446e0156c9a04d5a1d45dc73d4017e688797e583c232ca1382e1ecdfbf0377578282862cbf44", info={ "error": { "code": -32000, "message": "nonce too low" } }, code=NONCE_EXPIRED, version=6.6.2)
at makeError (/home/hp/Documents/voodoo/voodoo-keeper-server/node_modules/ethers/src.ts/utils/errors.ts:677:21)
at JsonRpcProvider.getRpcError (/home/hp/Documents/voodoo/voodoo-keeper-server/node_modules/ethers/src.ts/providers/provider-jsonrpc.ts:949:33)
at /home/hp/Documents/voodoo/voodoo-keeper-server/node_modules/ethers/src.ts/providers/provider-jsonrpc.ts:524:45
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'NONCE_EXPIRED',
transaction: '0x02f8b5820fa2830468d8843b9aca0084b2d05e0083030d409428e449afc8a04ed97ca840aa83b64c7c1f5f55ad80b84417835d1c000000000000000000000000000000000000000000000000000000000004809900000000000000000000000000000000000000000000000000000000649d5023c080a0b6c47a90cdae1b294a9349db737ab282ce77b9c201777efaa6b8c0446e0156c9a04d5a1d45dc73d4017e688797e583c232ca1382e1ecdfbf0377578282862cbf44',
info: { error: { code: -32000, message: 'nonce too low' } }
}
Feed update failed Error: could not coalesce error (error={ "code": -32000, "message": "already known" }, payload={ "id": 37, "jsonrpc": "2.0", "method": "eth_sendRawTransaction", "params": [ "0x02f8b5820fa2830468db843b9aca0084b2d05e0083030d409428e449afc8a04ed97ca840aa83b64c7c1f5f55ad80b84417835d1c00000000000000000000000000000000000000000000000000000000000480ee00000000000000000000000000000000000000000000000000000000649d50a1c080a08d69aa7c4989adaf2ae58f5f44d08ce7adb4a614b9fd02e26c4dde547a925d57a06f99a70f002bf589df028b26ccf6abf3f554da8feaa8e594b5f72e52a31ff7d8" ] }, code=UNKNOWN_ERROR, version=6.6.2)
at makeError (/home/hp/Documents/voodoo/voodoo-keeper-server/node_modules/ethers/src.ts/utils/errors.ts:677:21)
at JsonRpcProvider.getRpcError (/home/hp/Documents/voodoo/voodoo-keeper-server/node_modules/ethers/src.ts/providers/provider-jsonrpc.ts:977:25)
at /home/hp/Documents/voodoo/voodoo-keeper-server/node_modules/ethers/src.ts/providers/provider-jsonrpc.ts:524:45
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'UNKNOWN_ERROR',
error: { code: -32000, message: 'already known' },
payload: {
method: 'eth_sendRawTransaction',
params: [
'0x02f8b5820fa2830468db843b9aca0084b2d05e0083030d409428e449afc8a04ed97ca840aa83b64c7c1f5f55ad80b84417835d1c00000000000000000000000000000000000000000000000000000000000480ee00000000000000000000000000000000000000000000000000000000649d50a1c080a08d69aa7c4989adaf2ae58f5f44d08ce7adb4a614b9fd02e26c4dde547a925d57a06f99a70f002bf589df028b26ccf6abf3f554da8feaa8e594b5f72e52a31ff7d8'
],
id: 37,
jsonrpc: '2.0'
}
}
One reason could be that Ethers calls eth_sendRawTransaction on multiple RPC servers. The first TX succeeds and the duplicates fail. Some context about our setup. We want to run one JsonRpcProvider at a time. The others are for redundancy and are therefore have different priorities. The errors are not thrown if we leave a single RPC and comment out the rest.
Code Snippet
No response
Contract ABI
No response
Errors
No response
Environment
Ethereum (mainnet/ropsten/rinkeby/goerli), Altcoin - Please specify (e.g. Polygon), node.js (v12 or newer)
Environment (Other)
Fantom testnet
Metadata
Metadata
Assignees
Labels
enhancementNew feature or improvement.New feature or improvement.fixed/completeThis Bug is fixed or Enhancement is complete and published.This Bug is fixed or Enhancement is complete and published.v6Issues regarding v6Issues regarding v6