hardhat本地调试,如何快速过区块?

三火-0xstan 三火-0xstan 提出于 2021-06-11 20:05 5032 浏览

hardhat本地调试,如何快速过区块? 类似这样的:

const {  time } = require('@openzeppelin/test-helpers');

...
// 快速跳到第170区块
await time.advanceBlockTo('170');


最佳答案

2021-06-12 22:17

可以通过 evm_mine rpc 来控制出块:

advanceBlock = (web3) => {
  return new Promise((resolve, reject) => {
    web3.currentProvider.send({
      jsonrpc: '2.0',
      method: 'evm_mine',
      id: new Date().getTime()
    }, (err, result) => {
      if (err) { return reject(err) }
      const newBlockHash = web3.eth.getBlock('latest').hash

      return resolve(newBlockHash)
    })
  })
}

出 N 个块就是:

for (i = 0 ; i < n; i++) {
    await advanceBlock(web3);
  }
Tiny熊

擅长:智能合约,以太坊 · 采纳率 33% · 回答于 2021-06-12 09:33

其它 0 个回答

写回答

你需要登录后才可以回答问题,登录