Аудит-чеклист перед деплоем в mainnet
Пройдёшь security-чеклист: роли, sender, bounce, replay, тесты и секреты — до отправки state-init в mainnet.
Чеклист безопасности
Деплой в mainnet фиксирует код и init-данные. Этот список — security-срез: не замена полного аудита, а минимум, без которого не стоит слать state-init. Рядом по смыслу — чеклист деплоя в разделе контрактов; здесь акцент на уязвимостях.
Пункты и автоматизация в CI
Обязательные проверки
- Роли — каждый admin/upgrade/withdraw/pause закрыт
sender() == …; нет «забытого» opcode. - Sender trust — все входящие от jetton-wallet / oracle / nft-item сверяют адрес, не только opcode.
- Replay — external с подписью имеют seqno/nonce; инкремент до эффекта.
- Bounce — оптимистичные списания имеют
bouncedс компенсацией; поля влезают в 224 бит. - Числа — границы сумм,
coins, нет записи в узкий слот безthrow_unless. - Init — owner/oracle/коды не из туториала; mainnet-адреса осознанны.
- Тесты — sandbox: happy path, чужой sender, replay, bounce, нехватка газа/value.
- Секреты — ключи деплоя не в git; см. статью про backend-ключи.
- Наблюдаемость — code hash, адрес, алерт на баланс и неожиданные outgoing.
Как это работает
- Чеклист проходят по коду и по тестам: галочка «проверил глазами» без failing-теста на чужой sender почти бесполезна.
- Отдельно гоняй testnet с теми же init-параметрами (кроме секретов), что mainnet.
- Для нетривиальной экономики (DEX, vault, bridge) чеклиста мало — нужен внешний аудит и bug bounty-план.
- Фиксируй версии компилятора в lockfile; воспроизводимая сборка — часть security.
Частые ошибки
Пропускаешь bounce-тесты «потому что на testnet не стреляло» → в mainnet контрпартия другая.
Считаешь deploy-чеклист достаточным → деплой про газ и процесс; этот список — про злоупотребления.
Оставляешь debug-метод drain / свободный setCode «на всякий» → вырежи до mainnet или закрой мультисигом.
Что дальше
- Деплой контракта в mainnet: чеклист — операционный процесс деплоя
- Типичные уязвимости контрактов — карта классов для ревью
- Безопасное хранение ключей в backend — секреты рядом с деплоем
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация