TGViewer
DEV: Рубиновые тона DEV: Рубиновые тона @dev_in_ruby_colors · 3.28K subscribers
Post #428 1.12K
По мотивам обсуждения в чате зафиксирую полезные команды для evm в hardhat и не только (полезно в тестах).

Не забудьте сделать сначала:

import { network, ethers } from 'hardhat';


* await network.provider.send("evm_increaseTime", [timeInSeconds]); - поставит метку времени для следующего блока на значение "текущая метка времени + timeInSeconds". Обратите внимание, что майнинг следующего блока не произойдёт автоматически, то есть грубо говоря само по себе время не перескочит. Впрочем, подобная форма записи должна работать и для ethers тоже, то есть ethers.provider.send. Для того, чтобы сделать майнинг вам нужен...

* await network.provider.send('evm_mine'); - сделает майнинг пустого блока. Вот у него уже будет новое время, если перед evm_mine вы говорили evm_increaseTime. Но можно сделать и проще...

* await network.provider.send('evm_mine', [newTimestamp]); - сразу сделать майнинг нового блока с новой меткой времени. Обратите внимание, что нужно передавать именно новую метку, а не просто кол-во секунд, на которое вы хотите увеличить время. Поэтому можно подойти подход вида

const blockNumBefore = await ethers.provider.getBlockNumber();

const blockBefore = await ethers.provider.getBlock(blockNumBefore);

await network.provider.send('evm_mine', [blockBefore.timestamp + 1200]); // увеличиваем на 1200 секунд


* await network.provider.send("hardhat_reset") - сбросит локальный блокчейн. То есть сбросит совсем: текущий блок будет опять нулевым, время вернётся к текущему, данные потеряются. Можно засунуть в beforeEach, чтобы перед каждым тестом получать девственно чистый блокчейн (впрочем, если в beforeEach вы делаете заново деплой, то контракты у вас и так будут свежие).

Отмотать время назад (типа decrease time), увы, не получится.
  • 👍 13
More from @dev_in_ruby_colors
  1. Oct 4, 2026В этом уроке по абстрактной алгебре говорим про ideals (идеалы), factor (quotient) rings и…
  2. Sep 28, 2026Github буйствует
  3. Sep 26, 2026В этом уроке по абстрактной алгебре говорим про области целостности, делители нуля, характ…
  4. Sep 22, 2026А тем временем сказ о ведьмаке, потерявшем память, уже доступен в виде аудиокниги. Целых 1…
  5. Sep 20, 2026В этом уроке по абстрактной алгебре продолжаем говорить о кольцах: в частности о subrings…
  6. Sep 17, 2026Сделал обзор актуальных библиотек JS для сбора данных, 10 штук бодрых решений на все случа…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →