#cosmos #proto #blockchain #tendermint

cosmos-sdk-proto-althea

Protobuf stuct defintions for interacting with Cosmos SDK powered blockchains

22 releases

0.18.0 Oct 3, 2024
0.16.1 Mar 18, 2024
0.16.0 Sep 8, 2023
0.14.2 Jun 7, 2023
0.9.1 Nov 23, 2021

#7 in #tendermint

Download history 459/week @ 2024-07-25 238/week @ 2024-08-01 190/week @ 2024-08-08 104/week @ 2024-08-15 233/week @ 2024-08-22 473/week @ 2024-08-29 664/week @ 2024-09-05 672/week @ 2024-09-12 548/week @ 2024-09-19 599/week @ 2024-09-26 1156/week @ 2024-10-03 664/week @ 2024-10-10 874/week @ 2024-10-17 428/week @ 2024-10-24 531/week @ 2024-10-31 684/week @ 2024-11-07

2,582 downloads per month
Used in 13 crates (3 directly)

Apache-2.0

1MB
16K SLoC

cosmos-sdk-proto

Crate Docs Build Status Apache 2.0 Licensed MSRV

Rust crate for interacting with Protobufs defined by the Cosmos SDK.

The goal of this crate is to provide complete proto struct definitions for interacting with a Cosmos SDK blockchain.

Currently, this crate only provides a subset of the many total structs exported by Cosmos SDK proto files.

Pull requests to expand coverage are welcome.

Documentation

Minimum Supported Rust Version

This crate is supported on Rust 1.56 or newer.

Issues with the Cosmos Staking module prost file

Unfortunately (the upstream source for the CosmosSDK staking module proto definitions)https://github.com/cosmos/cosmos-sdk/blob/v0.45.16/proto/cosmos/staking/v1beta1/authz.proto#L20-L30 causes a namespace conflict when using prost. Particularly there is a oneof named validators which becomes a Rust enum named Validators and a message named Validators which becomes a Rust struct named Validators, which causes a failure to compile.

Whenever this file is updated it has been manually fixed to rename the enum to ValidatorsEnum and the relative disuse of the StakingAuthorization types means that is OK for now. If you run proto_build and see the src/prost/cosmos.staking.v1beta1.rs file has changed in insignificant ways, it is fine to ignore that file.

Dependencies

~0.4–6MB
~33K SLoC