Давайте начнем с самого начала, когда вы отправите транзакцию в блокчейн, вы сразу получите transactionHash
.txHash
Вы можете использовать его, чтобы проверить, когда ваш tx был принят (включен в блок) или отклонен,
Есть несколько альтернатив, которые вы можете использовать, как вы видите из официального документа web3
Одним из них может быть:
contract.methods.bet(number).send({
from: accounts[0],
gas: 3000000,
value: web3.utils.toWei(bet.toString(), 'ether')
}, (error, transactionHash) => {
if(error) // Handle the error
else {
txReceipt = null;
while(true) {
let txReceipt = web3.eth.getTransactionReceipt(txReceiptId);
if (txReceipt != null && typeof txReceipt !== 'undefined') {
break;
}
}
if (txReceipt.status == "0x1") // Actions to take when tx success
else // Actions to take when tx fails
}
})
Другой более короткой альтернативой может быть:
contract.methods.bet(number).send({
from: accounts[0],
gas: 3000000,
value: web3.utils.toWei(bet.toString(), 'ether')
}).on('receipt', (txReceipt) => {
if (txReceipt.status == "0x1") // Actions to take when tx success
else // Actions to take when tx fails
})
Поэтому нет необходимости рандомизировать ваше ожидание, используя 14-15 с:)