Dapp-Development

我如何對我的 DApp 進行程式以告訴我的使用者他們的操作/交易已被確認?

  • February 9, 2016

以投票 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 我還沒有在乙太坊世界中看到這樣的範常式式碼。比特幣中有這樣的例子。我計劃在投入生產時實施此類程式碼(也就是使用真錢)

引用自:https://ethereum.stackexchange.com/questions/1188