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

  • reset theme
Collapse

tonpie.io

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

[Решено] Как я могу дождаться подтверждения транзакции с помощью TonWeb?

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

    Я пишу простое DApp на блокчейне _TON и использую tonweb Библиотека JavaScript для взаимодействия с ней.

    Мне нужно сначала отправить транзакцию, а затем, после ее подтверждения по цепочке, выполнить какой-нибудь другой код на JavaScript.

    Пример:

    await ton.send('ton_sendTransaction', [{
            to: 'some address',
            value: '1000'
        }]
    )
    // wait for tx to confirm on chain
    console.log('Done!')
    

    Я не знаю, как дождаться подтверждения транзакции.


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

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

    Решено

    Вы можете сохранить хэш транзакции перед ее отправкой, а затем запросить метод API Toncenter getTransactionByInMessageHash, чтобы проверить, была ли подтверждена транзакция с таким хэшем или нет

    Пример:

    // Sleep function:
    const sleep = ms => new Promise(r => setTimeout(r, ms))
    
    // `msg` is a Cell containing your external message
    // Convert message Cell to BOC String
    const boc = await msg.toBoc(false)
    
    // Calculate it's hash
    const hash = tonweb.utils.bytesToBase64(await msg.hash())
    
    // Send message and run a loop until transaction with that hash confirms
    await tonweb.sendBoc(boc)
    var txs = []
    while (txs.length == 0) {
        await sleep(1200) // some delay between API calls
        const resp = await fetch('https://toncenter.com/api/index/getTransactionByInMessageHash?&include_msg_body=false&msg_hash=' + encodeURIComponent(hash))
        txs = await resp.json()
    }
    
    console.log('Done!')
    
    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.