Я использую web3 для развертывания смарт-контракта с ржавчиной JSON RP C в качестве сервера и использую ящики ethereum -types = "0.8.0" . Я могу вызвать метод web3 eth_gasPrice и eth_sendTransaction для ржавчины, который действует как JSON RP C сервер. Но для метода eth_getTransactionReceipt Я столкнулся с проблемой, упомянутой ниже, и у меня есть выходные данные отладчика. , Я заметил еще одну вещь, когда использую ethereum_types: {H160} , он работает нормально. только когда я использую ethereum_types: {H256} , это происходит из-за ошибки ниже.
{"jsonrp c": "2.0", "error": {"code ": -32602," message ":" Недопустимые параметры: недопустимая длина 40, ожидается шестнадцатеричная строка с префиксом 0x длиной 64. "}," Id ": 3}
2020-03-04 10:59:32,760 DEBUG [rpc] Response: {"jsonrpc":"2.0","result":"0xedfc9c2f4cfa7495c1a95cfe1cb856f5980d5e18","id":2}.
2020-03-04 10:59:32,760 DEBUG [hyper::proto::h1::io] flushed 202 bytes 2020-03-04 10:59:32,760 DEBUG
[tokio_reactor::registration] scheduling Read for: 2 2020-03-04 10:59:32,760 DEBUG
[tokio_reactor::registration] scheduling Read for: 2
2020-03-04 10:59:38,164 DEBUG [hyper::proto::h1::io] read 311 bytes
2020-03-04 10:59:38,164 DEBUG [hyper::proto::h1::io] parsed 5 headers
2020-03-04 10:59:38,164 DEBUG [hyper::proto::h1::conn] incoming body is content-length (117 bytes)
2020-03-04 10:59:38,164 DEBUG [hyper::proto::h1::conn] incoming body completed
2020-03-04 10:59:38,164 DEBUG [rpc] Response: {"jsonrpc":"2.0","error":
{"code":-32602,"message":"Invalid params: invalid length 40, expected a 0x-prefixed hex string with length of 64."},"id":3}.
2020-03-04 10:59:38,164 DEBUG [hyper::proto::h1::io] flushed 273 bytes
2020-03-04 10:59:38,164 DEBUG [tokio_reactor::registration] scheduling Read for: 1
2020-03-04 10:59:38,165 DEBUG [tokio_reactor::registration] scheduling Read for: 1