Dapp-Development
我如何對我的 DApp 進行程式以告訴我的使用者他們的操作/交易已被確認?
以投票 DApp 為例。使用者點擊投票按鈕,然後在幕後,包含投票的交易在區塊鏈上被探勘出來。然後 DApp 想要
alert('You have voted')
.由於交易需要一些時間才能被探勘並獲得一些確認,所以 DApp 在執行之前應該執行什麼程式碼
alert
?我聽說有人執行循環和呼叫getTransactionReceipt
. 這是應該如何完成的,還是替代方案?他們有任何程式碼片段或庫嗎?
在 web3.js 中,
.sendTransaction()
有一個回調。https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethsendtransaction
有關回調的更多資訊:https ://github.com/ethereum/wiki/wiki/JavaScript-API#using-callbacks
回調通常被呼叫兩次,一次是在交易到達網路時,另一次是在它被探勘時。
此外,
alert()
javascript 通常不鼓勵使用 using,因為它是一個阻塞呼叫,並且違背了 javascript 的非同步特性。(例如,最好使用 Bootstrap 彈出視窗。)
我在這裡提供了一個完整的工作程式碼範例,以判斷您的交易是否已被探勘:
(這也說明您是否用完了汽油:-)
請注意,如果您正在與之交談的節點不可信,則這不是 100% 可靠的。你怎麼知道它不是在說謊?您真的應該檢查以確保交易是在節點樣本上探勘的。AFAICT 我還沒有在乙太坊世界中看到這樣的範常式式碼。比特幣中有這樣的例子。我計劃在投入生產時實施此類程式碼(也就是使用真錢)