В TVM есть специальная функция для сброса переменных в debug - ~дамп
Запустите ~dump(имя_переменной);, чтобы напечатать содержимое переменной.
Запустите ~dump(12345);, чтобы напечатать число 12345.
Пример:
() recv_internal(int msg_value, cell in_msg, slice in_msg_body) impure { ;; let's say I want to print the value of the variable msg_value ~dump(msg_value); }Пожалуйста, обратите внимание, что эта команда не будет выполняться в основной сети, поэтому не развертывайте производственные контракты с ее помощью. Мой любимый способ локального тестирования смарт-контрактов - это использование [ton-contract-executor](https://github.com/Naltox/ton-contract - executor) - эта потрясающая библиотека запускает локальную версию TVM в веб-сборке прямо внутри Node.js , что очень удобно для написания тестов на JavaScript/TypeScript.
Чтобы включить отладочную печать в ton-contract-executor, при создании экземпляра контракта передайте debug: true в SmartContractConfig и распечатайте журналы после взаимодействия с контрактом:
import { SmartContract } from "ton-contract-executor"; const contract = await SmartContract.fromCell(codeCell, dataCell, { debug: true // enable debug }); const send = await contract.sendInternalMessage(...); console.log(send.logs); // print the logs