我最近一直在尝试松露,并遵循了以下教程:http://truffleframework.com/tutorials/pet-shop
每当我尝试设置一个事务时,我总是得到下面相同的错误
错误:错误: tx没有正确的nonce。帐户的随机数为: 14 tx的随机数为:0
已在网上查看并阅读了许多与此相关的文章,但到目前为止还没有找到可能导致此问题的原因。
据我所知,它似乎无法找到以前的交易来散列新的交易?
发布于 2017-11-22 15:59:50
使用MetaMask v3.14.1
,您可以按如下方式重置您的帐户:
重置帐户在设置菜单中,MetaMask有一个“重置帐户”按钮。此按钮会擦除当前帐户的交易历史记录,该历史记录用于计算当前帐户随机数。
普通用户不应该有使用此功能的理由。
这对于重置测试网络但希望继续使用同一帐户的开发人员很有用,这会迫使MetaMask相信此网络ID是处于全新状态的干净网络。
参考:http://metamask.helpscoutdocs.com/article/36-resetting-an-account
(感谢Tim Wu)
老回答: yatskevich的答案是正确的。
然而,对于人们如何使用“松露开发”的松露4+,你需要删除和重新安装MetaMask让它再次工作,每次你运行的松露开发!
这个问题在这里解决:https://github.com/trufflesuite/truffle/issues/681,这里:https://github.com/trufflesuite/ganache/issues/112,还有这里:https://github.com/MetaMask/metamask-extension/issues/1999
简而言之,他们正在做这件事,同时你每次都需要重新安装MetaMask!
发布于 2017-08-14 22:20:52
尝试在MetaMask中重新连接到您的TestRPC网络:
Main Ethereum Network
(或除Localhost 8545以外的任何主机)Localhost 8545
any 在停止并启动新的TestRPC节点后,我偶然发现了这个问题。
发布于 2019-05-16 16:14:57
检查您的truffle.js
或truffle-config.js
如果您使用如下所示的HDWalletProvider
,似乎这就是导致错误的原因
var HDWalletProvider = require("truffle-hdwallet-provider");
var mnemonic = "your mnemonic";
module.exports = {
networks: {
development: {
provider: function() {
return new HDWalletProvider(mnemonic, "http://127.0.0.1:8545/", 0, 50);
},
network_id: '*',
gas: 9999999
}
},
compilers: {
solc: {
version: "^0.4.25"
}
}
};
像下面这样删除HDWalletProvider,它解决了我的问题
module.exports = {
networks: {
development: {
host: "127.0.0.1", // Localhost
port: 8545, // Standard Ganache UI port
network_id: "*",
gas: 4600000
}
},
compilers: {
solc: {
version: "0.5.2"
}
}
};
https://stackoverflow.com/questions/45585735
复制相似问题