Ошибка: FunC — cannot compute при чтении cell
Причина и решение ошибки FunC «cannot compute» при чтении или константном разборе cell.
FunC: «cannot compute» при чтении cell
Компилятор FunC (или fift-константный контекст) не смог статически вычислить выражение с cell/slice: значение известно только в runtime, а код требует compile-time константу.
Причина
load_uint/ разбор cell вconst/ глобальной инициализации;asmили встроенная функция помечена как вычислимая только в runtime;#include/ константный hash от данных, которые ещё не зафиксированы;- попытка
cell_hash(...)над неконстантным builder на этапе compile.
Решение
Если нужен hash кода/data при деплое — считай его в TypeScript (Cell.hash()) и передавай в контракт аргументом, а не пытайся «вычислить» в FunC const-секции из динамической cell.
Как избежать в будущем
В FunC разделяй: const = литералы и простые арифметические константы; parse cell = только в impure runtime-функциях. Если компилятор пишет cannot compute — вынеси выражение из const-контекста.
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация