Ire*_*ios 5 javascript mocha.js rsk hardhat
我正在使用 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,
},
},
},
};
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的测试失败,并且收到以下错误消息:
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)
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?done()这里指的是什么?
由于您要部署到公共区块链网络,因此需要考虑区块挖掘间隔。在 RSK 网络上,这大约需要 30 秒。Mocha(hardhat 使用的测试运行器框架)在测试时间超过 20 秒时会失败。
解决方案是将 Mocha 配置为使用更长的超时值,以免因花费太长时间而导致测试失败。这是参考安全帽配置文档。
hardhat.config.js如果您希望设置超时,例如 10 分钟(60000 毫秒),请将以下行添加到您的。
mocha: {
timeout: 600000,
},
Run Code Online (Sandbox Code Playgroud)
完整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,
},
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |