gpt4 book ai didi

javascript - 如何通过 Hardhat 测试 RSK 测试网部署的智能合约?

转载 作者:行者123 更新时间:2023-12-05 00:30:54 26 4
gpt4 key购买 nike

我正在使用 Hardhat 在 RSK 测试网上部署和测试我的智能合约。这是hardhat.config.js我正在使用的设置:

require('@nomiclabs/hardhat-waffle');

const mnemonic = fs.readFileSync('.mnemonic', 'utf8').toString().trim();
const minimumGasPriceTestnet = 65164000;
const TESTNET_GAS_MULT = 1;
module.exports = {
solidity: '0.7.3',
defaultNetwork: 'rsktestnet',
networks: {
hardhat: {},
rsktestnet: {
chainId: 31,
url: 'https://public-node.testnet.rsk.co/',
gasPrice: Math.floor(minimumGasPriceTestnet * TESTNET_GAS_MULT),
gasMultiplier: TESTNET_GAS_MULT,
accounts: {
mnemonic,
initialIndex: 0,
count: 10,
},
},
},
};

不幸的是,我的测试失败了,我收到以下错误消息:
Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/ales/Work/IOV/demo-code-snippets/hardhat-tutorial/ethers-waffle/test/Token.js)
at listOnTimeout (internal/timers.js:554:17)
at processTimers (internal/timers.js:497:7)
这里有什么问题? done() 是什么意思指这里?

最佳答案

由于您正在部署到公共(public)区 block 链网络,
需要考虑区 block 挖掘间隔。
在 RSK 网络上,这大约需要 30 秒。
Mocha,这是hardhat使用的测试运行器框架,
当测试时间超过 20 秒时失败。
解决方案是配置 Mocha 使用更长的超时值,
在它因花费太长时间而未能通过测试之前。
这是reference hardhat config documentation .
将以下行添加到您的 hardhat.config.js ,
如果你想设置一个超时,
例如,10 分钟(60000 毫秒)。

mocha: {
timeout: 600000,
},

以及完整的 hardhat.config.js文件应如下所示:
module.exports = {
solidity: '0.7.3',
defaultNetwork: 'rsktestnet',
networks: {
rsktestnet: {
chainId: 31,
url: 'https://public-node.testnet.rsk.co/',
gasPrice: Math.floor(minimumGasPriceTestnet * TESTNET_GAS_MULT),
gasMultiplier: TESTNET_GAS_MULT,
accounts: {
mnemonic,
initialIndex: 0,
count: 10,
},
},
},
mocha: {
timeout: 600000,
},
};

关于javascript - 如何通过 Hardhat 测试 RSK 测试网部署的智能合约?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71645449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com