С Ubuntu я попробовал Wallet/Mist и MetaMask в тестовой сети Ropsten: они оба уведомляют меня о неверных транзакциях перед вводом моего пароля. Я пытался сделать то же самое с сервером JSON-RPC обычным способом. Сервер продолжает отправлять плохие транзакции без какого-либо уведомления.
Что касается плохих транзакций, есть ли способ добиться того же эффекта, что и Wallet/Mist/MetaMask, с сервером JSON-RPC?
Нет. Конечная точка JSON RPC реализует функциональность в соответствии со спецификацией.
Mist/Metamask реализуют проверку транзакций внутри клиента перед отправкой транзакции на поддерживающий узел.
В вашем примере вы отправляете транзакцию непосредственно на узел, и поэтому вам необходимо заранее выполнить соответствующую проверку.
На самом деле вы можете прикрепить любые данные к транзакции, поэтому, хотя неправильно подписанные данные транзакции не будут делать то, что вы ожидаете, они не обязательно будут недействительными.
РЕДАКТИРОВАТЬ – Дополнительная информация
Если вы хотите определить, будет ли брошена транзакция, вам нужно запустить ее в среде, которая имитирует состояние цепочки, и посмотреть, что произойдет.
Geth и Parity реализуют [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimategas)
конечную точку, которая при вызове с вызовом функции, которая возвращает ошибку.
Винсент Дж. Руан
Томас Клоуз
eth_estimateGas
. Ответ отредактирован.Винсент Дж. Руан
Винсент Дж. Руан