Подпишись на канал фаундера и разработчика экосистемы tonpie
[Решено] Как я могу дождаться подтверждения транзакции с помощью TonWeb?
-
Я пишу простое 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!')
Я не знаю, как дождаться подтверждения транзакции.
-
Вы можете сохранить хэш транзакции перед ее отправкой, а затем запросить метод 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!')