Contract-Development

如何在發送到 JSON-RPC 伺服器時收到錯誤交易通知?

  • August 1, 2017

使用 Ubuntu,我在 Ropsten 測試網上嘗試了 Wallet/Mist 和 MetaMask:在輸入我的密碼之前,它們都會通知我有錯誤的交易。我嘗試以正常方式對 JSON-RPC 伺服器做同樣的事情。伺服器繼續發送不良交易,恕不另行通知。

關於不良交易,有沒有什麼方法可以實現與 JSON-RPC 伺服器的 Wallet/Mist/MetaMask 相同的效果?

否。JSON RPC 端點根據規範實現功能。

Mist/Metamask 在將事務發送到支持節點之前在客戶端內實現事務驗證。

在您的範例中,您將交易直接發送到節點,因此您需要提前進行適當的驗證。

實際上,您可以將任何數據附加到交易中,因此雖然錯誤簽名的交易數據不會按照您的預期進行,但它不一定是無效的。

編輯 - 更多資訊

如果你想辨別一個交易是否會拋出,你需要在一個模擬鏈狀態的環境中執行它,看看會發生什麼。

Geth 和 Parity 實現了[eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimategas)端點,當使用拋出的函式呼叫呼叫該端點時將返回錯誤。

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