I should be able to reliably send transactions to testrpc from web3
When I load my dapp, the first time I try and send a transaction via web3, I get a nonce mismatch error. Then I reload the page and it works as expected. It seems to fail on every other reload. Using a mainnet rpc server, this does not happen.
I am using the new db functionality of testrpc & unlocking 2 accounts on startup
js console shows:
error happened... Error: Error: the tx doesn't have the correct nonce. account has nonce of: 15 tx has nonce of: 16
at runCall (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/lib/runTx.js:101:10)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3830:24
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:946:17)
at iterateeCallback (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:931:17)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:906:16
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3835:13
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/once.js:12:16
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:59:25)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:68:9
at eachLimit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/eachLimit.js:43:36)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/doLimit.js:9:16
at VM.AsyncEventEmitter.emit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/lib/AsyncEventEmitter.js:42:3)
at runCall (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/lib/runTx.js:101:10)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3830:24
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:946:17)
at iterateeCallback (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:931:17)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:906:16
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3835:13
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/once.js:12:16
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:59:25)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:68:9
at eachLimit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/eachLimit.js:43:36)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/doLimit.js:9:16
at VM.AsyncEventEmitter.emit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/lib/AsyncEventEmitter.js:42:3)
at Object.InvalidResponse (chrome-extension://himekenlppkgeaoeddcliojfddemadig/web3/inpage.js:8578:16)
at chrome-extension://himekenlppkgeaoeddcliojfddemadig/web3/inpage.js:18553:36
at XMLHttpRequest.request.onreadystatechange (chrome-extension://himekenlppkgeaoeddcliojfddemadig/web3/inpage.js:17339:13)
1.
2.
3.
4.
This is fairly annoying when trying to test a dapp in a local env.
Same problem. I work with metamask in the client...
@rodney757 & @stefanhuber you guys likely found MetaMask/metamask-extension#1999. MetaMask even added a helpful "reset account" button to their settings page so you can work around this problem.
Most helpful comment
Same problem. I work with metamask in the client...