feat(client/v2): implement version filtering using annotation (backport #20083) (#20099)

Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot]
2024-04-19 09:38:55 +00:00
committed by GitHub
co-authored by Julien Robert
parent a2abf1a442
commit 2a32f4287d
14 changed files with 983 additions and 472 deletions
+2 -1
View File
@@ -42,9 +42,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (deps) [#19810](https://github.com/cosmos/cosmos-sdk/pull/19810) Upgrade SDK version to due prometheus breaking change.
* (deps) [#19810](https://github.com/cosmos/cosmos-sdk/pull/19810) Bump `cosmossdk.io/store` to v1.1.0.
* [#20083](https://github.com/cosmos/cosmos-sdk/pull/20083) Integrate latest version of cosmos-proto and improve version filtering.
* [#19618](https://github.com/cosmos/cosmos-sdk/pull/19618) Marshal enum as string in queries.
* [#19060](https://github.com/cosmos/cosmos-sdk/pull/19060) Use client context from root (or enhanced) command in autocli commands.
* Note, the given command must have a `client.Context` in its context.
* Note, the given command must have a `client.Context` in its context.
* [#19216](https://github.com/cosmos/cosmos-sdk/pull/19216) Do not overwrite TxConfig, use directly the one provided in context. TxConfig should always be set in the `client.Context` in `root.go` of an app.
### Bug Fixes
+14 -1
View File
@@ -114,7 +114,7 @@ err := autoCliOpts.EnhanceRootCommand(rootCmd)
## Signing
`autocli` supports signing transactions with the keyring.
The [`cosmos.msg.v1.signer` protobuf annotation](https://github.com/cosmos/cosmos-sdk/blob/9dd34510e27376005e7e7ff3628eab9dbc8ad6dc/docs/build/building-modules/05-protobuf-annotations.md#L9) defines the signer field of the message.
The [`cosmos.msg.v1.signer` protobuf annotation](https://docs.cosmos.network/main/build/building-modules/protobuf-annotations) defines the signer field of the message.
This field is automatically filled when using the `--from` flag or defining the signer as a positional argument.
:::warning
@@ -194,6 +194,19 @@ https://github.com/cosmos/cosmos-sdk/blob/fa4d87ef7e6d87aaccc94c337ffd2fe90fcb7a
If not set to true, `AutoCLI` will not generate commands for the module if there are already commands registered for the module (when `GetTxCmd()` or `GetTxCmd()` are defined).
### Skip a command
AutoCLI automatically skips unsupported commands when [`cosmos_proto.method_added_in` protobuf annotation](https://docs.cosmos.network/main/build/building-modules/protobuf-annotations) is present.
Additionally, a command can be manually skipped using the `autocliv1.RpcCommandOptions`:
```go
*autocliv1.RpcCommandOptions{
RpcMethod: "Params", // The name of the gRPC service
Skip: true,
}
```
### Use AutoCLI for non module commands
It is possible to use `AutoCLI` for non module commands. The trick is still to implement the `appmodule.Module` interface and append it to the `appOptions.ModuleOptions` map.
+1 -6
View File
@@ -32,11 +32,6 @@ func (b *Builder) buildMethodCommandCommon(descriptor protoreflect.MethodDescrip
short = fmt.Sprintf("Execute the %s RPC method", descriptor.Name())
}
long := options.Long
if long == "" {
long = util.DescriptorDocs(descriptor)
}
inputDesc := descriptor.Input()
inputType := util.ResolveMessageType(b.TypeResolver, inputDesc)
@@ -48,7 +43,7 @@ func (b *Builder) buildMethodCommandCommon(descriptor protoreflect.MethodDescrip
cmd := &cobra.Command{
SilenceUsage: false,
Use: use,
Long: long,
Long: options.Long,
Short: short,
Example: options.Example,
Aliases: options.Alias,
-4
View File
@@ -307,10 +307,6 @@ func (b *Builder) addFieldFlag(ctx context.Context, flagSet *pflag.FlagSet, fiel
}
usage := opts.Usage
if usage == "" {
usage = util.DescriptorDocs(field)
}
shorthand := opts.Shorthand
defaultValue := opts.DefaultValue
+1 -1
View File
@@ -83,7 +83,7 @@ func (b *Builder) AddMsgServiceCommands(cmd *cobra.Command, cmdDescriptor *autoc
continue
}
if !util.IsSupportedVersion(util.DescriptorDocs(methodDescriptor)) {
if !util.IsSupportedVersion(methodDescriptor) {
continue
}
+1 -1
View File
@@ -85,7 +85,7 @@ func (b *Builder) AddQueryServiceCommands(cmd *cobra.Command, cmdDescriptor *aut
continue
}
if !util.IsSupportedVersion(util.DescriptorDocs(methodDescriptor)) {
if !util.IsSupportedVersion(methodDescriptor) {
continue
}
+18 -4
View File
@@ -4,16 +4,30 @@ deps:
- remote: buf.build
owner: cosmos
repository: cosmos-proto
commit: 1935555c206d4afb9e94615dfd0fad31
commit: 04467658e59e44bbb22fe568206e1f70
digest: shake256:73a640bd60e0c523b0f8237ff34eab67c45a38b64bbbde1d80224819d272dbf316ac183526bd245f994af6608b025f5130483d0133c5edd385531326b5990466
- remote: buf.build
owner: cosmos
repository: cosmos-sdk
commit: b7797ff7f3814399b0c5d52e1b8227ed
commit: 05419252bcc241ea8023acf1ed4cadc5
digest: shake256:1e54a48c19a8b59d35e0a7efa76402939f515f2d8005df099856f24c37c20a52800308f025abb8cffcd014d437b49707388aaca4865d9d063d8f25d5d4eb77d5
- remote: buf.build
owner: cosmos
repository: gogo-proto
commit: 6652e3443c3b4504bb3bf82e73a7e409
commit: 88ef6483f90f478fb938c37dde52ece3
digest: shake256:89c45df2aa11e0cff97b0d695436713db3d993d76792e9f8dc1ae90e6ab9a9bec55503d48ceedd6b86069ab07d3041b32001b2bfe0227fa725dd515ff381e5ba
- remote: buf.build
owner: googleapis
repository: googleapis
commit: 62f35d8aed1149c291d606d958a7ce32
commit: 7e6f6e774e29406da95bd61cdcdbc8bc
digest: shake256:fe43dd2265ea0c07d76bd925eeba612667cf4c948d2ce53d6e367e1b4b3cb5fa69a51e6acb1a6a50d32f894f054a35e6c0406f6808a483f2752e10c866ffbf73
- remote: buf.build
owner: protocolbuffers
repository: wellknowntypes
commit: 657250e6a39648cbb169d079a60bd9ba
digest: shake256:00de25001b8dd2e29d85fc4bcc3ede7aed886d76d67f5e0f7a9b320b90f871d3eb73507d50818d823a0512f3f8db77a11c043685528403e31ff3fef18323a9fb
- remote: buf.build
owner: tendermint
repository: tendermint
commit: 33ed361a90514289beabf3189e1d7665
digest: shake256:038267e06294714fd883610626554b04a127b576b4e253befb4206cb72d5d3c1eeccacd4b9ec8e3fb891f7c14e1cb0f770c077d2989638995b0a61c85afedb1d
+11 -2
View File
@@ -11,10 +11,15 @@ import "testpb/query.proto";
service Msg {
// Send a request and returns the request as a response.
rpc Send(MsgRequest) returns (MsgResponse);
rpc Send(MsgRequest) returns (MsgResponse) {
option (cosmos_proto.method_added_in) = "cosmos-sdk v0.50.0";
};
rpc Clawback(MsgClawbackRequest) returns (MsgClawbackResponse) {
option (cosmos_proto.method_added_in) = "cosmos-sdk v0.51.0";
}
}
// MsgRequest is a sample request message
message MsgRequest {
// u32 is an uint32
uint32 u32 = 1;
@@ -51,3 +56,7 @@ message MsgRequest {
message MsgResponse {
MsgRequest request = 1;
}
message MsgClawbackRequest {}
message MsgClawbackResponse {}
File diff suppressed because it is too large Load Diff
+38 -1
View File
@@ -19,7 +19,8 @@ import (
const _ = grpc.SupportPackageIsVersion7
const (
Msg_Send_FullMethodName = "/testpb.Msg/Send"
Msg_Send_FullMethodName = "/testpb.Msg/Send"
Msg_Clawback_FullMethodName = "/testpb.Msg/Clawback"
)
// MsgClient is the client API for Msg service.
@@ -28,6 +29,7 @@ const (
type MsgClient interface {
// Send a request and returns the request as a response.
Send(ctx context.Context, in *MsgRequest, opts ...grpc.CallOption) (*MsgResponse, error)
Clawback(ctx context.Context, in *MsgClawbackRequest, opts ...grpc.CallOption) (*MsgClawbackResponse, error)
}
type msgClient struct {
@@ -47,12 +49,22 @@ func (c *msgClient) Send(ctx context.Context, in *MsgRequest, opts ...grpc.CallO
return out, nil
}
func (c *msgClient) Clawback(ctx context.Context, in *MsgClawbackRequest, opts ...grpc.CallOption) (*MsgClawbackResponse, error) {
out := new(MsgClawbackResponse)
err := c.cc.Invoke(ctx, Msg_Clawback_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// MsgServer is the server API for Msg service.
// All implementations must embed UnimplementedMsgServer
// for forward compatibility
type MsgServer interface {
// Send a request and returns the request as a response.
Send(context.Context, *MsgRequest) (*MsgResponse, error)
Clawback(context.Context, *MsgClawbackRequest) (*MsgClawbackResponse, error)
mustEmbedUnimplementedMsgServer()
}
@@ -63,6 +75,9 @@ type UnimplementedMsgServer struct {
func (UnimplementedMsgServer) Send(context.Context, *MsgRequest) (*MsgResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Send not implemented")
}
func (UnimplementedMsgServer) Clawback(context.Context, *MsgClawbackRequest) (*MsgClawbackResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Clawback not implemented")
}
func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {}
// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service.
@@ -94,6 +109,24 @@ func _Msg_Send_Handler(srv interface{}, ctx context.Context, dec func(interface{
return interceptor(ctx, in, info, handler)
}
func _Msg_Clawback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgClawbackRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).Clawback(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Msg_Clawback_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).Clawback(ctx, req.(*MsgClawbackRequest))
}
return interceptor(ctx, in, info, handler)
}
// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@@ -105,6 +138,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{
MethodName: "Send",
Handler: _Msg_Send_Handler,
},
{
MethodName: "Clawback",
Handler: _Msg_Clawback_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "testpb/msg.proto",
+2 -168
View File
@@ -5316,174 +5316,8 @@ var file_testpb_query_proto_rawDesc = []byte{
0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65,
0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12,
0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x4a, 0xe1, 0x14, 0x0a, 0x06,
0x12, 0x04, 0x00, 0x00, 0x45, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12,
0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, 0x0f, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00,
0x12, 0x03, 0x04, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x28,
0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x23, 0x0a, 0x09, 0x0a, 0x02, 0x03,
0x03, 0x12, 0x03, 0x07, 0x00, 0x34, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00,
0x28, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x0a, 0x00, 0x0d, 0x01, 0x0a, 0x0a, 0x0a,
0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x0a, 0x08, 0x0d, 0x0a, 0x37, 0x0a, 0x04, 0x06, 0x00, 0x02,
0x00, 0x12, 0x03, 0x0c, 0x02, 0x2f, 0x1a, 0x2a, 0x20, 0x45, 0x63, 0x68, 0x6f, 0x20, 0x72, 0x65,
0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0c, 0x06, 0x0a,
0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x0c, 0x0b, 0x16, 0x0a, 0x0c,
0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0c, 0x21, 0x2d, 0x0a, 0x0a, 0x0a, 0x02,
0x04, 0x00, 0x12, 0x04, 0x0f, 0x00, 0x12, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12,
0x03, 0x0f, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x10, 0x02,
0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x10, 0x02, 0x08, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x10, 0x09, 0x0c, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x10, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04,
0x00, 0x02, 0x01, 0x12, 0x03, 0x11, 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01,
0x05, 0x12, 0x03, 0x11, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12,
0x03, 0x11, 0x09, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x11,
0x0f, 0x10, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x14, 0x00, 0x39, 0x01, 0x0a, 0x0a,
0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x14, 0x08, 0x13, 0x0a, 0x1f, 0x0a, 0x04, 0x04, 0x01,
0x02, 0x00, 0x12, 0x03, 0x16, 0x02, 0x37, 0x1a, 0x12, 0x20, 0x75, 0x33, 0x32, 0x20, 0x69, 0x73,
0x20, 0x61, 0x6e, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x16, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x00, 0x01, 0x12, 0x03, 0x16, 0x28, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03,
0x12, 0x03, 0x16, 0x35, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x17,
0x02, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x17, 0x02, 0x08,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x17, 0x28, 0x2b, 0x0a, 0x0c,
0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x17, 0x35, 0x36, 0x0a, 0x0b, 0x0a, 0x04,
0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x18, 0x02, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x02, 0x05, 0x12, 0x03, 0x18, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01,
0x12, 0x03, 0x18, 0x28, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03,
0x18, 0x35, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x19, 0x02, 0x37,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x03, 0x19, 0x02, 0x07, 0x0a, 0x0c,
0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x19, 0x28, 0x2a, 0x0a, 0x0c, 0x0a, 0x05,
0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x19, 0x35, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01,
0x02, 0x04, 0x12, 0x03, 0x1a, 0x02, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x06,
0x12, 0x03, 0x1a, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03,
0x1a, 0x28, 0x31, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x1a, 0x35,
0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, 0x03, 0x1b, 0x02, 0x37, 0x0a, 0x0c,
0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x06, 0x12, 0x03, 0x1b, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05,
0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x1b, 0x28, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
0x02, 0x05, 0x03, 0x12, 0x03, 0x1b, 0x35, 0x36, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06,
0x12, 0x03, 0x1c, 0x02, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x03,
0x1c, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x1c, 0x28,
0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x1c, 0x35, 0x36, 0x0a,
0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x1d, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05,
0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x03, 0x1d, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
0x02, 0x07, 0x01, 0x12, 0x03, 0x1d, 0x28, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07,
0x03, 0x12, 0x03, 0x1d, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, 0x12, 0x03,
0x1e, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x05, 0x12, 0x03, 0x1e, 0x02,
0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x1e, 0x28, 0x2e, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x1e, 0x35, 0x37, 0x0a, 0x0b, 0x0a,
0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x03, 0x1f, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
0x02, 0x09, 0x06, 0x12, 0x03, 0x1f, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09,
0x01, 0x12, 0x03, 0x1f, 0x28, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, 0x03, 0x12,
0x03, 0x1f, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0a, 0x12, 0x03, 0x20, 0x02,
0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x06, 0x12, 0x03, 0x20, 0x02, 0x0a, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x20, 0x28, 0x31, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x20, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04,
0x01, 0x02, 0x0b, 0x12, 0x03, 0x21, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b,
0x06, 0x12, 0x03, 0x21, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x01, 0x12,
0x03, 0x21, 0x28, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x21,
0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0c, 0x12, 0x03, 0x22, 0x02, 0x69, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x22, 0x02, 0x08, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x22, 0x28, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x22, 0x35, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x0c, 0x08, 0x12, 0x03, 0x22, 0x38, 0x68, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x0c, 0x08,
0xca, 0xd6, 0x05, 0x12, 0x03, 0x22, 0x39, 0x67, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0d,
0x12, 0x03, 0x23, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x06, 0x12, 0x03,
0x23, 0x02, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x23, 0x28,
0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x23, 0x35, 0x37, 0x0a,
0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0e, 0x12, 0x03, 0x24, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05,
0x04, 0x01, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x24, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
0x02, 0x0e, 0x05, 0x12, 0x03, 0x24, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e,
0x01, 0x12, 0x03, 0x24, 0x28, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0e, 0x03, 0x12,
0x03, 0x24, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x0f, 0x12, 0x03, 0x25, 0x02,
0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x04, 0x12, 0x03, 0x25, 0x02, 0x0a, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x0f, 0x05, 0x12, 0x03, 0x25, 0x0b, 0x11, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x25, 0x28, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x25, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02,
0x10, 0x12, 0x03, 0x26, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x04, 0x12,
0x03, 0x26, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x05, 0x12, 0x03, 0x26,
0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x01, 0x12, 0x03, 0x26, 0x28, 0x2f,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x10, 0x03, 0x12, 0x03, 0x26, 0x35, 0x37, 0x0a, 0x0b,
0x0a, 0x04, 0x04, 0x01, 0x02, 0x11, 0x12, 0x03, 0x27, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x11, 0x04, 0x12, 0x03, 0x27, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x11, 0x06, 0x12, 0x03, 0x27, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x01,
0x12, 0x03, 0x27, 0x28, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x11, 0x03, 0x12, 0x03,
0x27, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x12, 0x12, 0x03, 0x28, 0x02, 0x38,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x04, 0x12, 0x03, 0x28, 0x02, 0x0a, 0x0a, 0x0c,
0x0a, 0x05, 0x04, 0x01, 0x02, 0x12, 0x06, 0x12, 0x03, 0x28, 0x0b, 0x23, 0x0a, 0x0c, 0x0a, 0x05,
0x04, 0x01, 0x02, 0x12, 0x01, 0x12, 0x03, 0x28, 0x24, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
0x02, 0x12, 0x03, 0x12, 0x03, 0x28, 0x35, 0x37, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x13,
0x12, 0x03, 0x29, 0x02, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x13, 0x04, 0x12, 0x03,
0x29, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x13, 0x06, 0x12, 0x03, 0x29, 0x0b,
0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x13, 0x01, 0x12, 0x03, 0x29, 0x24, 0x31, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x13, 0x03, 0x12, 0x03, 0x29, 0x35, 0x37, 0x0a, 0x0b, 0x0a,
0x04, 0x04, 0x01, 0x02, 0x14, 0x12, 0x03, 0x2b, 0x02, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01,
0x02, 0x14, 0x05, 0x12, 0x03, 0x2b, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x14,
0x01, 0x12, 0x03, 0x2b, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x14, 0x03, 0x12,
0x03, 0x2b, 0x3a, 0x3c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x15, 0x12, 0x03, 0x2c, 0x02,
0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x15, 0x05, 0x12, 0x03, 0x2c, 0x02, 0x08, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x15, 0x01, 0x12, 0x03, 0x2c, 0x0b, 0x16, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x15, 0x03, 0x12, 0x03, 0x2c, 0x3a, 0x3c, 0x0a, 0x0b, 0x0a, 0x04, 0x04,
0x01, 0x02, 0x16, 0x12, 0x03, 0x2d, 0x02, 0x3d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x16,
0x04, 0x12, 0x03, 0x2d, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x16, 0x06, 0x12,
0x03, 0x2d, 0x0b, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x16, 0x01, 0x12, 0x03, 0x2d,
0x24, 0x37, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x16, 0x03, 0x12, 0x03, 0x2d, 0x3a, 0x3c,
0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x17, 0x12, 0x03, 0x2f, 0x02, 0x48, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x17, 0x05, 0x12, 0x03, 0x2f, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x17, 0x01, 0x12, 0x03, 0x2f, 0x28, 0x38, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x17, 0x03, 0x12, 0x03, 0x2f, 0x45, 0x47, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x18, 0x12,
0x03, 0x30, 0x02, 0x48, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x18, 0x05, 0x12, 0x03, 0x30,
0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x18, 0x01, 0x12, 0x03, 0x30, 0x28, 0x42,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x18, 0x03, 0x12, 0x03, 0x30, 0x45, 0x47, 0x0a, 0x0b,
0x0a, 0x04, 0x04, 0x01, 0x02, 0x19, 0x12, 0x03, 0x31, 0x02, 0x48, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x19, 0x05, 0x12, 0x03, 0x31, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x19, 0x01, 0x12, 0x03, 0x31, 0x28, 0x33, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x19, 0x03,
0x12, 0x03, 0x31, 0x45, 0x47, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x1a, 0x12, 0x03, 0x32,
0x02, 0x48, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1a, 0x06, 0x12, 0x03, 0x32, 0x02, 0x15,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1a, 0x01, 0x12, 0x03, 0x32, 0x28, 0x39, 0x0a, 0x0c,
0x0a, 0x05, 0x04, 0x01, 0x02, 0x1a, 0x03, 0x12, 0x03, 0x32, 0x45, 0x47, 0x0a, 0x0b, 0x0a, 0x04,
0x04, 0x01, 0x02, 0x1b, 0x12, 0x03, 0x33, 0x02, 0x48, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x1b, 0x06, 0x12, 0x03, 0x33, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1b, 0x01,
0x12, 0x03, 0x33, 0x28, 0x39, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1b, 0x03, 0x12, 0x03,
0x33, 0x45, 0x47, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x1c, 0x12, 0x03, 0x34, 0x02, 0x48,
0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1c, 0x06, 0x12, 0x03, 0x34, 0x02, 0x27, 0x0a, 0x0c,
0x0a, 0x05, 0x04, 0x01, 0x02, 0x1c, 0x01, 0x12, 0x03, 0x34, 0x28, 0x37, 0x0a, 0x0c, 0x0a, 0x05,
0x04, 0x01, 0x02, 0x1c, 0x03, 0x12, 0x03, 0x34, 0x45, 0x47, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01,
0x02, 0x1d, 0x12, 0x03, 0x35, 0x02, 0x5c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1d, 0x05,
0x12, 0x03, 0x35, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1d, 0x01, 0x12, 0x03,
0x35, 0x09, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1d, 0x03, 0x12, 0x03, 0x35, 0x1f,
0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1d, 0x08, 0x12, 0x03, 0x35, 0x22, 0x5b, 0x0a,
0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x1d, 0x08, 0xca, 0xd6, 0x05, 0x12, 0x03, 0x35, 0x23, 0x5a,
0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x1e, 0x12, 0x03, 0x36, 0x02, 0x5c, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x1e, 0x05, 0x12, 0x03, 0x36, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
0x01, 0x02, 0x1e, 0x01, 0x12, 0x03, 0x36, 0x09, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02,
0x1e, 0x03, 0x12, 0x03, 0x36, 0x1f, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1e, 0x08,
0x12, 0x03, 0x36, 0x22, 0x5b, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x01, 0x02, 0x1e, 0x08, 0xca, 0xd6,
0x05, 0x12, 0x03, 0x36, 0x23, 0x5a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x1f, 0x12, 0x03,
0x38, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1f, 0x04, 0x12, 0x03, 0x38, 0x02,
0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1f, 0x06, 0x12, 0x03, 0x38, 0x0b, 0x23, 0x0a,
0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x1f, 0x01, 0x12, 0x03, 0x38, 0x24, 0x29, 0x0a, 0x0c, 0x0a,
0x05, 0x04, 0x01, 0x02, 0x1f, 0x03, 0x12, 0x03, 0x38, 0x2c, 0x2e, 0x0a, 0x0a, 0x0a, 0x02, 0x05,
0x00, 0x12, 0x04, 0x3b, 0x00, 0x41, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03,
0x3b, 0x05, 0x09, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x3c, 0x02, 0x17,
0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3c, 0x02, 0x12, 0x0a, 0x0c,
0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x3c, 0x15, 0x16, 0x0a, 0x0b, 0x0a, 0x04,
0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x3d, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02,
0x01, 0x01, 0x12, 0x03, 0x3d, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02,
0x12, 0x03, 0x3d, 0x15, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x3e,
0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x3e, 0x02, 0x0a,
0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x3e, 0x15, 0x16, 0x0a, 0x0b,
0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x3f, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05,
0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x3f, 0x02, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02,
0x03, 0x02, 0x12, 0x03, 0x3f, 0x15, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, 0x12,
0x03, 0x40, 0x02, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x40,
0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x40, 0x15, 0x17,
0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x43, 0x00, 0x45, 0x01, 0x0a, 0x0a, 0x0a, 0x03,
0x04, 0x02, 0x01, 0x12, 0x03, 0x43, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00,
0x12, 0x03, 0x44, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03,
0x44, 0x02, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x44, 0x0e,
0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x44, 0x18, 0x19, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
+14 -13
View File
@@ -5,6 +5,8 @@ import (
"runtime/debug"
"strings"
cosmos_proto "github.com/cosmos/cosmos-proto"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/reflect/protoreflect"
"google.golang.org/protobuf/reflect/protoregistry"
"google.golang.org/protobuf/types/dynamicpb"
@@ -22,11 +24,6 @@ func DescriptorKebabName(descriptor protoreflect.Descriptor) string {
return strcase.ToKebab(string(descriptor.Name()))
}
// DescriptorDocs returns the leading comments of the descriptor.
func DescriptorDocs(descriptor protoreflect.Descriptor) string {
return descriptor.ParentFile().SourceLocations().ByDescriptor(descriptor).LeadingComments
}
func ResolveMessageType(resolver protoregistry.MessageTypeResolver, descriptor protoreflect.MessageDescriptor) protoreflect.MessageType {
typ, err := resolver.FindMessageByName(descriptor.FullName())
if err == nil {
@@ -38,19 +35,23 @@ func ResolveMessageType(resolver protoregistry.MessageTypeResolver, descriptor p
// IsSupportedVersion is used to determine in which version of a module / sdk a rpc was introduced.
// It returns false if the rpc has comment for an higher version than the current one.
func IsSupportedVersion(input string) bool {
return isSupportedVersion(input, buildInfo)
// It returns true if the method descriptor contains no annotation.
func IsSupportedVersion(methodDesc protoreflect.MethodDescriptor) bool {
return isSupportedVersion(methodDesc, buildInfo)
}
// isSupportedVersion is used to determine in which version of a module / sdk a rpc was introduced.
// It returns false if the rpc has comment for an higher version than the current one.
// It returns true if the method descriptor contains no annotation.
// It takes a buildInfo as argument to be able to test it.
func isSupportedVersion(input string, buildInfo *debug.BuildInfo) bool {
if input == "" || buildInfo == nil {
func isSupportedVersion(methodDesc protoreflect.MethodDescriptor, buildInfo *debug.BuildInfo) bool {
hasVersion := proto.HasExtension(methodDesc.Options(), cosmos_proto.E_MethodAddedIn)
if !hasVersion || buildInfo == nil || len(buildInfo.Deps) == 0 {
return true
}
moduleName, version := parseSinceComment(input)
version := proto.GetExtension(methodDesc.Options(), cosmos_proto.E_MethodAddedIn).(string)
moduleName, version := parseVersion(version)
if moduleName == "" || version == "" {
return true // if no comment consider it's supported
}
@@ -70,10 +71,10 @@ func isSupportedVersion(input string, buildInfo *debug.BuildInfo) bool {
return false
}
var sinceCommentRegex = regexp.MustCompile(`\/\/\s*since: (\S+) (\S+)`)
var sinceCommentRegex = regexp.MustCompile(`(\S+) (\S+)`)
// parseSinceComment parses the `// Since: cosmos-sdk v0.xx` comment on rpc.
func parseSinceComment(input string) (string, string) {
// parseVersion parses the `cosmos-sdk v0.xx` comment on rpc.
func parseVersion(input string) (string, string) {
var (
moduleName string
version string
+30 -105
View File
@@ -5,8 +5,9 @@ import (
"testing"
"google.golang.org/protobuf/reflect/protoreflect"
"google.golang.org/protobuf/reflect/protoregistry"
"cosmossdk.io/client/v2/internal/testpb"
_ "cosmossdk.io/client/v2/internal/testpb"
)
func TestIsSupportedVersion(t *testing.T) {
@@ -24,70 +25,40 @@ func TestIsSupportedVersion(t *testing.T) {
}
cases := []struct {
input string
expected bool
messageName string
expected bool
}{
{
input: "",
expected: true,
messageName: "testpb.Msg.Send",
expected: true,
},
{
input: "not a since comment",
expected: true,
messageName: "testpb.Query.Echo",
expected: true,
},
{
input: "// Since: cosmos-sdk v0.47",
expected: true,
},
{
input: "// since: Cosmos-SDK 0.50",
expected: true,
},
{
input: "// Since: cosmos-sdk v0.51",
expected: false,
},
{
input: "// Since: cosmos-sdk v1.0.0",
expected: false,
},
{
input: "// since: x/feegrant v0.1.0",
expected: true,
},
{
input: "// since: feegrant v0.0.1",
expected: true,
},
{
input: "// since: feegrant v0.1.0",
expected: true,
},
{
input: "// since: feegrant v0.1",
expected: true,
},
{
input: "// since: feegrant v0.1.1",
expected: false,
},
{
input: "// since: feegrant v0.2.0",
expected: false,
messageName: "testpb.Msg.Clawback",
expected: false,
},
}
for _, tc := range cases {
t.Run(tc.input, func(t *testing.T) {
resp := isSupportedVersion(tc.input, mockBuildInfo)
if resp != tc.expected {
t.Errorf("expected %v, got %v", tc.expected, resp)
t.Run(tc.messageName, func(t *testing.T) {
desc, err := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(tc.messageName))
if err != nil {
t.Fatal(err)
}
methodDesc := desc.(protoreflect.MethodDescriptor)
isSupported := isSupportedVersion(methodDesc, mockBuildInfo)
if isSupported != tc.expected {
t.Errorf("expected %v, got %v for %s", tc.expected, isSupported, methodDesc.FullName())
}
})
}
}
func TestParseSinceComment(t *testing.T) {
func TestParseVersion(t *testing.T) {
cases := []struct {
input string
expectedModuleName string
@@ -99,52 +70,42 @@ func TestParseSinceComment(t *testing.T) {
expectedVersion: "",
},
{
input: "not a since comment",
expectedModuleName: "",
expectedVersion: "",
},
{
input: "// Since: Cosmos SDK 0.50",
input: "Cosmos SDK 0.50",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.50",
},
{
input: "// since: Cosmos SDK 0.50",
input: "cosmos sdk 0.50",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.50",
},
{
input: "// since: cosmos sdk 0.50",
input: "Cosmos-SDK 0.50",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.50",
},
{
input: "// since: Cosmos-SDK 0.50",
input: "cosmos-sdk v0.50",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.50",
},
{
input: "// Since: cosmos-sdk v0.50",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.50",
},
{
input: "//since: cosmos-sdk v0.50.1",
input: "cosmos-sdk v0.50.1",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.50.1",
},
{
input: "// since: cosmos-sdk 0.47.0-veronica",
input: "cosmos-sdk 0.47.0-veronica",
expectedModuleName: "cosmos-sdk",
expectedVersion: "v0.47.0-veronica",
},
{
input: "// Since: x/feegrant v0.1.0",
input: "x/feegrant v0.1.0",
expectedModuleName: "feegrant",
expectedVersion: "v0.1.0",
},
{
input: "// since: x/feegrant 0.1",
input: "x/feegrant 0.1",
expectedModuleName: "feegrant",
expectedVersion: "v0.1",
},
@@ -152,7 +113,7 @@ func TestParseSinceComment(t *testing.T) {
for _, tc := range cases {
t.Run(tc.input, func(t *testing.T) {
moduleName, version := parseSinceComment(tc.input)
moduleName, version := parseVersion(tc.input)
if moduleName != tc.expectedModuleName {
t.Errorf("expected module name %s, got %s", tc.expectedModuleName, moduleName)
}
@@ -162,39 +123,3 @@ func TestParseSinceComment(t *testing.T) {
})
}
}
func TestDescriptorDocs(t *testing.T) {
t.Skip() // TODO(@julienrbrt): Unskip when https://github.com/cosmos/cosmos-proto/pull/131 is finalized.
msg1 := &testpb.MsgRequest{}
descriptor1 := msg1.ProtoReflect().Descriptor()
msg2 := testpb.MsgResponse{}
descriptor2 := msg2.ProtoReflect().Descriptor()
cases := []struct {
name string
input protoreflect.Descriptor
expected string
}{
{
name: "Test with leading comments",
input: descriptor1,
expected: "MsgRequest is a sample request message",
},
{
name: "Test with no leading comments",
input: descriptor2,
expected: "",
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
output := DescriptorDocs(tc.input)
if output != tc.expected {
t.Errorf("expected %s, got %s", tc.expected, output)
}
})
}
}