-
Notifications
You must be signed in to change notification settings - Fork 258
Description
RPC client fails to decode block_results response with non empty validator_updates.
@mankenavenkatesh has reported this problem, thanks Venkatesh! It shows on a number of chains when hermes tries to look for begin/end blocker IBC events by calling the block_results RPC.
Decoding the response fails when validator_updates is not empty. This is reported for some chains at tm-go version v0.34.14. I believe the format is different than what we expect, here is one example of validator_updates from one chain:
"validator_updates": [
{
"pub_key": {
"Sum": {
"type": "tendermint.crypto.PublicKey_Ed25519",
"value": {
"ed25519": "VqJCr3vjQdffcLIG6RMBl2MgXDFYNY6b3Joaa43gV3o="
}
}
},
"power": "573929"
}
],
I don't think there were recent changes in the crypto PubKey proto definition, maybe this never worked.
Full output of curl http://18.191.147.51:26657/block_results?height=4555980 can be found here.
Steps to reproduce
Use the above structure for validator_updates in the RPC block_results test fixture. The output is:
called `Result::unwrap()` on an `Err` value: serde parse error
Caused by:
missing field `type` at line 103 column 9
What's the definition of "done" for this issue?
Be able to decode the block_results response with non-nil validator updates.