• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

[Решено] Как вы можете отладить смарт-контракт TON в FunC и распечатать журналы или дамп переменных?

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-funca-testing
2 Сообщения 1 Posters 75 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано Answers
    #1

    Я разрабатываю смарт-контракт для блокчейна TON в FunC и пытаюсь найти ошибку в своем коде. Я пытаюсь отладить проблему и буду признателен за что-то вроде console.log() из JavaScript, чтобы я мог добавлять отпечатки / журналы в стратегически важных местах и понимать, что происходит. Можно ли это сделать?


    Оригинал вопроса

    1 ответ Последний ответ
    0
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано
    #2

    Решено

    В 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
    
    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.