-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Error while parsing Osmosis block 13590870 with secp256k1 key #1419
Comments
Seems similar to #1417, but in this case the public key is invalid:
It's 33-bytes like we'd expect: |
Really this is a CosmRS (and Osmosis) issue as opposed to a tendermint-rs one. CosmRS tries to eagerly parse the public key, and it seems like we just won't be able to rely on chains not to put out garbage public keys. Those garbage public keys likely represent some sort of bug in Osmosis where it failed to validate the key in the first place, but once they wind up in the chain data there's really no way of fixing them. |
|
Possibly. You might open an Osmosis issue about this block and see if they can figure out what happened. |
Closing this, will followup if any news. |
@penso as a stopgap, you can parse these transactions as e.g. |
This is likely coming from the SDK not validating this first byte here: https://github.com/cosmos/cosmos-sdk/blob/main/crypto/keys/secp256k1/secp256k1.go#L203-L211 |
I opened a Cosmos SDK bug: cosmos/cosmos-sdk#20406 |
What went wrong?
I get a cryptographic error in this cosmos-rust line coming from this tendermint-rs line when parsing what seems to be a valid transaction. This is the mintscan transaction properly indexed.
Steps to reproduce
This is a code sample showing it fails.
Output:
Definition of "done"
We should be able to parse this public key without error
The text was updated successfully, but these errors were encountered: