3

当我尝试将合同发送到 Ganache 时出现超时错误。我的代码如下,

const assert = require('assert');
const ganache = require('ganache-cli');
const Web3 = require('web3');
const web3 = new Web3(ganache.provider());
const {interface,bytecode} = require('../compile');

let accounts;
let inbox;

beforeEach(async() => {
accounts = await web3.eth.getAccounts();
inbox = await new web3.eth.Contract(JSON.parse(interface))
  .deploy({data: bytecode,arguments:['Hi There !'] })
  .send({from: accounts[0], gas:'1000000'});
});

describe("inbox", () => {
it('deploys a contract', () => {
    console.log(inbox);
 })
})

当我注释掉发送方法(如下提供)时,程序运行没有任何问题。但是,将其添加回来会引入超时错误。无论我为 mocha 超时分配多少时间,我仍然会遇到同样的错误。

.send({from: accounts[0], gas:'1000000'});

有类似的关于超时的帖子,如下所列, 错误:超过 2000 毫秒的超时。用于异步测试和钩子。使用 mocha 和 chai 进行单元测试

mocha 和 chai 超过 2000 毫秒的单元测试错误。用于异步测试和钩子

带有承诺的摩卡测试:错误:超过 2000 毫秒的超时

返回承诺时 Mocha 超过 2000 毫秒超时

上述解决方案都不适合我(主要是关于增加超时)。此外,我按照另一个论坛的建议降级了 web3 库。然而,它也没有奏效。

您可以在其他论坛上找到其他人发布的确切问题。显然,这个问题也没有得到任何潜在的答案。

4

1 回答 1

0

我安装了 truffle v5.0.24 并开始在 truffle 控制台上工作,它解决了所有问题。

于 2019-07-10T01:37:16.273 回答