Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 9 commits into from
Apr 19, 2024

Conversation

julienrbrt
Copy link
Member

@julienrbrt julienrbrt commented Apr 18, 2024

Description

ref: cosmos/cosmos-proto#133 cosmos/cosmos-proto#133 (comment)
follow-up of #19377


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • updated the relevant documentation or specification, including comments for documenting Go code
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • New Features

    • Introduced a new Clawback RPC method in the Msg service.
    • Enhanced client tooling support with updated protobuf annotations in documentation.
  • Enhancements

    • Improved version filtering and integrated the latest cosmos-proto.
    • Enums in queries are now marshaled as strings for clarity.
    • Autocli commands optimized to use client context more efficiently.
  • Refactor

    • Simplified version support checks in autocli commands.
    • Streamlined command flag assignments and usage descriptions.
  • Documentation

    • Updated guidance on protobuf annotations, command skipping, and file signing processes.

@julienrbrt julienrbrt added the backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release label Apr 18, 2024
@julienrbrt julienrbrt requested a review from a team as a code owner April 18, 2024 11:02
@julienrbrt julienrbrt changed the title feat(client/v2): implement version filtering using annoation feat(client/v2): implement version filtering using annotation Apr 18, 2024
Copy link
Contributor

coderabbitai bot commented Apr 18, 2024

Walkthrough

Walkthrough

The recent updates focus on enhancing client functionalities by integrating a new version of cosmos-proto, refining version filtering, and improving command-line tools. Changes include serialization adjustments, simplified conditions for version checking, and new RPC methods. Additionally, there's an update in the handling of protobuf extensions and version parsing, alongside improved documentation on protobuf annotations and command functionalities.

Changes

File Path Change Summary
client/v2/CHANGELOG.md Integrated latest cosmos-proto, improved version filtering, enums as strings in queries, updated autocli commands.
client/v2/autocli/... Simplified version checks in msg.go and query.go, removed default value in common.go, updated flag assignment in flag/builder.go.
client/v2/internal/.../msgSignArbitraryData.pulsar.go Modified exported entities' declarations and function structures.
client/v2/internal/testpb/msg.proto Added Clawback RPC method with version-specific request and response messages.
client/v2/internal/util/... Added imports, refactored IsSupportedVersion, updated parseVersion, added tests in util_test.go.
client/v2/README.md Updated URLs, command skipping via annotations, details on file signing commands, encoding options.
docs/build/building-modules/05-protobuf-annotations.md Updated scalar options, added annotations for method, field, message additions, noted amino codec removal.

Recent Review Details

Configuration used: .coderabbit.yml

Commits Files that changed from the base of the PR and between e9e8564 and 1b97e17.
Files selected for processing (2)
  • client/v2/internal/util/util.go (4 hunks)
  • docs/build/building-modules/05-protobuf-annotations.md (2 hunks)
Files skipped from review as they are similar to previous changes (1)
  • client/v2/internal/util/util.go
Additional Context Used
LanguageTool (40)
docs/build/building-modules/05-protobuf-annotations.md (40)

Near line 5: Possible spelling mistake found.
Context: --- sidebar_position: 1 --- # ProtocolBuffer Annotations This document explains the...


Near line 7: Possible spelling mistake found.
Context: ...ons This document explains the various protobuf scalars that have been added to make wo...


Near line 7: Possible spelling mistake found.
Context: ...at have been added to make working with protobuf easier for Cosmos SDK application devel...


Near line 25: Possible spelling mistake found.
Context: ... clients to understand how to construct protobuf messages according to what is expected ...


Near line 25: Possible spelling mistake found.
Context: ...g to what is expected by the module and sdk. ```proto (cosmos_proto.scalar) = "cos...


Near line 43: Possible spelling mistake found.
Context: ...v1beta1/query.proto#L87 Example of pubkey scalar: proto reference https://g...


Near line 61: Add a space between sentences.
Context: ...s for what can be provided as a scalar: cosmos.AddressString, cosmos.ValidatorAddressString, `cos...


