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

chore: update docs to use core #20718

Merged
merged 10 commits into from
Jun 24, 2024
Merged

chore: update docs to use core #20718

merged 10 commits into from
Jun 24, 2024

Conversation

tac0turtle
Copy link
Member

@tac0turtle tac0turtle commented Jun 18, 2024

Description

Closes: #17207

Add docs on core api


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, you can find examples of the prefixes below:
  • 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.

Please see Pull Request Reviewer section in the contributing guide for more information on how to review a pull request.

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

  • Documentation
    • Updated interface and method references in the Cosmos SDK module system documentation.
    • Clarified naming conventions and updated references for Msg services.
    • Revised descriptions for event emission mechanisms and error handling practices.
    • Enhanced guidelines for module structure and state management.
    • Included new method and lifecycle explanations for module execution.
    • Added details on running SDK simulations in Go.

Copy link
Contributor

coderabbitai bot commented Jun 18, 2024

Walkthrough

The changes focus on reworking various interfaces and methods within the Cosmos SDK module system to adopt new conventions and improve modularity. Key modifications include renaming and removing extension interfaces, updating references from sdk.Msg to transaction.Msg, and refining the structure and documentation of modules. Additionally, the updates emphasize better error handling practices, enhanced simulation instructions, and clearer descriptions of module structure and lifecycle methods.

Changes

Files/Group Change Summary
01-module-manager.md Significant changes to interfaces and methods: removal of several extension interfaces, renaming (HasABCIEndBlock to HasUpdateValidators), and updates across various modules.
02-messages-and-queries.md Renamed sdk.Msg to transaction.Msg, updated method conventions, and removed legacy query-related content.
03-msg-services.md Renamed sdk.Msg to transaction.Msg, updated URLs, refined method semantics, and modified error handling and event emission mechanisms.
06-beginblock-endblock.md Updated event emission mechanism and added UpdateValidators method for handling validator updates.
06-keeper.md Replaced storeKeys with KVStoreServices, revised descriptions of Keeper methods, and recommended state management via Collections.
07-invariants.md Added a TODO note about the future of invariants without impacting core logic.
08-genesis.md Updated line references for InitGenesis, ExportGenesis, and GenesisTxHandler methods in the auth module.
11-structure.md Refined module structure guidelines, removed event.proto, and updated module/ directory description.
12-errors.md Clarified error handling practices, registration of custom errors, guidance on error wrapping, and consensus impact of error registration.
14-simulator.md Added instructions for executing SDK simulations in Go with the -tags='sims parameter.
17-preblock.md Clarified the semantics of a new lifecycle method running before BeginBlocker, modifying consensus parameters, and signaling the caller through the return value.

Sequence Diagram(s)

No sequence diagrams are necessary for this set of changes as they primarily involve refactoring and updates to documentation, interfaces, and method signatures.

Assessment against linked issues

Objective (Issue #17207) Addressed Explanation
Document migrations
Update core api throughout
Update keeper - KVStoreService from storekey

Possibly related issues

The provided changes make strides toward improving modularity, clarity in documentation, and consistency in method definitions, addressing foundational objectives for evolving the Cosmos SDK module system.


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.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @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.

@tac0turtle tac0turtle marked this pull request as ready for review June 18, 2024 11:06
@tac0turtle tac0turtle requested a review from a team as a code owner June 18, 2024 11:06
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: 7

Outside diff range and nitpick comments (7)
docs/build/building-modules/17-preblock.md (1)

Line range hint 8-8: Consider adding the article "an" for grammatical correctness.

- `PreBlocker` is optional method module developers can implement...
+ `PreBlocker` is an optional method module developers can implement...
docs/build/building-modules/12-errors.md (1)

Line range hint 33-33: Use "an" instead of "a" before a word starting with a vowel sound.

- and a uint32 code. Together, the codespace and code
+ and an uint32 code. Together, the codespace and code
Tools
LanguageTool

[style] ~15-~15: As a shorter alternative for ‘able to’, consider using “can”. (BE_ABLE_TO)
Context: ...here are two ways to return errors. You are able to register custom errors with a codespace...


[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...


[uncategorized] ~18-~18: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ... errors are registered they are part of consensus and can not be changed in a minor relea...


[style] ~18-~18: Unless you want to emphasize “not”, use “cannot” which is more common. (CAN_NOT_PREMIUM)
Context: ...gistered they are part of consensus and can not be changed in a minor release ::: ## R...

Markdownlint

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/06-beginblock-endblock.md (1)

Line range hint 19-19: Clarify the description to better match the functionality.

- `BeginBlocker` and `EndBlocker` are a way for module developers to add automatic execution of logic to their module.
+ `BeginBlocker` and `EndBlocker` provide a means for module developers to automatically execute logic within their modules.
Tools
LanguageTool

[uncategorized] ~27-~27: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ...services.md): * They generally use the keeper and [ctx](../...

docs/build/building-modules/02-messages-and-queries.md (4)

Line range hint 62-62: Add a comma after "signers" for improved clarity.

- If there is a need for custom signers then there is an alternative path which can be taken.
+ If there is a need for custom signers, then there is an alternative path which can be taken.
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


Line range hint 91-91: Add the definite article "the" for grammatical correctness.

- that should be called inside module's [`RegisterInterfaces`](01-module-manager.md#hasregisterinterfaces) method
+ that should be called inside the module's [`RegisterInterfaces`](01-module-manager.md#hasregisterinterfaces) method
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


Line range hint 115-115: Clarify the repeated verb usage for correctness.

- Store queries query directly for store keys.
+ Store queries directly access store keys.
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


Line range hint 117-117: Insert the definite article "the" for grammatical correctness.

- See following examples:
+ See the following examples:
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 5857c6e and 06b185c.

Files selected for processing (11)
  • docs/build/building-modules/01-module-manager.md (9 hunks)
  • docs/build/building-modules/02-messages-and-queries.md (3 hunks)
  • docs/build/building-modules/03-msg-services.md (4 hunks)
  • docs/build/building-modules/06-beginblock-endblock.md (1 hunks)
  • docs/build/building-modules/06-keeper.md (1 hunks)
  • docs/build/building-modules/07-invariants.md (1 hunks)
  • docs/build/building-modules/08-genesis.md (2 hunks)
  • docs/build/building-modules/11-structure.md (3 hunks)
  • docs/build/building-modules/12-errors.md (2 hunks)
  • docs/build/building-modules/14-simulator.md (2 hunks)
  • docs/build/building-modules/17-preblock.md (1 hunks)
Additional context used
Path-based instructions (11)
docs/build/building-modules/17-preblock.md (1)

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

docs/build/building-modules/12-errors.md (1)

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

docs/build/building-modules/06-beginblock-endblock.md (1)

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

docs/build/building-modules/08-genesis.md (1)

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

docs/build/building-modules/11-structure.md (1)

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

docs/build/building-modules/07-invariants.md (1)

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

docs/build/building-modules/06-keeper.md (1)

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

docs/build/building-modules/14-simulator.md (1)

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

docs/build/building-modules/02-messages-and-queries.md (1)

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

docs/build/building-modules/03-msg-services.md (1)

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

docs/build/building-modules/01-module-manager.md (1)

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

LanguageTool
docs/build/building-modules/17-preblock.md

[uncategorized] ~8-~8: You might be missing the article “an” here. (AI_EN_LECTOR_MISSING_DETERMINER_AN)
Context: ...ocker :::note Synopsis PreBlocker is optional method module developers can implement ...

docs/build/building-modules/12-errors.md

[style] ~15-~15: As a shorter alternative for ‘able to’, consider using “can”. (BE_ABLE_TO)
Context: ...here are two ways to return errors. You are able to register custom errors with a codespace...


[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...


[uncategorized] ~18-~18: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ... errors are registered they are part of consensus and can not be changed in a minor relea...


[style] ~18-~18: Unless you want to emphasize “not”, use “cannot” which is more common. (CAN_NOT_PREMIUM)
Context: ...gistered they are part of consensus and can not be changed in a minor release ::: ## R...


[misspelling] ~33-~33: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...ibution") and is unique per module, and a uint32 code. Together, the codespace an...

docs/build/building-modules/06-beginblock-endblock.md

[uncategorized] ~19-~19: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. (AI_HYDRA_LEO_CPT_ARE_IS)
Context: ...locker BeginBlocker and EndBlocker are a way for module developers to add auto...


[style] ~21-~21: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...cation required BeginBlock to execute prior to any sort of work is done then this is n...


[uncategorized] ~21-~21: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...to execute prior to any sort of work is done then this is not possible today (0.50.0...


[uncategorized] ~23-~23: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...efer to BeginBlocker and EndBlocker methods respectively, which are usually impleme...


[uncategorized] ~27-~27: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ...services.md): * They generally use the keeper and [ctx](../...

docs/build/building-modules/08-genesis.md

[style] ~52-~52: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ...p.md#initchain) when the application is first started. Given a GenesisState, it initializes...


[style] ~74-~74: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...for modules to submit state transitions prior to the first block. This is used by `x/gen...

docs/build/building-modules/11-structure.md

[uncategorized] ~28-~28: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...── tx.proto ``` * {module_name}.proto: The module's common message type defini...


[uncategorized] ~29-~29: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...sage type definitions. * genesis.proto: The module's message type definitions r...


[uncategorized] ~30-~30: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...elated to genesis state. * query.proto: The module's Query service and related ...


[uncategorized] ~31-~31: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...d message type definitions. * tx.proto: The module's Msg service and related me...


[uncategorized] ~79-~79: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... tx.pb.go └── README.md ``` * client/: The module's CLI client functionality i...


[uncategorized] ~80-~80: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...odule's CLI testing suite. * exported/: The module's exported types - typically...


[style] ~80-~80: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... expected_keepers.go file (see below) in order to avoid a direct dependency on the module...


[uncategorized] ~81-~81: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...leviates import cycle chaos. * keeper/: The module's Keeper and MsgServer i...


[uncategorized] ~82-~82: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...gServerimplementation. *abci.go: The module's BeginBlockerandEndBlo...


[uncategorized] ~83-~83: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...lockerneed to be defined). *module/: The module's AppModule` implementation...


[uncategorized] ~84-~84: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...duleimplementation. *autocli.go`: The module [autocli](https://docs.cosmo...


[uncategorized] ~85-~85: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...n/core/autocli) options. * simulation/: The module's [simulation](./14-simulato...


[uncategorized] ~86-~86: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...or application (simapp). * README.md: The module's specification documents ou...


[uncategorized] ~88-~88: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ed by Protocol Buffers. * codec.go: The module's registry methods for inter...


[uncategorized] ~89-~89: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...s for interface types. * errors.go: The module's sentinel errors. * `ev...


[uncategorized] ~90-~90: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ule's sentinel errors. * events.go: The module's event types and constructo...


[uncategorized] ~91-~91: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...onstructors. * expected_keepers.go: The module's [expected keeper](./06-kee...


[uncategorized] ~92-~92: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...finition) interfaces. * genesis.go: The module's genesis state methods and ...


[uncategorized] ~93-~93: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ds and helper functions. * keys.go: The module's store keys and associated ...


[uncategorized] ~94-~94: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ciated helper functions. * msgs.go: The module's message type definitions a...


[uncategorized] ~95-~95: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nd associated methods. * params.go: The module's parameter type definitions...


[uncategorized] ~96-~96: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... and associated methods. * *.pb.go: The module's type definitions generated...

docs/build/building-modules/07-invariants.md

[style] ~70-~70: Consider using a more formal verb to strengthen your wording. (GIVE_INFORMATION)
Context: ...ction above**. The rest of this section gives more information on the `InvariantRegis...

docs/build/building-modules/14-simulator.md

[uncategorized] ~14-~14: Possible missing preposition found. (AI_HYDRA_LEO_MISSING_OF)
Context: ...ument details how to define each module simulation functions to be integrated with the app...


[style] ~43-~43: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...arios and values for genesis parameters in order to fully test the edge cases of specific m...

docs/build/building-modules/02-messages-and-queries.md

[misspelling] ~42-~42: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...on.MsgInterface transaction.Msgis a alias ofproto.Message`. ```go refer...


[uncategorized] ~48-~48: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... attach a ValidateBasic() method to a message then you must add methods to the type a...


[typographical] ~62-~62: Consider adding a comma. (IF_THEN_COMMA)
Context: ...` If there is a need for custom signers then there is an alternative path which can ...


[uncategorized] ~91-~91: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ...viceDesc) that should be called inside module's [RegisterInterfaces`](01-module-mana...


[style] ~96-~96: Consider an alternative adjective to strengthen your wording. (DEEP_PROFOUND)
Context: ...service (./04-query-services.md). For a deeper look at the lifecycle of a query, cli...


[grammar] ~115-~115: You’ve repeated a verb. Did you mean to only write one of them? (REPEATED_VERBS)
Context: ...#appmodule). ### Store Queries Store queries query directly for store keys. They use `clie...


[uncategorized] ~117-~117: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ...nse` with inclusion Merkle proofs. See following examples: ```go reference https://gith...

docs/build/building-modules/03-msg-services.md

[misspelling] ~84-~84: This word is normally spelled with a hyphen. (EN_COMPOUNDS_TWO_WAY)
Context: ...agerheld inenvironment`. There are two way to emit events, typed events using prot...

docs/build/building-modules/01-module-manager.md

[style] ~8-~8: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...faces](#application-module-interfaces), in order to be managed by the application's [module...


[style] ~8-~8: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...lopers to set the order of execution of a variety of functions like [PreBlocker](https://d...


[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


[uncategorized] ~57-~57: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terLegacyAminoCodec(*codec.LegacyAmino): Registers the amino` codec for the mod...


[style] ~57-~57: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... and unmarshal structs to/from []byte in order to persist them in the module's KVStore....


[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nterfaces(codectypes.InterfaceRegistry)`: Registers a module's interface types an...


[uncategorized] ~73-~73: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...utes(client.Context, *runtime.ServeMux)`: Registers gRPC routes for the module. ...


[uncategorized] ~98-~98: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ds: * DefaultGenesis(codec.JSONCodec): Returns a default [GenesisState](./08...


[uncategorized] ~99-~99: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ient.TxEncodingConfig, json.RawMessage): Used to validate the GenesisState` def...


[uncategorized] ~146-~146: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...gisterInvariants(sdk.InvariantRegistry): Registers the [invariants`](./07-invar...


[uncategorized] ~164-~164: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ``` * RegisterServices(Configurator): Allows a module to register services. ...


[uncategorized] ~174-~174: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...6-L12 ``` * ConsensusVersion() uint64: Returns the consensus version of the mo...


[uncategorized] ~188-~188: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... *BeginBlock(context.Context) error`: This method gives module developers the...


[grammar] ~192-~192: “module” is a singular noun. It appears that the verb form is incorrect. (PCT_SINGULAR_NOUN_PLURAL_VERB_AGREEMENT)
Context: ...d implement this interface. If a module need to return validator set updates (stakin...


[uncategorized] ~198-~198: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...``` * EndBlock(context.Context) error: This method gives module developers the...


[uncategorized] ~208-~208: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: This method gives module developers the...


[uncategorized] ~241-~241: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...s: * NewManager(modules ...AppModule): Constructor function. It takes a list o...


[uncategorized] ~242-~242: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderInitGenesis(moduleNames ...string): Sets the order in which the [InitGenes...


[style] ~242-~242: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... will be called when the application is first started. This function is generally called from...


[uncategorized] ~244-~244: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derExportGenesis(moduleNames ...string): Sets the order in which the [ExportGen...


[uncategorized] ~245-~245: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderPreBlockers(moduleNames ...string): Sets the order in which the PreBlock()...


[uncategorized] ~246-~246: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derBeginBlockers(moduleNames ...string): Sets the order in which the BeginBlock...


[uncategorized] ~247-~247: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderEndBlockers(moduleNames ...string): Sets the order in which the EndBlock()...


[uncategorized] ~248-~248: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...rderPrecommiters(moduleNames ...string): Sets the order in which the Precommit(...


[uncategorized] ~249-~249: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...pareCheckStaters(moduleNames ...string): Sets the order in which the PrepareChe...


[uncategorized] ~250-~250: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tOrderMigrations(moduleNames ...string)`: Sets the order of migrations to be run....


[typographical] ~250-~250: It seems that a comma is missing. (IF_NOT_COMMA)
Context: ...e order of migrations to be run. If not set then migrations will be run with an ord...


[uncategorized] ~251-~251: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terInvariants(ir sdk.InvariantRegistry)`: Registers the [invariants](./07-invaria...


[uncategorized] ~251-~251: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ...the invariants of module implementing the HasInvariants interf...


[uncategorized] ~252-~252: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * RegisterServices(cfg Configurator): Registers the services of modules imple...


[uncategorized] ~253-~253: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...genesisData map[string]json.RawMessage): Calls the [InitGenesis`](./08-genesis....


[style] ~253-~253: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... of each module when the application is first started, in the order defined in `OrderInitGene...


[uncategorized] ~254-~254: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * ExportGenesis(ctx context.Context): Calls the [ExportGenesis](./08-genesi...


[uncategorized] ~255-~255: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...text.Context, modulesToExport []string): Behaves the same as ExportGenesis`, ex...


[uncategorized] ~256-~256: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... BeginBlock(ctx context.Context) error: At the beginning of each block, this fu...


[grammar] ~256-~256: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasBeginBlo...


[grammar] ~256-~256: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...dvanced/08-events.md) emitted from each modules. * `EndBlock(ctx context.Context) error...


[uncategorized] ~257-~257: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * EndBlock(ctx context.Context) error: At the end of each block, this function...


[grammar] ~257-~257: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasEndBlock...


[uncategorized] ~258-~258: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: At the end of each block, this function...


[grammar] ~258-~258: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `module.HasABCIEndBloc...


[uncategorized] ~259-~259: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...any). * Precommit(ctx context.Context): During [Commit](../../learn/advanced/...


[grammar] ~259-~259: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: ... turn calls the Precommit function of each modules implementing the HasPrecommit interfa...


[uncategorized] ~260-~260: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...PrepareCheckState(ctx context.Context): During [Commit](../../learn/advanced/...


[style] ~261-~261: ‘early on in the’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_EARLY_ON_IN_THE)
Context: ...module. This function is usually called early on in the [application's construction](../../lear...


[uncategorized] ~262-~262: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...(registry codectypes.InterfaceRegistry)`: Registers interface types and implement...


[uncategorized] ~264-~264: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * DefaultGenesis(cdc codec.JSONCodec): Provides default genesis information fo...


[grammar] ~264-~264: Possible subject-verb agreement error. (NNS_THAT_AGREEMENT)
Context: ... module. It only calls the modules that implements the HasGenesisBasics interfaces. * `V...


[uncategorized] ~265-~265: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ig, genesis map[string]json.RawMessage)`: Validates the genesis information modul...

Markdownlint
docs/build/building-modules/12-errors.md

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/06-beginblock-endblock.md

19-19: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


21-21: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/08-genesis.md

74-74: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/11-structure.md

82-82: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


84-84: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


88-88: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


89-89: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


90-90: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


91-91: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


92-92: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


93-93: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


94-94: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


95-95: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


96-96: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation

docs/build/building-modules/07-invariants.md

35-35: Column: 1 (MD010, no-hard-tabs)
Hard tabs


49-49: Column: 1 (MD010, no-hard-tabs)
Hard tabs


50-50: Column: 1 (MD010, no-hard-tabs)
Hard tabs


51-51: Column: 1 (MD010, no-hard-tabs)
Hard tabs


52-52: Column: 1 (MD010, no-hard-tabs)
Hard tabs


53-53: Column: 1 (MD010, no-hard-tabs)
Hard tabs


55-55: Column: 1 (MD010, no-hard-tabs)
Hard tabs


56-56: Column: 1 (MD010, no-hard-tabs)
Hard tabs

docs/build/building-modules/06-keeper.md

61-61: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/14-simulator.md

18-18: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


19-19: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


20-20: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


21-21: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


133-133: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


78-78: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/build/building-modules/02-messages-and-queries.md

42-42: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


54-54: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


58-58: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


62-62: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


68-68: Column: 1 (MD010, no-hard-tabs)
Hard tabs


70-70: Column: 1 (MD010, no-hard-tabs)
Hard tabs


71-71: Column: 1 (MD010, no-hard-tabs)
Hard tabs


73-73: Column: 1 (MD010, no-hard-tabs)
Hard tabs


74-74: Column: 1 (MD010, no-hard-tabs)
Hard tabs


27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


93-93: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


112-112: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/build/building-modules/03-msg-services.md

38-38: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


40-40: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


57-57: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


80-80: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


93-93: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


63-63: Column: 1 (MD010, no-hard-tabs)
Hard tabs


64-64: Column: 1 (MD010, no-hard-tabs)
Hard tabs


65-65: Column: 1 (MD010, no-hard-tabs)
Hard tabs


66-66: Column: 1 (MD010, no-hard-tabs)
Hard tabs


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


90-90: Column: 1 (MD010, no-hard-tabs)
Hard tabs


97-97: Column: 1 (MD010, no-hard-tabs)
Hard tabs


98-98: Column: 1 (MD010, no-hard-tabs)
Hard tabs


99-99: Column: 1 (MD010, no-hard-tabs)
Hard tabs


100-100: Column: 1 (MD010, no-hard-tabs)
Hard tabs


101-101: Column: 1 (MD010, no-hard-tabs)
Hard tabs


151-151: Column: 1 (MD010, no-hard-tabs)
Hard tabs

docs/build/building-modules/01-module-manager.md

130-130: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


221-221: Column: 1 (MD010, no-hard-tabs)
Hard tabs


75-75: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


210-210: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


213-213: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

Additional comments not posted (8)
docs/build/building-modules/17-preblock.md (2)

24-24: Clarify the deprecation of sdk.Context for consensus parameters to prevent misuse.
[REFACTOR_SUGGESTion]

- Consensus params located in `sdk.Context` were deprecated and should be treated as unsafe
+ Consensus parameters in `sdk.Context` are deprecated due to safety concerns and should not be used.

22-22: Ensure that the return type or value is documented clearly to indicate how modifications to consensus parameters should be signaled.

docs/build/building-modules/06-beginblock-endblock.md (1)

31-31: Clarify the use of the UpdateValidators method and its impact on consensus.

Ensure the documentation is clear on how UpdateValidators affects the consensus process.

docs/build/building-modules/08-genesis.md (1)

59-59: Ensure that the link to the InitGenesis method is up-to-date and points to the correct version.

docs/build/building-modules/11-structure.md (2)

5-10: Ensure clarity in the documentation regarding the optional nature of the structure guidelines.

The revised note effectively emphasizes that the structure guidelines are suggestive rather than prescriptive, which aligns well with the flexible and modular nature of the Cosmos SDK.


83-83: Clarify the purpose of autocli.go in the module structure.

The addition of autocli.go under the module/ directory is well-documented with a direct link to the Cosmos documentation, providing clear context on its usage and importance.

Tools
LanguageTool

[uncategorized] ~83-~83: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...lockerneed to be defined). *module/: The module's AppModule` implementation...

docs/build/building-modules/06-keeper.md (1)

50-62: Emphasize the use of KVStoreServices for state management.

The update to use KVStoreService instead of direct store keys helps encapsulate the state management better, promoting safer and more modular code. This change is well-explained and aligns with the Cosmos SDK's goals of improving security and modularity.

Tools
Markdownlint

61-61: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/14-simulator.md (1)

Line range hint 74-137: Clarify the execution process of SDK simulations.

The added documentation on how to execute SDK simulations provides valuable information on using the -tags='sims' parameter and other relevant parameters. This addition enhances the usability of the simulation features in the Cosmos SDK.

Comment on lines +7 to +8
<!-- TODO: figure what is the future of invariants -->

Copy link
Contributor

Choose a reason for hiding this comment

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

Address the future of invariants in the Cosmos SDK.

The TODO comment suggests uncertainty about the future role or implementation of invariants. Would you like assistance in clarifying this part of the documentation or should we open a GitHub issue to discuss this further?


`sdk.Msg` is a alias of `proto.Message`.
`transaction.Msg` is a alias of `proto.Message`.
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 article usage for better grammatical accuracy.

- `transaction.Msg` is a alias of `proto.Message`.
+ `transaction.Msg` is an alias of `proto.Message`.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
`transaction.Msg` is a alias of `proto.Message`.
`transaction.Msg` is an alias of `proto.Message`.
Tools
LanguageTool

[misspelling] ~42-~42: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...on.MsgInterface transaction.Msgis a alias ofproto.Message`. ```go refer...

Markdownlint

42-42: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


```go reference
https://github.com/cosmos/cosmos-sdk/blob/main/core/transaction/transaction.go#L8
```

To attach a `ValidateBasic()` method to a message then you must add methods to the type adhereing to the `HasValidateBasic`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider adding a comma after "message" for better readability.

- To attach a `ValidateBasic()` method to a message then you must add methods to the type adhering to the `HasValidateBasic`.
+ To attach a `ValidateBasic()` method to a message, then you must add methods to the type adhering to the `HasValidateBasic`.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
To attach a `ValidateBasic()` method to a message then you must add methods to the type adhereing to the `HasValidateBasic`.
To attach a `ValidateBasic()` method to a message, then you must add methods to the type adhering to the `HasValidateBasic`.
Tools
LanguageTool

[uncategorized] ~48-~48: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... attach a ValidateBasic() method to a message then you must add methods to the type a...

execution context.
common or general errors which can be further wrapped to provide additional specific execution context.

There are two ways to return errors. You are able to register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.
Copy link
Contributor

Choose a reason for hiding this comment

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

Use "can" instead of "are able to" for conciseness and clarity.

- There are two ways to return errors. You are able to register custom errors with a codespace...
+ There are two ways to return errors. You can register custom errors with a codespace...
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
There are two ways to return errors. You are able to register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.
There are two ways to return errors. You can register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.
Tools
LanguageTool

[style] ~15-~15: As a shorter alternative for ‘able to’, consider using “can”. (BE_ABLE_TO)
Context: ...here are two ways to return errors. You are able to register custom errors with a codespace...


[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...

Markdownlint

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

There are two ways to return errors. You are able to register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.

:::Warning
If errors are registered they are part of consensus and can not be changed in a minor release
Copy link
Contributor

Choose a reason for hiding this comment

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

Replace "can not" with "cannot" for standardization and clarity.

- If errors are registered they are part of consensus and can not be changed in a minor release
+ If errors are registered they are part of consensus and cannot be changed in a minor release
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
If errors are registered they are part of consensus and can not be changed in a minor release
If errors are registered they are part of consensus and cannot be changed in a minor release
Tools
LanguageTool

[uncategorized] ~18-~18: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ... errors are registered they are part of consensus and can not be changed in a minor relea...


[style] ~18-~18: Unless you want to emphasize “not”, use “cannot” which is more common. (CAN_NOT_PREMIUM)
Context: ...gistered they are part of consensus and can not be changed in a minor release ::: ## R...

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: 9

Outside diff range and nitpick comments (10)
docs/build/building-modules/17-preblock.md (1)

Line range hint 8-8: Consider adding an article for clarity: "PreBlocker is an optional method module developers can implement..."

docs/build/building-modules/11-structure.md (1)

5-5: Clarify the document title to reflect the content more specifically.

Consider renaming "Folder Structure" to "Cosmos SDK Module Folder Structure" for better clarity and specificity in documentation titles.

docs/build/building-modules/06-keeper.md (1)

61-62: Clarify the documentation link for "Collections".

The link to "Collections" seems to be generated via a script. It might be beneficial to provide more context or an actual URL to help readers find the relevant documentation more easily.

Tools
Markdownlint

61-61: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/02-messages-and-queries.md (3)

Line range hint 62-62: Consider adding a comma after 'signers' for better readability.

- If there is a need for custom signers then there is an alternative path which can be taken.
+ If there is a need for custom signers, then there is an alternative path which can be taken.
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


Line range hint 96-96: Consider replacing "deeper" with a more precise adjective like "detailed" to enhance clarity.

- For a deeper look at the lifecycle of a `query`, click here.
+ For a detailed look at the lifecycle of a `query`, click here.
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


Line range hint 115-115: Clarify the verb usage to avoid redundancy.

- Store queries query directly for store keys.
+ Store queries directly access store keys.
Tools
Markdownlint

27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/build/building-modules/03-msg-services.md (2)

Line range hint 78-78: Add a comma after 'successful' for better readability.

- After the validation is successful, the `msgServer` method uses the [`keeper`](./06-keeper.md) functions to access the state and perform a state transition.
+ After the validation is successful, the `msgServer` method uses the [`keeper`](./06-keeper.md) functions to access the state and perform a state transition.
Tools
LanguageTool

[uncategorized] ~24-~24: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...terface for x/bank, which exposes two transaction.Msgs: ```go reference https://github....


[uncategorized] ~30-~30: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ... When possible, the existing module's [Keeper`](./06-keeper.md) should implemen...

Markdownlint

38-38: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


40-40: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


Line range hint 105-105: Add a missing article for grammatical correctness.

- The invoked `msgServer` method returns a `proto.Message` response and an `error`.
+ The invoked `msgServer` method returns the `proto.Message` response and an `error`.
Tools
LanguageTool

[uncategorized] ~24-~24: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...terface for x/bank, which exposes two transaction.Msgs: ```go reference https://github....


[uncategorized] ~30-~30: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ... When possible, the existing module's [Keeper`](./06-keeper.md) should implemen...

Markdownlint

38-38: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


40-40: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/01-module-manager.md (2)

Line range hint 250-250: Add a missing comma for clarity.

- If not set then migrations will be run with an order defined in `DefaultMigrationsOrder`.
+ If not set, then migrations will be run with an order defined in `DefaultMigrationsOrder`.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 256-256: Ensure singular noun usage after 'each' for grammatical correctness.

- At the beginning of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#beginblock) and, in turn, calls the [`BeginBlock`](./06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasBeginBlocker` interface.
+ At the beginning of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#beginblock) and, in turn, calls the [`BeginBlock`](./06-beginblock-endblock.md) function of each module implementing the `appmodule.HasBeginBlocker` interface.

- At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasEndBlocker` interface.
+ At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each module implementing the `appmodule.HasEndBlocker` interface.

- At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each modules implementing the `module.HasABCIEndBlock` interface.
+ At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each module implementing the `module.HasABCIEndBlock` interface.

Also applies to: 257-257, 258-258

Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 5857c6e and 06b185c.

Files selected for processing (11)
  • docs/build/building-modules/01-module-manager.md (9 hunks)
  • docs/build/building-modules/02-messages-and-queries.md (3 hunks)
  • docs/build/building-modules/03-msg-services.md (4 hunks)
  • docs/build/building-modules/06-beginblock-endblock.md (1 hunks)
  • docs/build/building-modules/06-keeper.md (1 hunks)
  • docs/build/building-modules/07-invariants.md (1 hunks)
  • docs/build/building-modules/08-genesis.md (2 hunks)
  • docs/build/building-modules/11-structure.md (3 hunks)
  • docs/build/building-modules/12-errors.md (2 hunks)
  • docs/build/building-modules/14-simulator.md (2 hunks)
  • docs/build/building-modules/17-preblock.md (1 hunks)
Additional context used
Path-based instructions (11)
docs/build/building-modules/17-preblock.md (1)

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

docs/build/building-modules/12-errors.md (1)

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

docs/build/building-modules/06-beginblock-endblock.md (1)

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

docs/build/building-modules/08-genesis.md (1)

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

docs/build/building-modules/11-structure.md (1)

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

docs/build/building-modules/07-invariants.md (1)

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

docs/build/building-modules/06-keeper.md (1)

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

docs/build/building-modules/14-simulator.md (1)

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

docs/build/building-modules/02-messages-and-queries.md (1)

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

docs/build/building-modules/03-msg-services.md (1)

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

docs/build/building-modules/01-module-manager.md (1)

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

Learnings (1)
docs/build/building-modules/08-genesis.md (1)
User: likhita-809
PR: cosmos/cosmos-sdk#18471
File: x/protocolpool/keeper/genesis.go:12-51
Timestamp: 2023-11-22T12:32:39.368Z
Learning: - The user `likhita-809` has confirmed the changes suggested in the previous interaction.
- The file in question is `x/protocolpool/keeper/genesis.go` from a Cosmos SDK module.
- The changes involve optimizing the `InitGenesis` function by removing redundant code and ensuring proper handling of start times for budget proposals.
LanguageTool
docs/build/building-modules/17-preblock.md

[uncategorized] ~8-~8: Possible missing article found. (AI_HYDRA_LEO_MISSING_AN)
Context: ...ocker :::note Synopsis PreBlocker is optional method module developers can implement ...

docs/build/building-modules/12-errors.md

[style] ~15-~15: As a shorter alternative for ‘able to’, consider using “can”. (BE_ABLE_TO)
Context: ...here are two ways to return errors. You are able to register custom errors with a codespace...


[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...


[uncategorized] ~18-~18: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ... errors are registered they are part of consensus and can not be changed in a minor relea...


[style] ~18-~18: Unless you want to emphasize “not”, use “cannot” which is more common. (CAN_NOT_PREMIUM)
Context: ...gistered they are part of consensus and can not be changed in a minor release ::: ## R...


[misspelling] ~33-~33: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...ibution") and is unique per module, and a uint32 code. Together, the codespace an...


[uncategorized] ~34-~34: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ly, the code is monotonically increasing but does not necessarily have to be. The on...

docs/build/building-modules/06-beginblock-endblock.md

[uncategorized] ~19-~19: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. (AI_HYDRA_LEO_CPT_ARE_IS)
Context: ...locker BeginBlocker and EndBlocker are a way for module developers to add auto...


[style] ~21-~21: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...cation required BeginBlock to execute prior to any sort of work is done then this is n...


[uncategorized] ~23-~23: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...efer to BeginBlocker and EndBlocker methods respectively, which are usually impleme...

docs/build/building-modules/08-genesis.md

[style] ~52-~52: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ...p.md#initchain) when the application is first started. Given a GenesisState, it initializes...


[style] ~74-~74: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...for modules to submit state transitions prior to the first block. This is used by `x/gen...

docs/build/building-modules/11-structure.md

[uncategorized] ~28-~28: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...── tx.proto ``` * {module_name}.proto: The module's common message type defini...


[uncategorized] ~29-~29: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...sage type definitions. * genesis.proto: The module's message type definitions r...


[uncategorized] ~30-~30: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...elated to genesis state. * query.proto: The module's Query service and related ...


[uncategorized] ~31-~31: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...d message type definitions. * tx.proto: The module's Msg service and related me...


[uncategorized] ~79-~79: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... tx.pb.go └── README.md ``` * client/: The module's CLI client functionality i...


[uncategorized] ~80-~80: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...odule's CLI testing suite. * exported/: The module's exported types - typically...


[style] ~80-~80: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... expected_keepers.go file (see below) in order to avoid a direct dependency on the module...


[uncategorized] ~80-~80: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... to the module that is implementing the keepers and this is where exported/ comes int...


[uncategorized] ~81-~81: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...leviates import cycle chaos. * keeper/: The module's Keeper and MsgServer i...


[uncategorized] ~82-~82: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...gServerimplementation. *abci.go: The module's BeginBlockerandEndBlo...


[uncategorized] ~83-~83: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...lockerneed to be defined). *module/: The module's AppModule` implementation...


[uncategorized] ~84-~84: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...duleimplementation. *autocli.go`: The module [autocli](https://docs.cosmo...


[uncategorized] ~85-~85: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...n/core/autocli) options. * simulation/: The module's [simulation](./14-simulato...


[uncategorized] ~86-~86: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...or application (simapp). * README.md: The module's specification documents ou...


[uncategorized] ~88-~88: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ed by Protocol Buffers. * codec.go: The module's registry methods for inter...


[uncategorized] ~89-~89: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...s for interface types. * errors.go: The module's sentinel errors. * `ev...


[uncategorized] ~90-~90: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ule's sentinel errors. * events.go: The module's event types and constructo...


[uncategorized] ~91-~91: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...onstructors. * expected_keepers.go: The module's [expected keeper](./06-kee...


[uncategorized] ~92-~92: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...finition) interfaces. * genesis.go: The module's genesis state methods and ...


[uncategorized] ~93-~93: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ds and helper functions. * keys.go: The module's store keys and associated ...


[uncategorized] ~94-~94: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ciated helper functions. * msgs.go: The module's message type definitions a...


[uncategorized] ~95-~95: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nd associated methods. * params.go: The module's parameter type definitions...


[uncategorized] ~96-~96: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... and associated methods. * *.pb.go: The module's type definitions generated...

docs/build/building-modules/07-invariants.md

[style] ~70-~70: Consider using a more formal verb to strengthen your wording. (GIVE_INFORMATION)
Context: ...ction above**. The rest of this section gives more information on the `InvariantRegis...

docs/build/building-modules/06-keeper.md

[uncategorized] ~8-~8: This verb does not appear to agree with the subject. Consider using a different form. (AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
Context: ... # Keepers :::note Synopsis Keepers refer to a Cosmos SDK abstraction whose role ...


[uncategorized] ~52-~52: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...ight to change module level parameters. Previously this was handled by the param module, w...

docs/build/building-modules/14-simulator.md

[uncategorized] ~14-~14: Possible missing preposition found. (AI_HYDRA_LEO_MISSING_OF)
Context: ...ument details how to define each module simulation functions to be integrated with the app...


[style] ~43-~43: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...arios and values for genesis parameters in order to fully test the edge cases of specific m...


[uncategorized] ~75-~75: The preposition ‘to’ seems more likely in this position. (AI_HYDRA_LEO_REPLACE_IN_TO)
Context: ...tions can be executed like normal tests in Go from the shell or within an IDE. Mak...


[uncategorized] ~133-~133: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... the deterministic pseudo random number generator where the fuzzer provides varying numbe...

docs/build/building-modules/02-messages-and-queries.md

[misspelling] ~42-~42: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...on.MsgInterface transaction.Msgis a alias ofproto.Message`. ```go refer...


[typographical] ~62-~62: Consider adding a comma. (IF_THEN_COMMA)
Context: ...` If there is a need for custom signers then there is an alternative path which can ...


[style] ~96-~96: Consider an alternative adjective to strengthen your wording. (DEEP_PROFOUND)
Context: ...service (./04-query-services.md). For a deeper look at the lifecycle of a query, cli...


[grammar] ~115-~115: You’ve repeated a verb. Did you mean to only write one of them? (REPEATED_VERBS)
Context: ...#appmodule). ### Store Queries Store queries query directly for store keys. They use `clie...

docs/build/building-modules/03-msg-services.md

[uncategorized] ~24-~24: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...terface for x/bank, which exposes two transaction.Msgs: ```go reference https://github....


[uncategorized] ~30-~30: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ... When possible, the existing module's [Keeper`](./06-keeper.md) should implemen...


[uncategorized] ~78-~78: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ...essful, the msgServer method uses the keeper functions to ac...


[misspelling] ~84-~84: This word is normally spelled with a hyphen. (EN_COMPOUNDS_TWO_WAY)
Context: ...agerheld inenvironment`. There are two way to emit events, typed events using prot...


[uncategorized] ~105-~105: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ...anced/08-events.md) to learn more about events. The invoked msgServer method return...

docs/build/building-modules/01-module-manager.md

[style] ~8-~8: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...faces](#application-module-interfaces), in order to be managed by the application's [module...


[style] ~8-~8: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...lopers to set the order of execution of a variety of functions like [PreBlocker](https://d...


[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


[uncategorized] ~57-~57: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terLegacyAminoCodec(*codec.LegacyAmino): Registers the amino` codec for the mod...


[style] ~57-~57: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... and unmarshal structs to/from []byte in order to persist them in the module's KVStore....


[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nterfaces(codectypes.InterfaceRegistry)`: Registers a module's interface types an...


[uncategorized] ~73-~73: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...utes(client.Context, *runtime.ServeMux)`: Registers gRPC routes for the module. ...


[uncategorized] ~98-~98: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ds: * DefaultGenesis(codec.JSONCodec): Returns a default [GenesisState](./08...


[uncategorized] ~99-~99: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ient.TxEncodingConfig, json.RawMessage): Used to validate the GenesisState` def...


[uncategorized] ~146-~146: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...gisterInvariants(sdk.InvariantRegistry): Registers the [invariants`](./07-invar...


[uncategorized] ~164-~164: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ``` * RegisterServices(Configurator): Allows a module to register services. ...


[uncategorized] ~174-~174: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...6-L12 ``` * ConsensusVersion() uint64: Returns the consensus version of the mo...


[uncategorized] ~188-~188: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... *BeginBlock(context.Context) error`: This method gives module developers the...


[grammar] ~192-~192: “module” is a singular noun. It appears that the verb form is incorrect. (PCT_SINGULAR_NOUN_PLURAL_VERB_AGREEMENT)
Context: ...d implement this interface. If a module need to return validator set updates (stakin...


[uncategorized] ~198-~198: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...``` * EndBlock(context.Context) error: This method gives module developers the...


[uncategorized] ~208-~208: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: This method gives module developers the...


[uncategorized] ~241-~241: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...s: * NewManager(modules ...AppModule): Constructor function. It takes a list o...


[uncategorized] ~242-~242: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderInitGenesis(moduleNames ...string): Sets the order in which the [InitGenes...


[style] ~242-~242: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... will be called when the application is first started. This function is generally called from...


[uncategorized] ~244-~244: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derExportGenesis(moduleNames ...string): Sets the order in which the [ExportGen...


[uncategorized] ~245-~245: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderPreBlockers(moduleNames ...string): Sets the order in which the PreBlock()...


[uncategorized] ~246-~246: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derBeginBlockers(moduleNames ...string): Sets the order in which the BeginBlock...


[uncategorized] ~247-~247: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderEndBlockers(moduleNames ...string): Sets the order in which the EndBlock()...


[uncategorized] ~248-~248: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...rderPrecommiters(moduleNames ...string): Sets the order in which the Precommit(...


[uncategorized] ~249-~249: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...pareCheckStaters(moduleNames ...string): Sets the order in which the PrepareChe...


[uncategorized] ~250-~250: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tOrderMigrations(moduleNames ...string)`: Sets the order of migrations to be run....


[typographical] ~250-~250: It seems that a comma is missing. (IF_NOT_COMMA)
Context: ...e order of migrations to be run. If not set then migrations will be run with an ord...


[uncategorized] ~251-~251: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terInvariants(ir sdk.InvariantRegistry)`: Registers the [invariants](./07-invaria...


[uncategorized] ~251-~251: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ...the invariants of module implementing the HasInvariants interf...


[uncategorized] ~252-~252: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * RegisterServices(cfg Configurator): Registers the services of modules imple...


[uncategorized] ~253-~253: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...genesisData map[string]json.RawMessage): Calls the [InitGenesis`](./08-genesis....


[style] ~253-~253: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... of each module when the application is first started, in the order defined in `OrderInitGene...


[uncategorized] ~254-~254: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * ExportGenesis(ctx context.Context): Calls the [ExportGenesis](./08-genesi...


[uncategorized] ~255-~255: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...text.Context, modulesToExport []string): Behaves the same as ExportGenesis`, ex...


[uncategorized] ~256-~256: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... BeginBlock(ctx context.Context) error: At the beginning of each block, this fu...


[grammar] ~256-~256: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasBeginBlo...


[grammar] ~256-~256: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...dvanced/08-events.md) emitted from each modules. * `EndBlock(ctx context.Context) error...


[uncategorized] ~257-~257: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * EndBlock(ctx context.Context) error: At the end of each block, this function...


[grammar] ~257-~257: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasEndBlock...


[uncategorized] ~258-~258: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: At the end of each block, this function...


[grammar] ~258-~258: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `module.HasABCIEndBloc...


[uncategorized] ~259-~259: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...any). * Precommit(ctx context.Context): During [Commit](../../learn/advanced/...


[grammar] ~259-~259: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: ... turn calls the Precommit function of each modules implementing the HasPrecommit interfa...


[uncategorized] ~260-~260: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...PrepareCheckState(ctx context.Context): During [Commit](../../learn/advanced/...


[style] ~261-~261: ‘early on in the’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_EARLY_ON_IN_THE)
Context: ...module. This function is usually called early on in the [application's construction](../../lear...


[uncategorized] ~262-~262: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...(registry codectypes.InterfaceRegistry)`: Registers interface types and implement...


[uncategorized] ~264-~264: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * DefaultGenesis(cdc codec.JSONCodec): Provides default genesis information fo...


[grammar] ~264-~264: Possible subject-verb agreement error. (NNS_THAT_AGREEMENT)
Context: ... module. It only calls the modules that implements the HasGenesisBasics interfaces. * `V...


[uncategorized] ~265-~265: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ig, genesis map[string]json.RawMessage)`: Validates the genesis information modul...

Markdownlint
docs/build/building-modules/12-errors.md

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/06-beginblock-endblock.md

19-19: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


21-21: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/08-genesis.md

74-74: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/11-structure.md

82-82: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


84-84: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


88-88: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


89-89: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


90-90: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


91-91: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


92-92: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


93-93: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


94-94: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


95-95: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


96-96: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation

docs/build/building-modules/07-invariants.md

35-35: Column: 1 (MD010, no-hard-tabs)
Hard tabs


49-49: Column: 1 (MD010, no-hard-tabs)
Hard tabs


50-50: Column: 1 (MD010, no-hard-tabs)
Hard tabs


51-51: Column: 1 (MD010, no-hard-tabs)
Hard tabs


52-52: Column: 1 (MD010, no-hard-tabs)
Hard tabs


53-53: Column: 1 (MD010, no-hard-tabs)
Hard tabs


55-55: Column: 1 (MD010, no-hard-tabs)
Hard tabs


56-56: Column: 1 (MD010, no-hard-tabs)
Hard tabs

docs/build/building-modules/06-keeper.md

61-61: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/14-simulator.md

18-18: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


19-19: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


20-20: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


21-21: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


133-133: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


78-78: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/build/building-modules/02-messages-and-queries.md

42-42: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


54-54: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


58-58: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


62-62: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


68-68: Column: 1 (MD010, no-hard-tabs)
Hard tabs


70-70: Column: 1 (MD010, no-hard-tabs)
Hard tabs


71-71: Column: 1 (MD010, no-hard-tabs)
Hard tabs


73-73: Column: 1 (MD010, no-hard-tabs)
Hard tabs


74-74: Column: 1 (MD010, no-hard-tabs)
Hard tabs


27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


93-93: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


112-112: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/build/building-modules/03-msg-services.md

38-38: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


40-40: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


57-57: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


80-80: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


93-93: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


63-63: Column: 1 (MD010, no-hard-tabs)
Hard tabs


64-64: Column: 1 (MD010, no-hard-tabs)
Hard tabs


65-65: Column: 1 (MD010, no-hard-tabs)
Hard tabs


66-66: Column: 1 (MD010, no-hard-tabs)
Hard tabs


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


90-90: Column: 1 (MD010, no-hard-tabs)
Hard tabs


97-97: Column: 1 (MD010, no-hard-tabs)
Hard tabs


98-98: Column: 1 (MD010, no-hard-tabs)
Hard tabs


99-99: Column: 1 (MD010, no-hard-tabs)
Hard tabs


100-100: Column: 1 (MD010, no-hard-tabs)
Hard tabs


101-101: Column: 1 (MD010, no-hard-tabs)
Hard tabs


151-151: Column: 1 (MD010, no-hard-tabs)
Hard tabs

docs/build/building-modules/01-module-manager.md

130-130: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


221-221: Column: 1 (MD010, no-hard-tabs)
Hard tabs


75-75: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


210-210: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


213-213: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

Additional comments not posted (7)
docs/build/building-modules/17-preblock.md (1)

21-24: Clarify the implications of modifying consensus parameters in storage. Mention potential risks or necessary precautions to ensure developers handle this capability responsibly.

docs/build/building-modules/06-beginblock-endblock.md (2)

29-29: Ensure that the documentation specifies the types of events that can be emitted via environments's EventManager to help developers understand what is possible within these lifecycle methods.


31-31: Clarify the role and usage of the UpdateValidators method, especially how it interacts with the consensus engine and what specific validator updates are allowed.

docs/build/building-modules/08-genesis.md (1)

Line range hint 59-69: Ensure that the documentation for InitGenesis and ExportGenesis includes all necessary parameters and their types to avoid confusion during implementation.

docs/build/building-modules/06-keeper.md (1)

50-50: Excellent update on KVStoreServices for enhanced module encapsulation.

The update to use KVStoreService instead of direct storeKey access aligns with modern practices of encapsulation and modularity in software design. This change should help in maintaining clear boundaries and responsibilities within the module architecture.

docs/build/building-modules/14-simulator.md (1)

74-74: Clarification on running SDK simulations.

The instructions for executing SDK simulations with the -tags='sims' parameter are clear and concise. This addition helps users understand how to properly execute simulations, which is crucial for testing and development.

docs/build/building-modules/02-messages-and-queries.md (1)

28-28: Update the documentation to reflect the new interface transaction.Msg.

@@ -4,6 +4,8 @@ sidebar_position: 1

# Invariants

<!-- TODO: figure what is the future of invariants -->
Copy link
Contributor

Choose a reason for hiding this comment

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

Address the TODO comment regarding the future of invariants.

It seems there is an unresolved question about the future of invariants. Would you like assistance in determining this or should we open an issue to discuss this further?

The new ctx must be passed to all the other lifecycle methods.

<!-- TODO: leaving this here to update docs with core api changes -->
Modules are required to get the consensus params from the consensus module. Consensus params located in `sdk.Context` were depreacted and should be treated as unsafe
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider expanding on the reasons for deprecating sdk.Context in consensus parameters and suggest alternatives or migration paths.

Would you like me to draft a detailed explanation or migration guide for moving away from sdk.Context?

Comment on lines 15 to 19
There are two ways to return errors. You are able to register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.

:::Warning
If errors are registered they are part of consensus and can not be changed in a minor release
:::
Copy link
Contributor

Choose a reason for hiding this comment

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

Simplify the language for clarity: "You can register custom errors with a codespace that provides additional information to clients, alongside normal Go errors."
Also, replace "can not" with "cannot" for grammatical correctness.

- You are able to register custom errors with a codespace that is meant to provide more information to clients and normal go errors.
+ You can register custom errors with a codespace that provides additional information to clients, alongside normal Go errors.
- If errors are registered they are part of consensus and can not be changed in a minor release
+ If errors are registered, they are part of consensus and cannot be changed in a minor release
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
There are two ways to return errors. You are able to register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.
:::Warning
If errors are registered they are part of consensus and can not be changed in a minor release
:::
There are two ways to return errors. You can register custom errors with a codespace that provides additional information to clients, alongside normal Go errors. The Cosmos SDK uses a mixture of both.
:::Warning
If errors are registered, they are part of consensus and cannot be changed in a minor release
:::
Tools
LanguageTool

[style] ~15-~15: As a shorter alternative for ‘able to’, consider using “can”. (BE_ABLE_TO)
Context: ...here are two ways to return errors. You are able to register custom errors with a codespace...


[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...


[uncategorized] ~18-~18: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ... errors are registered they are part of consensus and can not be changed in a minor relea...


[style] ~18-~18: Unless you want to emphasize “not”, use “cannot” which is more common. (CAN_NOT_PREMIUM)
Context: ...gistered they are part of consensus and can not be changed in a minor release ::: ## R...

Markdownlint

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

```

### `sdk.Msg` Interface
### `transaction.Msg` Interface
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 article usage for clarity and grammatical accuracy.

- `transaction.Msg` is a alias of `proto.Message`.
+ `transaction.Msg` is an alias of `proto.Message`.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### `transaction.Msg` Interface
`transaction.Msg` is an alias of `proto.Message`.

docs/build/building-modules/01-module-manager.md Outdated Show resolved Hide resolved

### Implementing the Application Module Interfaces

// TODO reword!
Copy link
Contributor

Choose a reason for hiding this comment

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

do we still need to reword this?

Copy link
Member Author

Choose a reason for hiding this comment

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

removed a sentence, what do you think should it be reworded?

Copy link
Contributor

Choose a reason for hiding this comment

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

if its removed no worries!

docs/build/building-modules/03-msg-services.md Outdated 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: 3

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 06b185c and e66a836.

Files selected for processing (1)
  • docs/build/building-modules/03-msg-services.md (4 hunks)
Additional context used
Path-based instructions (1)
docs/build/building-modules/03-msg-services.md (1)

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

LanguageTool
docs/build/building-modules/03-msg-services.md

[misspelling] ~84-~84: This word is normally spelled with a hyphen. (EN_COMPOUNDS_TWO_WAY)
Context: ...agerheld inenvironment`. There are two way to emit events, typed events using prot...

Markdownlint
docs/build/building-modules/03-msg-services.md

38-38: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


40-40: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


57-57: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


80-80: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


93-93: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


63-63: Column: 1 (MD010, no-hard-tabs)
Hard tabs


64-64: Column: 1 (MD010, no-hard-tabs)
Hard tabs


65-65: Column: 1 (MD010, no-hard-tabs)
Hard tabs


66-66: Column: 1 (MD010, no-hard-tabs)
Hard tabs


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


90-90: Column: 1 (MD010, no-hard-tabs)
Hard tabs


97-97: Column: 1 (MD010, no-hard-tabs)
Hard tabs


98-98: Column: 1 (MD010, no-hard-tabs)
Hard tabs


99-99: Column: 1 (MD010, no-hard-tabs)
Hard tabs


100-100: Column: 1 (MD010, no-hard-tabs)
Hard tabs


101-101: Column: 1 (MD010, no-hard-tabs)
Hard tabs

Additional comments not posted (3)
docs/build/building-modules/03-msg-services.md (3)

47-47: ```shell
#!/bin/bash

Description: Verify if the provided commit hash is the most recent one for the specified file.

Extract the specified commit hash

commit_hash="07151304e2ec6a185243d083f59a2d543253cb15"

Get the latest commit hash for the specified file

latest_commit_hash=$(git log -1 --pretty=format:"%H" x/bank/keeper/keeper.go)

Compare the specified commit hash with the latest commit hash

if [ "$commit_hash" = "$latest_commit_hash" ]; then
echo "The link points to the most recent commit."
else
echo "The link does not point to the most recent commit."
echo "Latest commit hash: $latest_commit_hash"
fi


---

`27-27`: ```shell
#!/bin/bash
# Description: Verify if the commit hash in the hyperlink is the most recent one for the file `x/bank/types/tx.pb.go`.

# Fetch the latest commit hash for the file `x/bank/types/tx.pb.go`.
latest_commit_hash=$(git log -n 1 --pretty=format:%H -- x/bank/types/tx.pb.go)

# Output the latest commit hash and compare it with the hyperlink hash.
echo "Latest commit hash for x/bank/types/tx.pb.go: $latest_commit_hash"
echo "Hyperlink commit hash: 28fa3b8"

33-33: ```shell
#!/bin/bash

Description: Check if the commit hash 28fa3b8 is the most recent for the file x/bank/keeper/msg_server.go.

List the commit history for the file and get the most recent commit hash

git log --pretty=format:"%H" -n 1 x/bank/keeper/msg_server.go


</blockquote></details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Before returning, `msgServer` methods generally emit one or more [events](../../learn/advanced/08-events.md) by using the `EventManager` held in the `ctx`. Use the new `EmitTypedEvent` function that uses protobuf-based event types:
Before returning, `msgServer` methods generally emit one or more [events](../../learn/advanced/08-events.md) by using the `EventManager` held in `environment`.

There are two way to emit events, typed events using protobuf or arbitrary key & values.
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 spelling to use a hyphen in "two-way".

- There are two way to emit events, typed events using protobuf or arbitrary key & values.
+ There are two-way to emit events, typed events using protobuf or arbitrary key & values.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
There are two way to emit events, typed events using protobuf or arbitrary key & values.
There are two-way to emit events, typed events using protobuf or arbitrary key & values.
Tools
LanguageTool

[misspelling] ~84-~84: This word is normally spelled with a hyphen. (EN_COMPOUNDS_TWO_WAY)
Context: ...agerheld inenvironment`. There are two way to emit events, typed events using prot...

@@ -21,25 +21,33 @@

As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.

Protobuf generates a `MsgServer` interface based on a definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `sdk.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `sdk.Msg`s:
Protobuf generates a `MsgServer` interface based on a definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `transaction.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `transaction.Msg`s:
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct grammatical and syntax issues in the documentation.

- Protobuf generates a `MsgServer` interface based on a definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `transaction.Msg`.
+ Protobuf generates a `MsgServer` interface based on the definition of a `Msg` service. It is the role of the module developer to implement this interface by implementing the state transition logic that should occur upon receipt of each `transaction.Msg`.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Protobuf generates a `MsgServer` interface based on a definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `transaction.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `transaction.Msg`s:
Protobuf generates a `MsgServer` interface based on the definition of a `Msg` service. It is the role of the module developer to implement this interface by implementing the state transition logic that should occur upon receipt of each `transaction.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `transaction.Msg`s:

Environment:

```go reference
https://github.com/cosmos/cosmos-sdk/blob/07151304e2ec6a185243d083f59a2d543253cb15/core/appmodule/v2/environment.go#L14-L29
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 hyperlink in the documentation points to an outdated commit. The most recent commit for the specified file is 1b47dc91a3a1f7d911f5674f6b13bc057c786949.

  • Update the hyperlink to point to the latest commit.
Analysis chain

Ensure the hyperlink points to the correct and most recent commit.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the hyperlink points to the correct and most recent commit.

# Test: Search for the link in the repository. Expect: The link points to the most recent commit.
cat docs/build/building-modules/03-msg-services.md | grep 'https://github.com/cosmos/cosmos-sdk/blob/07151304e2ec6a185243d083f59a2d543253cb15/core/appmodule/v2/environment.go#L14-L29'

Length of output: 307



Script:

#!/bin/bash
# Description: Verify if the given commit hash is the most recent for the specified file.

# Fetch the latest commit hash for the specified file
latest_commit=$(git log -1 --format="%H" -- core/appmodule/v2/environment.go)

# Print the latest commit hash
echo "Latest commit hash for core/appmodule/v2/environment.go: $latest_commit"

# Check if the given commit hash matches the latest commit hash
if [ "$latest_commit" == "07151304e2ec6a185243d083f59a2d543253cb15" ]; then
  echo "The given commit hash is the most recent."
else
  echo "The given commit hash is not the most recent."
fi

Length of output: 959

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: 6

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between e66a836 and 39ace10.

Files selected for processing (5)
  • docs/build/building-modules/01-module-manager.md (8 hunks)
  • docs/build/building-modules/02-messages-and-queries.md (3 hunks)
  • docs/build/building-modules/03-msg-services.md (4 hunks)
  • docs/build/building-modules/12-errors.md (2 hunks)
  • docs/build/building-modules/17-preblock.md (1 hunks)
Additional context used
Path-based instructions (5)
docs/build/building-modules/17-preblock.md (1)

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

docs/build/building-modules/12-errors.md (1)

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

docs/build/building-modules/02-messages-and-queries.md (1)

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

docs/build/building-modules/03-msg-services.md (1)

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

docs/build/building-modules/01-module-manager.md (1)

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

LanguageTool
docs/build/building-modules/17-preblock.md

[uncategorized] ~8-~8: You might be missing the article “an” here. (AI_EN_LECTOR_MISSING_DETERMINER_AN)
Context: ...ocker :::note Synopsis PreBlocker is optional method module developers can implement ...


[style] ~24-~24: This wording can make your sentence hard to follow. Try rephrasing for improved clarity. (DUE_TO_BECAUSE)
Context: ... as unsafe. sdk.Context is deprecated due to it being a global state within the entire state ...

docs/build/building-modules/12-errors.md

[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...


[misspelling] ~33-~33: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...ibution") and is unique per module, and a uint32 code. Together, the codespace an...


[uncategorized] ~42-~42: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...rrors can be returned as their concrete type as they already fulfill the error int...

docs/build/building-modules/02-messages-and-queries.md

[typographical] ~62-~62: Consider adding a comma. (IF_THEN_COMMA)
Context: ...` If there is a need for custom signers then there is an alternative path which can ...


[style] ~96-~96: Consider an alternative adjective to strengthen your wording. (DEEP_PROFOUND)
Context: ...service (./04-query-services.md). For a deeper look at the lifecycle of a query, cli...


[grammar] ~115-~115: You’ve repeated a verb. Did you mean to only write one of them? (REPEATED_VERBS)
Context: ...#appmodule). ### Store Queries Store queries query directly for store keys. They use `clie...

docs/build/building-modules/03-msg-services.md

[uncategorized] ~24-~24: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...terface for x/bank, which exposes two transaction.Msgs: ```go reference https://github....


[uncategorized] ~30-~30: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ... When possible, the existing module's [Keeper`](./06-keeper.md) should implemen...


[uncategorized] ~78-~78: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ...essful, the msgServer method uses the keeper functions to ac...


[uncategorized] ~105-~105: You might be missing the article “the” here. (AI_EN_LECTOR_MISSING_DETERMINER_THE)
Context: ...anced/08-events.md) to learn more about events. The invoked msgServer method return...

docs/build/building-modules/01-module-manager.md

[style] ~8-~8: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...faces](#application-module-interfaces), in order to be managed by the application's [module...


[style] ~8-~8: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...lopers to set the order of execution of a variety of functions like [PreBlocker](https://d...


[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


[uncategorized] ~57-~57: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terLegacyAminoCodec(*codec.LegacyAmino): Registers the amino` codec for the mod...


[style] ~57-~57: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... and unmarshal structs to/from []byte in order to persist them in the module's KVStore....


[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nterfaces(codectypes.InterfaceRegistry)`: Registers a module's interface types an...


[uncategorized] ~73-~73: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...utes(client.Context, *runtime.ServeMux)`: Registers gRPC routes for the module. ...


[uncategorized] ~98-~98: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ds: * DefaultGenesis(codec.JSONCodec): Returns a default [GenesisState](./08...


[uncategorized] ~99-~99: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ient.TxEncodingConfig, json.RawMessage): Used to validate the GenesisState` def...


[uncategorized] ~146-~146: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...gisterInvariants(sdk.InvariantRegistry): Registers the [invariants`](./07-invar...


[uncategorized] ~164-~164: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ``` * RegisterServices(Configurator): Allows a module to register services. ...


[uncategorized] ~174-~174: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...6-L12 ``` * ConsensusVersion() uint64: Returns the consensus version of the mo...


[uncategorized] ~188-~188: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... *BeginBlock(context.Context) error`: This method gives module developers the...


[uncategorized] ~198-~198: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...``` * EndBlock(context.Context) error: This method gives module developers the...


[uncategorized] ~208-~208: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: This method gives module developers the...


[uncategorized] ~241-~241: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...s: * NewManager(modules ...AppModule): Constructor function. It takes a list o...


[uncategorized] ~242-~242: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderInitGenesis(moduleNames ...string): Sets the order in which the [InitGenes...


[style] ~242-~242: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... will be called when the application is first started. This function is generally called from...


[uncategorized] ~244-~244: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derExportGenesis(moduleNames ...string): Sets the order in which the [ExportGen...


[uncategorized] ~245-~245: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderPreBlockers(moduleNames ...string): Sets the order in which the PreBlock()...


[uncategorized] ~246-~246: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derBeginBlockers(moduleNames ...string): Sets the order in which the BeginBlock...


[uncategorized] ~247-~247: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderEndBlockers(moduleNames ...string): Sets the order in which the EndBlock()...


[uncategorized] ~248-~248: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...rderPrecommiters(moduleNames ...string): Sets the order in which the Precommit(...


[uncategorized] ~249-~249: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...pareCheckStaters(moduleNames ...string): Sets the order in which the PrepareChe...


[uncategorized] ~250-~250: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tOrderMigrations(moduleNames ...string)`: Sets the order of migrations to be run....


[typographical] ~250-~250: It seems that a comma is missing. (IF_NOT_COMMA)
Context: ...e order of migrations to be run. If not set then migrations will be run with an ord...


[uncategorized] ~251-~251: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terInvariants(ir sdk.InvariantRegistry)`: Registers the [invariants](./07-invaria...


[uncategorized] ~251-~251: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ...the invariants of module implementing the HasInvariants interf...


[uncategorized] ~252-~252: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * RegisterServices(cfg Configurator): Registers the services of modules imple...


[uncategorized] ~253-~253: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...genesisData map[string]json.RawMessage): Calls the [InitGenesis`](./08-genesis....


[style] ~253-~253: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... of each module when the application is first started, in the order defined in `OrderInitGene...


[uncategorized] ~254-~254: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * ExportGenesis(ctx context.Context): Calls the [ExportGenesis](./08-genesi...


[uncategorized] ~255-~255: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...text.Context, modulesToExport []string): Behaves the same as ExportGenesis`, ex...


[uncategorized] ~256-~256: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... BeginBlock(ctx context.Context) error: At the beginning of each block, this fu...


[grammar] ~256-~256: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasBeginBlo...


[grammar] ~256-~256: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...dvanced/08-events.md) emitted from each modules. * `EndBlock(ctx context.Context) error...


[uncategorized] ~257-~257: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * EndBlock(ctx context.Context) error: At the end of each block, this function...


[grammar] ~257-~257: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasEndBlock...


[uncategorized] ~258-~258: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: At the end of each block, this function...


[grammar] ~258-~258: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `module.HasABCIEndBloc...


[uncategorized] ~259-~259: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...any). * Precommit(ctx context.Context): During [Commit](../../learn/advanced/...


[grammar] ~259-~259: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: ... turn calls the Precommit function of each modules implementing the HasPrecommit interfa...


[uncategorized] ~260-~260: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...PrepareCheckState(ctx context.Context): During [Commit](../../learn/advanced/...


[style] ~261-~261: ‘early on in the’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_EARLY_ON_IN_THE)
Context: ...module. This function is usually called early on in the [application's construction](../../lear...


[uncategorized] ~262-~262: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...(registry codectypes.InterfaceRegistry)`: Registers interface types and implement...


[uncategorized] ~264-~264: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * DefaultGenesis(cdc codec.JSONCodec): Provides default genesis information fo...


[grammar] ~264-~264: Possible subject-verb agreement error. (NNS_THAT_AGREEMENT)
Context: ... module. It only calls the modules that implements the HasGenesisBasics interfaces. * `V...


[uncategorized] ~265-~265: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ig, genesis map[string]json.RawMessage)`: Validates the genesis information modul...

Markdownlint
docs/build/building-modules/12-errors.md

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/02-messages-and-queries.md

42-42: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


54-54: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


58-58: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


62-62: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


68-68: Column: 1 (MD010, no-hard-tabs)
Hard tabs


70-70: Column: 1 (MD010, no-hard-tabs)
Hard tabs


71-71: Column: 1 (MD010, no-hard-tabs)
Hard tabs


73-73: Column: 1 (MD010, no-hard-tabs)
Hard tabs


74-74: Column: 1 (MD010, no-hard-tabs)
Hard tabs


27-27: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


93-93: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


112-112: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/build/building-modules/03-msg-services.md

38-38: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


40-40: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


44-44: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


57-57: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


80-80: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


93-93: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


63-63: Column: 1 (MD010, no-hard-tabs)
Hard tabs


64-64: Column: 1 (MD010, no-hard-tabs)
Hard tabs


65-65: Column: 1 (MD010, no-hard-tabs)
Hard tabs


66-66: Column: 1 (MD010, no-hard-tabs)
Hard tabs


67-67: Column: 1 (MD010, no-hard-tabs)
Hard tabs


90-90: Column: 1 (MD010, no-hard-tabs)
Hard tabs


97-97: Column: 1 (MD010, no-hard-tabs)
Hard tabs


98-98: Column: 1 (MD010, no-hard-tabs)
Hard tabs


99-99: Column: 1 (MD010, no-hard-tabs)
Hard tabs


100-100: Column: 1 (MD010, no-hard-tabs)
Hard tabs


101-101: Column: 1 (MD010, no-hard-tabs)
Hard tabs

docs/build/building-modules/01-module-manager.md

130-130: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


221-221: Column: 1 (MD010, no-hard-tabs)
Hard tabs


75-75: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


210-210: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


213-213: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

Additional comments not posted (5)
docs/build/building-modules/17-preblock.md (1)

21-24: Clarify the role of the PreBlocker method in modifying consensus parameters.

Verification successful

To verify the role of the PreBlocker method in modifying consensus parameters, we need to gather more detailed information from the relevant documentation files. Specifically, we need to extract the sections that describe PreBlocker and its impact on consensus parameters.


The documentation clearly outlines the role of the PreBlocker method in modifying consensus parameters. The PreBlocker method is an optional lifecycle method that runs before the BeginBlocker of all modules. It can modify consensus parameters in storage and signal the caller through the return value. Additionally, modules are required to get the consensus parameters from the consensus module, as the sdk.Context is deprecated and considered unsafe.

The provided documentation snippets already clarify the role and impact of the PreBlocker method. Therefore, no further clarification is needed.

  • docs/build/building-modules/17-preblock.md: Describes the PreBlocker method and its ability to modify consensus parameters.
  • docs/build/building-modules/01-module-manager.md: Details the HasPreBlocker interface for modules with a PreBlock method.
  • UPGRADING.md: Explains the addition of the SetPreBlocker method to BaseApp and its importance in modifying consensus parameters.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the implementation and impact of the PreBlocker method on consensus parameters.

# Test: Search for the usage of PreBlocker in the codebase. Expect: Clear implementation details and impact analysis.
rg --type md "PreBlocker"

Length of output: 5457



Script:

#!/bin/bash
# Extract sections describing PreBlocker from relevant documentation files

# Extract from docs/build/building-modules/17-preblock.md
echo "==> docs/build/building-modules/17-preblock.md"
sed -n '/# PreBlocker/,/#/p' docs/build/building-modules/17-preblock.md

# Extract from docs/build/building-modules/01-module-manager.md
echo "==> docs/build/building-modules/01-module-manager.md"
sed -n '/### `HasPreBlocker`/,/###/p' docs/build/building-modules/01-module-manager.md

# Extract from UPGRADING.md
echo "==> UPGRADING.md"
sed -n '/#### Set PreBlocker/,/####/p' UPGRADING.md

Length of output: 2502

Tools
LanguageTool

[style] ~24-~24: This wording can make your sentence hard to follow. Try rephrasing for improved clarity. (DUE_TO_BECAUSE)
Context: ... as unsafe. sdk.Context is deprecated due to it being a global state within the entire state ...

docs/build/building-modules/02-messages-and-queries.md (2)

28-28: Ensure the documentation accurately reflects the updated interface usage.

This update correctly reflects the transition to using the transaction.Msg interface.


42-42: Correct article usage for better grammatical accuracy.

- `transaction.Msg` is an alias of `proto.Message`.
+ `transaction.Msg` is an alias of `proto.Message`.

Likely invalid or redundant comment.

Tools
Markdownlint

42-42: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

docs/build/building-modules/03-msg-services.md (1)

84-84: Correct the spelling to use a hyphen in "two-way".

- There are two ways to emit events, typed events using protobuf or arbitrary key & values.
+ There are two-way to emit events, typed events using protobuf or arbitrary key & values.

Likely invalid or redundant comment.

docs/build/building-modules/01-module-manager.md (1)

202-202: The interface HasABCIEndBlock has been renamed to HasUpdateValidators to better reflect its functionality.

Ensure that all references to the old interface name are updated throughout the codebase.


```go reference
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.go#L66-L72
https://github.com/cosmos/cosmos-sdk/blob/28fa3b8dfcb3208d3b1cfbae08eda519e4cc1560/core/appmodule/v2/module.go#L40-L48
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 verb form for grammatical accuracy.

- If a module need to return validator set updates (staking), they can use `HasABCIEndBlock`
+ If a module needs to return validator set updates (staking), they can use `HasABCIEndBlock`

Committable suggestion was skipped due to low confidence.

The new ctx must be passed to all the other lifecycle methods.

<!-- TODO: leaving this here to update docs with core api changes -->
Modules are required to get the consensus params from the consensus module. Consensus params located in `sdk.Context` were depreacted and should be treated as unsafe. `sdk.Context` is deprecated due to it being a global state within the entire state machine, it has been replaced with `appmodule.Environment`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider rephrasing for clarity.

- Modules are required to get the consensus params from the consensus module. Consensus params located in `sdk.Context` were depreacted and should be treated as unsafe. `sdk.Context` is deprecated due to it being a global state within the entire state machine, it has been replaced with `appmodule.Environment`.
+ Modules must retrieve consensus parameters from the consensus module. Using consensus parameters from `sdk.Context` is deprecated and unsafe due to its global state nature in the state machine. It has been replaced by `appmodule.Environment`.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Modules are required to get the consensus params from the consensus module. Consensus params located in `sdk.Context` were depreacted and should be treated as unsafe. `sdk.Context` is deprecated due to it being a global state within the entire state machine, it has been replaced with `appmodule.Environment`.
Modules must retrieve consensus parameters from the consensus module. Using consensus parameters from `sdk.Context` is deprecated and unsafe due to its global state nature in the state machine. It has been replaced by `appmodule.Environment`.
Tools
LanguageTool

[style] ~24-~24: This wording can make your sentence hard to follow. Try rephrasing for improved clarity. (DUE_TO_BECAUSE)
Context: ... as unsafe. sdk.Context is deprecated due to it being a global state within the entire state ...

Comment on lines +13 to +14
common or general errors which can be further wrapped to provide additional specific execution context.

Copy link
Contributor

Choose a reason for hiding this comment

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

Provide examples of common errors to enhance understanding.

Would you like me to draft some examples of common errors that could be defined at the module level?

## Wrapping

The custom module errors can be returned as their concrete type as they already fulfill the `error`
interface. However, module errors can be wrapped to provide further context and meaning to failed
execution.
interface. However, module errors can be wrapped to provide further context and meaning to failed execution.
Copy link
Contributor

Choose a reason for hiding this comment

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

Clarify the use of error wrapping to provide additional context.

Would you like me to provide a code example that illustrates how to wrap module errors to add more context?

Comment on lines +15 to +19
There are two ways to return errors. You can register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.

:::Warning
If errors are registered they are part of consensus and cannot be changed in a minor release
:::
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure clarity and conciseness in the documentation of error handling.

- There are two ways to return errors. You can register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.
+ There are two ways to return errors: registering custom errors with a codespace to provide detailed information to clients, and using standard Go errors. The Cosmos SDK employs both methods.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
There are two ways to return errors. You can register custom errors with a codespace that is meant to provide more information to clients and normal go errors. The Cosmos SDK uses a mixture of both.
:::Warning
If errors are registered they are part of consensus and cannot be changed in a minor release
:::
There are two ways to return errors: registering custom errors with a codespace to provide detailed information to clients, and using standard Go errors. The Cosmos SDK employs both methods.
:::Warning
If errors are registered they are part of consensus and cannot be changed in a minor release
:::
Tools
LanguageTool

[style] ~15-~15: Consider using a more formal alternative. (MORE_INFO)
Context: ...th a codespace that is meant to provide more information to clients and normal go errors. The Co...

Markdownlint

15-15: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces

@@ -21,25 +21,33 @@ Each module should define a Protobuf `Msg` service, which will be responsible fo

As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.

Protobuf generates a `MsgServer` interface based on a definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `sdk.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `sdk.Msg`s:
Protobuf generates a `MsgServer` interface based on the definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `transaction.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `transaction.Msg`s:
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct grammatical issues in the documentation.

- Protobuf generates a `MsgServer` interface based on the definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `transaction.Msg`.
+ Protobuf generates a `MsgServer` interface based on the definition of a `Msg` service. It is the role of the module developer to implement this interface by implementing the state transition logic that occurs upon receipt of each `transaction.Msg`.
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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Protobuf generates a `MsgServer` interface based on the definition of `Msg` service. It is the role of the module developer to implement this interface, by implementing the state transition logic that should happen upon receival of each `transaction.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `transaction.Msg`s:
Protobuf generates a `MsgServer` interface based on the definition of a `Msg` service. It is the role of the module developer to implement this interface by implementing the state transition logic that occurs upon receipt of each `transaction.Msg`. As an example, here is the generated `MsgServer` interface for `x/bank`, which exposes two `transaction.Msg`s:
Tools
LanguageTool

[uncategorized] ~24-~24: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...terface for x/bank, which exposes two transaction.Msgs: ```go reference https://github....

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: 0

Outside diff range and nitpick comments (9)
docs/build/building-modules/01-module-manager.md (9)

Line range hint 8-8: Consider revising the phrase "in order to" to make the sentence more concise.

- Cosmos SDK modules need to implement the [`AppModule` interfaces](#application-module-interfaces), in order to be managed by the application's [module manager].
+ Cosmos SDK modules need to implement the [`AppModule` interfaces](#application-module-interfaces) to be managed by the application's [module manager].
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 8-8: Revise the phrase "a variety of" for clarity.

- and allows application developers to set the order of execution of a variety of functions like [`PreBlocker`](https://docs.cosmos.network/main/learn/beginner/app-anatomy) and [`BeginBlocker` and `EndBlocker`](https://docs.cosmos.network/main/learn/beginner/app-anatomy).
+ and allows application developers to set the order of execution of several functions like [`PreBlocker`](https://docs.cosmos.network/main/learn/beginner/app-anatomy) and [`BeginBlocker` and `EndBlocker`](https://docs.cosmos.network/main/learn/beginner/app-anatomy).
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 24-24: Insert a comma after "For legacy reason" for grammatical accuracy.

- For legacy reason modules can still implement interfaces from the SDK `module` package.
+ For legacy reason, modules can still implement interfaces from the SDK `module` package.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 242-242: The phrase "first started" is redundant. Consider simplifying.

- Sets the order in which the [`InitGenesis`](./08-genesis.md#initgenesis) function of each module will be called when the application is first started.
+ Sets the order in which the [`InitGenesis`](./08-genesis.md#initgenesis) function of each module will be called when the application starts.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 253-253: The phrase "first started" is redundant. Consider simplifying.

- Calls the [`InitGenesis`](./08-genesis.md#initgenesis) function of each module when the application is first started, in the order defined in `OrderInitGenesis`.
+ Calls the [`InitGenesis`](./08-genesis.md#initgenesis) function of each module when the application starts, in the order defined in `OrderInitGenesis`.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 256-256: Use singular nouns after "each" for grammatical accuracy.

- At the beginning of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#beginblock) and, in turn, calls the [`BeginBlock`](./06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasBeginBlocker` interface, in the order defined in `OrderBeginBlockers`.
+ At the beginning of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#beginblock) and, in turn, calls the [`BeginBlock`](./06-beginblock-endblock.md) function of each module implementing the `appmodule.HasBeginBlocker` interface, in the order defined in `OrderBeginBlockers`.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 257-257: Use singular nouns after "each" for grammatical accuracy.

- At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasEndBlocker` interface, in the order defined in `OrderEndBlockers`.
+ At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each module implementing the `appmodule.HasEndBlocker` interface, in the order defined in `OrderEndBlockers`.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 258-258: Use singular nouns after "each" for grammatical accuracy.

- At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each modules implementing the `module.HasABCIEndBlock` interface, in the order defined in `OrderEndBlockers`.
+ At the end of each block, this function is called from [`BaseApp`](../../learn/advanced/00-baseapp.md#endblock) and, in turn, calls the [`EndBlock`](./06-beginblock-endblock.md) function of each module implementing the `module.HasABCIEndBlock` interface, in the order defined in `OrderEndBlockers`.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


Line range hint 259-259: Use singular nouns after "each" for grammatical accuracy.

- During [`Commit`](../../learn/advanced/00-baseapp.md#commit), this function is called from `BaseApp` immediately before the [`deliverState`](../../learn/advanced/00-baseapp.md#state-updates) is written to the underlying [`rootMultiStore`](../../learn/advanced/04-store.md#commitmultistore) and, in turn calls the `Precommit` function of each modules implementing the `HasPrecommit` interface, in the order defined in `OrderPrecommiters`.
+ During [`Commit`](../../learn/advanced/00-baseapp.md#commit), this function is called from `BaseApp` immediately before the [`deliverState`](../../learn/advanced/00-baseapp.md#state-updates) is written to the underlying [`rootMultiStore`](../../learn/advanced/04-store.md#commitmultistore) and, in turn calls the `Precommit` function of each module implementing the `HasPrecommit` interface, in the order defined in `OrderPrecommiters`.
Tools
LanguageTool

[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 39ace10 and b5bd7a7.

Files selected for processing (1)
  • docs/build/building-modules/01-module-manager.md (8 hunks)
Additional context used
Path-based instructions (1)
docs/build/building-modules/01-module-manager.md (1)

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

LanguageTool
docs/build/building-modules/01-module-manager.md

[style] ~8-~8: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...faces](#application-module-interfaces), in order to be managed by the application's [module...


[style] ~8-~8: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it. (A_VARIETY_OF)
Context: ...lopers to set the order of execution of a variety of functions like [PreBlocker](https://d...


[uncategorized] ~24-~24: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...s less dependent on the SDK. For legacy reason modules can still implement interfaces ...


[uncategorized] ~39-~39: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasPreBlocker`](#haspreblocker): The extension interface that contains i...


[uncategorized] ~40-~40: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains i...


[uncategorized] ~41-~41: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ppmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains i...


[uncategorized] ~43-~43: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule.HasABCIEndBlock`](#hasabciendblock): The extension interface that contains i...


[uncategorized] ~57-~57: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terLegacyAminoCodec(*codec.LegacyAmino): Registers the amino` codec for the mod...


[style] ~57-~57: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... and unmarshal structs to/from []byte in order to persist them in the module's KVStore....


[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nterfaces(codectypes.InterfaceRegistry)`: Registers a module's interface types an...


[uncategorized] ~73-~73: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...utes(client.Context, *runtime.ServeMux)`: Registers gRPC routes for the module. ...


[uncategorized] ~98-~98: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ds: * DefaultGenesis(codec.JSONCodec): Returns a default [GenesisState](./08...


[uncategorized] ~99-~99: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ient.TxEncodingConfig, json.RawMessage): Used to validate the GenesisState` def...


[uncategorized] ~146-~146: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...gisterInvariants(sdk.InvariantRegistry): Registers the [invariants`](./07-invar...


[uncategorized] ~164-~164: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ``` * RegisterServices(Configurator): Allows a module to register services. ...


[uncategorized] ~174-~174: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...6-L12 ``` * ConsensusVersion() uint64: Returns the consensus version of the mo...


[uncategorized] ~188-~188: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... *BeginBlock(context.Context) error`: This method gives module developers the...


[uncategorized] ~198-~198: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...``` * EndBlock(context.Context) error: This method gives module developers the...


[uncategorized] ~208-~208: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: This method gives module developers the...


[uncategorized] ~241-~241: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...s: * NewManager(modules ...AppModule): Constructor function. It takes a list o...


[uncategorized] ~242-~242: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderInitGenesis(moduleNames ...string): Sets the order in which the [InitGenes...


[style] ~242-~242: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... will be called when the application is first started. This function is generally called from...


[uncategorized] ~244-~244: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derExportGenesis(moduleNames ...string): Sets the order in which the [ExportGen...


[uncategorized] ~245-~245: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderPreBlockers(moduleNames ...string): Sets the order in which the PreBlock()...


[uncategorized] ~246-~246: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...derBeginBlockers(moduleNames ...string): Sets the order in which the BeginBlock...


[uncategorized] ~247-~247: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...OrderEndBlockers(moduleNames ...string): Sets the order in which the EndBlock()...


[uncategorized] ~248-~248: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...rderPrecommiters(moduleNames ...string): Sets the order in which the Precommit(...


[uncategorized] ~249-~249: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...pareCheckStaters(moduleNames ...string): Sets the order in which the PrepareChe...


[uncategorized] ~250-~250: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tOrderMigrations(moduleNames ...string)`: Sets the order of migrations to be run....


[typographical] ~250-~250: It seems that a comma is missing. (IF_NOT_COMMA)
Context: ...e order of migrations to be run. If not set then migrations will be run with an ord...


[uncategorized] ~251-~251: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...terInvariants(ir sdk.InvariantRegistry)`: Registers the [invariants](./07-invaria...


[uncategorized] ~251-~251: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ...the invariants of module implementing the HasInvariants interf...


[uncategorized] ~252-~252: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * RegisterServices(cfg Configurator): Registers the services of modules imple...


[uncategorized] ~253-~253: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...genesisData map[string]json.RawMessage): Calls the [InitGenesis`](./08-genesis....


[style] ~253-~253: This phrase is redundant. Consider writing “started”. (FIRST_BEGAN)
Context: ... of each module when the application is first started, in the order defined in `OrderInitGene...


[uncategorized] ~254-~254: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... * ExportGenesis(ctx context.Context): Calls the [ExportGenesis](./08-genesi...


[uncategorized] ~255-~255: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...text.Context, modulesToExport []string): Behaves the same as ExportGenesis`, ex...


[uncategorized] ~256-~256: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... BeginBlock(ctx context.Context) error: At the beginning of each block, this fu...


[grammar] ~256-~256: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasBeginBlo...


[grammar] ~256-~256: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...dvanced/08-events.md) emitted from each modules. * `EndBlock(ctx context.Context) error...


[uncategorized] ~257-~257: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * EndBlock(ctx context.Context) error: At the end of each block, this function...


[grammar] ~257-~257: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `appmodule.HasEndBlock...


[uncategorized] ~258-~258: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ontext) ([]abci.ValidatorUpdate, error)`: At the end of each block, this function...


[grammar] ~258-~258: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: .../06-beginblock-endblock.md) function of each modules implementing the `module.HasABCIEndBloc...


[uncategorized] ~259-~259: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...any). * Precommit(ctx context.Context): During [Commit](../../learn/advanced/...


[grammar] ~259-~259: Use a singular noun after the quantifier ‘each’, or change it to “all”. (EACH_EVERY_NNS)
Context: ... turn calls the Precommit function of each modules implementing the HasPrecommit interfa...


[uncategorized] ~260-~260: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...PrepareCheckState(ctx context.Context): During [Commit](../../learn/advanced/...


[style] ~261-~261: ‘early on in the’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_EARLY_ON_IN_THE)
Context: ...module. This function is usually called early on in the [application's construction](../../lear...


[uncategorized] ~262-~262: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...(registry codectypes.InterfaceRegistry)`: Registers interface types and implement...


[uncategorized] ~264-~264: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... * DefaultGenesis(cdc codec.JSONCodec): Provides default genesis information fo...


[grammar] ~264-~264: Possible subject-verb agreement error. (NNS_THAT_AGREEMENT)
Context: ... module. It only calls the modules that implements the HasGenesisBasics interfaces. * `V...


[uncategorized] ~265-~265: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ig, genesis map[string]json.RawMessage)`: Validates the genesis information modul...

Markdownlint
docs/build/building-modules/01-module-manager.md

130-130: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


216-216: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


221-221: Column: 1 (MD010, no-hard-tabs)
Hard tabs


75-75: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


210-210: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines


213-213: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

@testinginprod testinginprod self-requested a review June 24, 2024 08:58
Copy link
Contributor

@testinginprod testinginprod left a comment

Choose a reason for hiding this comment

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

lgtm

@tac0turtle tac0turtle added this pull request to the merge queue Jun 24, 2024
Merged via the queue into main with commit 6f22111 Jun 24, 2024
62 of 63 checks passed
@tac0turtle tac0turtle deleted the marko/17207 branch June 24, 2024 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Docs]: core api adoption
4 participants