From 5e92b3198176b6ef0f1e721972648e4eb2c80079 Mon Sep 17 00:00:00 2001 From: Romain Ruetschi Date: Thu, 14 Sep 2023 10:03:07 +0200 Subject: [PATCH] Add protos for `ibc.lightclients.localhost.v1` (#143) * Add protos for `ibc.lightclients.localhost.v1` * Add changelog entry --- .../unreleased/features/143-localhost-v1.md | 2 ++ .../lightclients/localhost/v1/localhost.proto | 18 ++++++++++++++++++ src/lib.rs | 3 +++ src/prost/ibc.lightclients.localhost.v1.rs | 12 ++++++++++++ src/prost/proto_descriptor.bin | Bin 700945 -> 716235 bytes tools/proto-compiler/src/cmd/compile.rs | 2 ++ 6 files changed, 37 insertions(+) create mode 100644 .changelog/unreleased/features/143-localhost-v1.md create mode 100644 definitions/ibc/lightclients/localhost/v1/localhost.proto create mode 100644 src/prost/ibc.lightclients.localhost.v1.rs diff --git a/.changelog/unreleased/features/143-localhost-v1.md b/.changelog/unreleased/features/143-localhost-v1.md new file mode 100644 index 00000000..1e114fd9 --- /dev/null +++ b/.changelog/unreleased/features/143-localhost-v1.md @@ -0,0 +1,2 @@ +- Add proto definition for `ibc.lightclients.localhost.v1` + ([\#143](https://github.com/cosmos/ibc-proto-rs/pull/143)) \ No newline at end of file diff --git a/definitions/ibc/lightclients/localhost/v1/localhost.proto b/definitions/ibc/lightclients/localhost/v1/localhost.proto new file mode 100644 index 00000000..ad0141af --- /dev/null +++ b/definitions/ibc/lightclients/localhost/v1/localhost.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package ibc.lightclients.localhost.v1; + +option go_package = "github.com/cosmos/ibc-go/v6/modules/light-clients/09-localhost/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; + +// ClientState defines a loopback (localhost) client. It requires (read-only) +// access to keys outside the client prefix. +message ClientState { + option (gogoproto.goproto_getters) = false; + // self chain ID + string chain_id = 1 [(gogoproto.moretags) = "yaml:\"chain_id\""]; + // self latest block height + ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; +} diff --git a/src/lib.rs b/src/lib.rs index 9e21a9b6..7006347d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -229,6 +229,9 @@ pub mod ibc { } pub mod lightclients { pub mod localhost { + pub mod v1 { + include_proto!("ibc.lightclients.localhost.v1.rs"); + } pub mod v2 { include_proto!("ibc.lightclients.localhost.v2.rs"); } diff --git a/src/prost/ibc.lightclients.localhost.v1.rs b/src/prost/ibc.lightclients.localhost.v1.rs new file mode 100644 index 00000000..980676d1 --- /dev/null +++ b/src/prost/ibc.lightclients.localhost.v1.rs @@ -0,0 +1,12 @@ +/// ClientState defines a loopback (localhost) client. It requires (read-only) +/// access to keys outside the client prefix. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ClientState { + /// self chain ID + #[prost(string, tag = "1")] + pub chain_id: ::prost::alloc::string::String, + /// self latest block height + #[prost(message, optional, tag = "2")] + pub height: ::core::option::Option, +} diff --git a/src/prost/proto_descriptor.bin b/src/prost/proto_descriptor.bin index 03bda7b9245d127678361e0ba55a9d530c491763..45d2bf4f50460662972b77ce3027c9e54fe93bb2 100644 GIT binary patch delta 37305 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 Z?lAk<_w@2v_6K*E=W$vM>&zXw{|^q9|A+tp delta 23185 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 diff --git a/tools/proto-compiler/src/cmd/compile.rs b/tools/proto-compiler/src/cmd/compile.rs index 3bf1421d..c828d19e 100644 --- a/tools/proto-compiler/src/cmd/compile.rs +++ b/tools/proto-compiler/src/cmd/compile.rs @@ -63,6 +63,7 @@ impl CompileCmd { // Paths let proto_paths = [ format!("{}/../../definitions/mock", root), + format!("{}/../../definitions/ibc/lightclients/localhost/v1", root), format!("{}/../../definitions/stride/interchainquery/v1", root), format!("{}/ibc", ibc_dir.display()), format!("{}/cosmos/auth", sdk_dir.display()), @@ -82,6 +83,7 @@ impl CompileCmd { format!("{}", ibc_dir.display()), format!("{}", ics_dir.display()), format!("{}/../../definitions/mock", root), + format!("{}/../../definitions/ibc/lightclients/localhost/v1", root), format!("{}/../../definitions/stride/interchainquery/v1", root), ];