Near line 61: Add a space between sentences.
Context: ...ed as a scalar: cosmos.AddressString, cosmos.ValidatorAddressString, cosmos.ConsensusAddressString, `cos...


Near line 61: Add a space between sentences.
Context: ...ring, cosmos.ValidatorAddressString, cosmos.ConsensusAddressString, cosmos.Int, cosmos.Dec`. ## Impl...


Near line 61: Add a space between sentences.
Context: ...ring, cosmos.ConsensusAddressString, cosmos.Int, cosmos.Dec`. ## Implements_Interfa...


Near line 61: Add a space between sentences.
Context: ....ConsensusAddressString, cosmos.Int, cosmos.Dec`. ## Implements_Interface Implement ...


Near line 65: Possible spelling mistake found.
Context: .../telescope) on how to encode and decode protobuf messages. ```proto option (cosmos_pro...


Near line 71: Put a space after the comma.
Context: ...s.auth.v1beta1.AccountI"; ``` ## Method,Field,Message Added In method_added_in, `f...


Near line 73: Loose punctuation mark.
Context: ...ield,Message Added In method_added_in, field_added_in and message_added_in...


Near line 73: Possible spelling mistake found.
Context: ...d message_added_in are annotations to denotate to clients that a field has been suppor...


Near line 75: Did you mean “as follows”?
Context: ... call. The annotation should be worded as follow: ```proto option (cosmos_proto.method_...


Near line 85: Possible missing preposition found.
Context: ...v0.50+, this means there is not a need register legacyAminoCodec`. To replace the amin...


Near line 85: Possible spelling mistake found.
Context: ...this means there is not a need register legacyAminoCodec. To replace the amino codec, Amino pro...


Near line 85: Possible spelling mistake found.
Context: ...dec`. To replace the amino codec, Amino protobuf annotations are used to provide informa...


Near line 85: Possible spelling mistake found.
Context: ...amino codec on how to encode and decode protobuf messages. :::note Amino annotations a...


Near line 88: Possible missing preposition found.
Context: ...ith amino. New modules are not required use amino annotations. ::: The below annot...


Near line 91: Possible spelling mistake found.
Context: ...amino codec on how to encode and decode protobuf messages in a backwards compatible mann...


Near line 91: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ncode and decode protobuf messages in a backwards compatible manner. ### Name Name specifies the ...


Near line 117: Possible spelling mistake found.
Context: ...1beta1/distribution.proto#L166 ``` ### Dont_OmitEmpty Dont omitempty specifies th...


Near line 117: Possible spelling mistake found.
Context: ...1/distribution.proto#L166 ``` ### Dont_OmitEmpty Dont omitempty specifies that the fie...


Near line 118: Possible spelling mistake found.
Context: ...on.proto#L166 ``` ### Dont_OmitEmpty Dont omitempty specifies that the field shou...


Near line 119: Possible spelling mistake found.
Context: ...oto#L166 ``` ### Dont_OmitEmpty Dont omitempty specifies that the field should not be ...


Near line 131: Possible spelling mistake found.
Context: ...Encoding Encoding instructs the amino json marshaler how to encode certain fields ...


Near line 131: Possible spelling mistake found.
Context: ...ing Encoding instructs the amino json marshaler how to encode certain fields that may d...


Near line 131: Possible spelling mistake. ‘behaviour’ is British English.
Context: ...t may differ from the standard encoding behaviour. The most common example of this is how...


Near line 131: Add a space between sentences.
Context: ... The most common example of this is how repeated cosmos.base.v1beta1.Coin is encoded when using the amino json e...


Near line 131: Possible spelling mistake found.
Context: ...1.Coinis encoded when using the amino json encoding format. Thelegacy_coins` opt...


Near line 131: Possible spelling mistake found.
Context: ...at. The legacy_coins option tells the json marshaler [how to encode a null slice](...


Near line 131: Possible spelling mistake found.
Context: ...he legacy_coins option tells the json marshaler [how to encode a null slice](https://gi...


Near line 131: Add a space between sentences.
Context: ...gning/aminojson/json_marshal.go#L65) of cosmos.base.v1beta1.Coin. ```proto (amino.encoding) = ...


Near line 141: Possible spelling mistake found.
Context: ...sis.proto#L23 ``` Another example is a protobuf bytes that contains a valid JSON docu...


Near line 142: Possible spelling mistake found.
Context: ...hat contains a valid JSON document. The inline_json option tells the json marshaler to emb...


Near line 142: Possible spelling mistake found.
Context: ...ent. The inline_json option tells the json marshaler to embed the JSON bytes into ...


Near line 142: Possible spelling mistake found.
Context: ...The inline_json option tells the json marshaler to embed the JSON bytes into the wrappi...


Near line 158: A comma may be missing after the conjunctive/linking adverb ‘Thus’.
Context: ...N, this leads to JSON broken documents. Thus a JSON validity check needs to be in pl...

Path-based Instructions (1)
docs/build/building-modules/05-protobuf-annotations.md (1)

Pattern **/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added the C:CLI label Apr 18, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Comment on lines +3147 to +3150
func init() {
file_testpb_msg_proto_init()
md_MsgClawbackRequest = File_testpb_msg_proto.Messages().ByName("MsgClawbackRequest")
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initialization of MsgClawbackRequest descriptor should be thread-safe.

To ensure thread safety during the initialization of MsgClawbackRequest, consider using sync.Once or similar synchronization primitives to avoid potential race conditions in concurrent environments.

Comment on lines +3211 to +3217
// Range iterates over every populated field in an undefined order,
// calling f for each field descriptor and value encountered.
// Range returns immediately if f returns false.
// While iterating, mutating operations may only be performed
// on the current field descriptor.
func (x *fastReflection_MsgClawbackRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Range method implementation is missing.

The Range method in fastReflection_MsgClawbackRequest is expected to iterate over fields of the message, but its implementation is missing. This method should be implemented to comply with the protoreflect.Message interface requirements.

Comment on lines +3262 to +3269
func (x *fastReflection_MsgClawbackRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
default:
if descriptor.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.MsgClawbackRequest"))
}
panic(fmt.Errorf("message testpb.MsgClawbackRequest does not contain field %s", descriptor.FullName()))
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handle extension fields appropriately.

The method Get in fastReflection_MsgClawbackRequest panics when encountering extension fields. If extensions are expected, modify the method to handle them correctly; otherwise, ensure that the panic condition is documented and justified.

@@ -49,7 +44,7 @@ func (b *Builder) buildMethodCommandCommon(descriptor protoreflect.MethodDescrip
cmd := &cobra.Command{
SilenceUsage: false,
Use: use,
Long: long,
Long: options.Long,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tip

Codebase Verification

The search results indicate that the direct use of options.Long in command setups is unique to client/v2/autocli/common.go and does not appear to be a common pattern throughout the rest of the project. This suggests that the change might not be consistent with other similar setups within the codebase.

  • client/v2/autocli/common.go: Unique instance of using options.Long directly.
Analysis chain

Direct use of options.Long simplifies the command setup. Ensure this change is consistent with other similar setups.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Check for consistency of direct use of options fields in command setups across the project.
rg --type go 'Long:         options.'

Length of output: 97

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Actionable comments outside the diff hunks (2)
client/v2/CHANGELOG.md (2)

Line range hint 53-53: Add a space after the period for better readability.

- TxConfig should always be set in the `client.Context` in `root.go` of an app.
+ TxConfig should always be set in the `client.Context` in `root.go` of an app.

Line range hint 64-64: Add a comma after 'Instead' to improve the grammatical structure.

- Instead client/v2 uses the address codecs present in the context
+ Instead, client/v2 uses the address codecs present in the context

client/v2/CHANGELOG.md Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Actionable comments outside the diff hunks (8)
client/v2/README.md (8)

Line range hint 5-5: Correct the spelling mistake.

- sidebar_position
+ sidebar-position

Line range hint 21-21: Ensure the sentence starts with an uppercase letter.

- `autocli` generates CLI commands and flags for each method defined in your gRPC service.
+ `Autocli` generates CLI commands and flags for each method defined in your gRPC service.

Line range hint 39-41: Add spaces between sentences for better readability.

- Ensure your app's modules implements the `appmodule.AppModule` interface. 2. (optional) Configure how...
+ Ensure your app's modules implements the `appmodule.AppModule` interface. 2. (optional) Configure how...

Line range hint 78-78: Start the sentence with an uppercase letter.

- `autocli` uses a keyring for key name resolving and signing transactions.
+ `Autocli` uses a keyring for key name resolving and signing transactions.

Line range hint 81-81: Revise the sentence for grammatical correctness.

- This provides a better UX as it allows to resolve key names directly from the keyring in all transactions and commands.
+ This provides a better UX as it allows resolving key names directly from the keyring in all transactions and commands.

Line range hint 126-126: Revise the sentence for grammatical correctness.

- The `AutoCLIOptions()` method on your module allows to specify custom commands, sub-commands or flags for each service.
+ The `AutoCLIOptions()` method on your module allows specifying custom commands, sub-commands or flags for each service.

Line range hint 142-142: Consider adding commas for clarity.

- Users can however use the `--no-proposal` flag to disable the proposal creation.
+ Users can, however, use the `--no-proposal` flag to disable the proposal creation.

Line range hint 173-173: Address the inconsistency in spelling variants (American vs British English).

- ### Customising Flag Names
+ ### Customizing Flag Names

Comment on lines +237 to +238
* `sign-file` for signing a file.
* `verify-file` for verifying a previously signed file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure sentences start with an uppercase letter.

- * `sign-file` for signing a file.
- * `verify-file` for verifying a previously signed file.
+ * `Sign-file` for signing a file.
+ * `Verify-file` for verifying a previously signed file.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
* `sign-file` for signing a file.
* `verify-file` for verifying a previously signed file.
* `Sign-file` for signing a file.
* `Verify-file` for verifying a previously signed file.

client/v2/internal/testpb/msg.pulsar.go Dismissed Show dismissed Hide dismissed
client/v2/internal/testpb/msg.pulsar.go Dismissed Show dismissed Hide dismissed
client/v2/internal/testpb/msg.pulsar.go Dismissed Show dismissed Hide dismissed
client/v2/internal/testpb/msg.pulsar.go Dismissed Show dismissed Hide dismissed
Copy link
Collaborator

@hieuvubk hieuvubk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, left few comments.

client/v2/internal/util/util.go Show resolved Hide resolved
docs/build/building-modules/05-protobuf-annotations.md Outdated Show resolved Hide resolved
@julienrbrt julienrbrt added this pull request to the merge queue Apr 19, 2024
@hieuvubk hieuvubk removed this pull request from the merge queue due to a manual request Apr 19, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Actionable comments outside the diff hunks (2)
docs/build/building-modules/05-protobuf-annotations.md (2)

Line range hint 117-117: Correct the spelling of "Dont_OmitEmpty" to "Don't_OmitEmpty" to adhere to proper contraction usage.

- ### Dont_OmitEmpty
+ ### Don't_OmitEmpty

Line range hint 158-158: Add a comma after "Thus" to improve the readability of the sentence.

- Thus a JSON validity check needs to be in place at some point of the process.
+ Thus, a JSON validity check needs to be in place at some point of the process.

@@ -58,7 +58,7 @@ Example of Int scalar:
https://github.com/cosmos/cosmos-sdk/blob/e8f28bf5db18b8d6b7e0d94b542ce4cf48fed9d6/proto/cosmos/gov/v1/gov.proto#L137
```

There are a few options for what can be provided as a scalar: cosmos.AddressString, cosmos.ValidatorAddressString, cosmos.ConsensusAddressString, cosmos.Int, cosmos.Dec.
There are a few options for what can be provided as a scalar: `cosmos.AddressString`, `cosmos.ValidatorAddressString`, `cosmos.ConsensusAddressString`, `cosmos.Int`, `cosmos.Dec`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a space after each comma in the list of scalars to improve readability.

- There are a few options for what can be provided as a scalar: `cosmos.AddressString`, `cosmos.ValidatorAddressString`, `cosmos.ConsensusAddressString`, `cosmos.Int`, `cosmos.Dec`. 
+ There are a few options for what can be provided as a scalar: `cosmos.AddressString`, `cosmos.ValidatorAddressString`, `cosmos.ConsensusAddressString`, `cosmos.Int`, `cosmos.Dec`.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
There are a few options for what can be provided as a scalar: `cosmos.AddressString`, `cosmos.ValidatorAddressString`, `cosmos.ConsensusAddressString`, `cosmos.Int`, `cosmos.Dec`.
There are a few options for what can be provided as a scalar: `cosmos.AddressString`, `cosmos.ValidatorAddressString`, `cosmos.ConsensusAddressString`, `cosmos.Int`, `cosmos.Dec`.

@@ -68,9 +68,21 @@
option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.AccountI";
```

## Method,Field,Message Added In
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Insert a space after each comma in the section title for consistency and readability.

- ## Method,Field,Message Added In
+ ## Method, Field, Message Added In

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
## Method,Field,Message Added In
## Method, Field, Message Added In


`method_added_in`, `field_added_in` and `message_added_in` are annotations to denotate to clients that a field has been supported in a later version. This is useful when new methods or fields are added in later versions and that the client needs to be aware of what it can call.

The annotation should be worded as follow:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct the phrase to "as follows" for grammatical accuracy.

- The annotation should be worded as follow:
+ The annotation should be worded as follows:

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
The annotation should be worded as follow:
The annotation should be worded as follows:

## Amino

The amino codec was removed in 0.50.0, this means there is not a need register `legacyAminoCodec`. To replace the amino codec, Amino protobuf annotations are used to provide information to the amino codec on how to encode and decode protobuf messages.
The amino codec was removed in `v0.50+`, this means there is not a need register `legacyAminoCodec`. To replace the amino codec, Amino protobuf annotations are used to provide information to the amino codec on how to encode and decode protobuf messages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the missing preposition "to" to complete the phrase correctly.

- The amino codec was removed in `v0.50+`, this means there is not a need register `legacyAminoCodec`.
+ The amino codec was removed in `v0.50+`, this means there is not a need to register `legacyAminoCodec`.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
The amino codec was removed in `v0.50+`, this means there is not a need register `legacyAminoCodec`. To replace the amino codec, Amino protobuf annotations are used to provide information to the amino codec on how to encode and decode protobuf messages.
The amino codec was removed in `v0.50+`, this means there is not a need to register `legacyAminoCodec`. To replace the amino codec, Amino protobuf annotations are used to provide information to the amino codec on how to encode and decode protobuf messages.

## Amino

The amino codec was removed in 0.50.0, this means there is not a need register `legacyAminoCodec`. To replace the amino codec, Amino protobuf annotations are used to provide information to the amino codec on how to encode and decode protobuf messages.
The amino codec was removed in `v0.50+`, this means there is not a need register `legacyAminoCodec`. To replace the amino codec, Amino protobuf annotations are used to provide information to the amino codec on how to encode and decode protobuf messages.

:::note
Amino annotations are only used for backwards compatibility with amino. New modules are not required use amino annotations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Insert the missing preposition "to" for grammatical correctness.

- New modules are not required use amino annotations.
+ New modules are not required to use amino annotations.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Amino annotations are only used for backwards compatibility with amino. New modules are not required use amino annotations.
Amino annotations are only used for backwards compatibility with amino. New modules are not required to use amino annotations.

@julienrbrt julienrbrt added this pull request to the merge queue Apr 19, 2024
Merged via the queue into main with commit b491335 Apr 19, 2024
61 of 64 checks passed
@julienrbrt julienrbrt deleted the julien/client-v2-version-filtering branch April 19, 2024 08:36
mergify bot pushed a commit that referenced this pull request Apr 19, 2024
(cherry picked from commit b491335)

# Conflicts:
#	client/v2/CHANGELOG.md
#	client/v2/README.md
#	client/v2/go.mod
#	client/v2/go.sum
#	client/v2/internal/offchain/msgSignArbitraryData.pulsar.go
#	tests/starship/tests/go.mod
#	tests/starship/tests/go.sum
julienrbrt added a commit that referenced this pull request Apr 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release C:CLI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants