Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
(core, sequencer)!: generate serde traits impls for all protocol prot…
…obufs (#1260) ## Summary This patch ensures extends our generated serde `Deserialize` and `Serialize` trait implementations to all protobuf messages defined in `astria.protocol`. ## Background So far the protocol-specs did not have serde traits generated, but these are necessary to write out bridge-withdrawer actions as JSON. A side-effect of this patch is that all of `proto/protocolapis/astria_vendored` is now also commited to the repository (they were previously filtered). Very likely this is not desired but should be addressed in a followup. It is not clear to the author of this patch in how far these types might be necessary. ## Changes - Generate serde `Deserialize` and `Serialize` impls for Rust types generated from `astria.protocol` and `astria_vendored` protobufs - Use a vendored `astria_vendored::tendermint::abci::ValidatorUpdate` instead of `tendermint_proto`: `[email protected]` does not yet have serde impls for its types, which blocks us from having an easy way to use `pbjson` generated serde impls - Introduce a new `ValidatorUpdate` action to replace `tendermint::validator::Update` to transform to/from the vendored protobuf type (again necessary to implement serde and foreign type restrictions) - Update sequencer to use the new `ValidatorUpdate` type ## Testing All tests have been upgraded and still pass. Specifically, ingestion of validator updates happens through cometbft, which were already tested end-to-end. ## Breaking Changelist - Marked as breaking even though none of the breaking change tests are affected: the serialization shape of the validator updates has changed. As they are commited to state using json, this should be breaking.
- Loading branch information