# Q\&A 02 QUESTION 3/

3. **Làm thế nào để chờ giao dịch xác nhận hoàn tất bằng TonWeb?**\
   \
   Tôi đang viết một DApp (Decentralized Application - Ứng dụng phi tập trung) trên *chuỗi khối* TON và sử dụng thư viện JavaScript [`tonweb`](https://github.com/toncenter/tonweb) để tương tác với nó.\
   \
   Tôi muốn gửi một giao dịch trước, và sau khi nó xác nhận trên chuỗi, tôi sẽ thực hiện một số mã hiệu (code) JavaScript khác.\
   \
   Ví dụ:<br>

   ```js
   await ton.send('ton_sendTransaction', [{
           to: 'some address',
           value: '1000'
       }]
   )
   // chờ giao dịch xác nhận trên chuỗi
   console.log('Done!')
   ```

   \
   \
   Tôi không biết làm thế nào để đợi sự xác nhận của giao dịch.

Trả lời: \
\
Bạn có thể lưu lại hàm băm (hash) của giao dịch trước khi gửi nó đi và sau đó truy vấn phương thức API Toncenter [getTransactionByInMessageHash](https://toncenter.com/api/index/#/default/get_transaction_by_in_message_hash_getTransactionByInMessageHash_get) để kiểm tra nếu giao dịch có hàm băm như trên đã được xác nhận hay chưa.\
\
Ví dụ:

```js
// Hàm sleep:
const sleep = ms => new Promise(r => setTimeout(r, ms))

// `msg` là một Cell chứa lời nhắn bên ngoài của bạn
// Chuyển đổi lời nhắn Cell qua chuỗi BOC
const boc = await msg.toBoc(false)

// Tính toán hàm băm của nó
const hash = tonweb.utils.bytesToBase64(await msg.hash())

// Gửi lời nhắn và chạy vòng lặp cho tới khi giao dịch có hàm băm trên được xác nhận
await tonweb.sendBoc(boc)
var txs = []
while (txs.length == 0) {
    await sleep(1200) // xử lý delay trong một số hàm gọi API 
    const resp = await fetch(' + encodeURIComponent(hash))
    txs = await resp.json()
}

console.log('Xong!')
```

<br>
