Pausable в OpenZeppelin: рубильник для смарт-контракта
- Опубликовано
- • 1 мин чтения•--- просмотров
В мире блокчейна обязательно нужна возможность остановить хаос. Бывает, что продумать всё не получилось, и в какой-то момент заложенные механизмы дают сбой. Тогда остаётся последний механизм: рубильник, включить или выключить.

Этот слайд показывали на конференции Devconnect 2025, которая прошла в Буэнос-Айресе, в Аргентине.
Pausable из OpenZeppelin
Для этого придуман механизм и интерфейс Pausable в библиотеке OpenZeppelin. На слайде выше он подключён к токену ERC20 через ERC20Pausable. Ставить контракт на паузу и снимать с неё может только владелец роли PAUSER_ROLE, а функции с модификатором whenNotPaused во время паузы не выполняются:
function pause() public onlyRole(PAUSER_ROLE) {
_pause();
}
function unpause() public onlyRole(PAUSER_ROLE) {
_unpause();
}
function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) whenNotPaused {
_mint(to, amount);
}
Не забывайте про рубильник
Я крайне рекомендую Pausable всем разработчикам смарт-контрактов. Никогда про него не забывайте: когда всё остальное уже не сработало, только он и позволяет остановить контракт.
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок