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

refactor(x/auth): Fix system test #20531

Merged
merged 40 commits into from
Jun 12, 2024
Merged

refactor(x/auth): Fix system test #20531

merged 40 commits into from
Jun 12, 2024

Conversation

sontrinh16
Copy link
Member

@sontrinh16 sontrinh16 commented Jun 3, 2024

Description

  • 20405 failed the test-system at the migration process and sim test . Because the auth migration run last by default which make the sync account number process run last which make other migration that invoke auth SetAccount func broke because of conflict in unique index.
  • This PR is gonna move the accounts acc num value setting in the upgrade handler before run migration, edit accounts module init genesis logic to set account number increamently with the accounts list in genesis state. This to prevent setting the account number back to default value ( which is 0 ) which makes the logic we just did in upgrade handler pointless.

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

  • New Features

    • Introduced global account number tracking in the accounts module, replacing legacy account number handling.
    • Added methods for migrating and removing legacy account numbers to facilitate upgrades.
  • Bug Fixes

    • Fixed synchronization issues between accounts and authentication modules during upgrades.
  • Documentation

    • Updated UPGRADING.md with new account number migration guidelines and module separation details.
    • Updated CHANGELOG.md to reflect deprecation of NextAccountNumber in the auth keeper.
  • Tests

    • Added new test to verify account number synchronization between modules.

@sontrinh16 sontrinh16 requested a review from a team as a code owner June 3, 2024 17:07
Copy link
Contributor

coderabbitai bot commented Jun 3, 2024

Walkthrough

Walkthrough

The changes primarily focus on improving account number handling in the Cosmos SDK. Enhancements include adding a new accountNumber field to the AccountKeeper struct, updating migration processes, and synchronizing account numbers across modules. The x/auth module has been separated into its own go.mod. Additionally, import statements have been updated, and a new test ensures account number synchronization.

Changes

File Path Change Summary
x/auth/keeper/keeper.go Added accountNumber field to AccountKeeper, initialized it, and added methods for migration.
x/accounts/genesis.go Modified ImportState to increment account number before importing accounts.
x/auth/keeper/migrations.go Refactored Migrator to remove accNum field, updated methods to use m.keeper.AccountNumber.
x/auth/module.go Reverted ConsensusVersion from 6 to 5, removed migration from version 5 to 6.
simapp/upgrades.go Added logic to sync accounts and auth module account number before running migrations.
tests/systemtests/upgrade_test.go Removed linux condition from build constraint in upgrade_test.go.
UPGRADING.md Updated to reflect changes in account number handling and import requirements for x/auth.
simapp/upgrades_test.go Introduced TestSyncAccountNumber to verify synchronization of account numbers.
CHANGELOG.md Deprecated auth keeper method NextAccountNumber, now use keeper.AccountsModKeeper.NextAccountNumber.
crypto/codec/amino.go Added import statement for cosmossdk.io/core/legacy.
crypto/codec/cmt.go Added import statement for cosmossdk.io/errors.
x/genutil/client/cli/init.go Modified import statements, including additions and rearrangements.

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.

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

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 2a5ff38 and 9c3170a.

Files selected for processing (2)
  • x/auth/keeper/keeper.go (2 hunks)
  • x/auth/keeper/migrations.go (3 hunks)
Files not reviewed due to errors (1)
  • x/auth/keeper/keeper.go (no review received)
Additional context used
Path-based instructions (2)
x/auth/keeper/migrations.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

x/auth/keeper/keeper.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

Additional comments not posted (4)
x/auth/keeper/migrations.go (4)

Line range hint 9-12: The simplification of the Migrator struct by removing the accNum field aligns well with the new design where AccountNumber is accessed directly from keeper. This change should improve the clarity and maintainability of the code.


19-19: The update to NewMigrator to reflect the removal of accNum is correct and maintains consistency with the struct definition.


45-45: The update in Migrate4To5 to use m.keeper.AccountNumber is a direct consequence of the structural changes in the Migrator. Ensure that AccountNumber is correctly managed within keeper to avoid any potential issues.

Verification successful

The update in Migrate4To5 to use m.keeper.AccountNumber is a direct consequence of the structural changes in the Migrator. The AccountNumber is properly initialized as a collections.Sequence and is used in the NextAccountNumber method, indicating it is correctly managed within keeper.

  • AccountNumber is initialized in keeper.go as a collections.Sequence.
  • It is used in the NextAccountNumber method.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify that `AccountNumber` is properly initialized and managed within `keeper`.

# Test: Search for the initialization and usage of `AccountNumber` in `keeper`.
rg --type go $'AccountNumber' x/auth/keeper/keeper.go

Length of output: 624


Line range hint 51-56: The update in Migrate5To6 to use m.keeper.AccountNumber.Peek(ctx) is appropriate and aligns with the new structure. Verify that Peek method behaves as expected in the context of migrations.

Verification successful

The Peek method is implemented in collections/sequence.go and is used in various parts of the codebase, including x/auth/keeper/migrations.go. This confirms that the method is indeed part of the codebase and is used in the context of migrations.

  • collections/sequence.go:func (s Sequence) Peek(ctx context.Context) (uint64, error) {

This indicates that the Peek method is defined for the Sequence type and returns a uint64 value along with an error, which aligns with its usage in the migration code.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the behavior of `AccountNumber.Peek` method during migrations.

# Test: Search for the implementation and usage of `Peek` method.
rg --type go $'Peek' x/auth/keeper/keeper.go

Length of output: 43



Script:

#!/bin/bash
# Description: Search for the implementation and usage of `Peek` method in the entire codebase.

# Test: Search for the implementation of `Peek` method.
rg --type go 'func Peek' 

# Test: Search for the usage of `Peek` method.
rg --type go 'Peek('

Length of output: 110



Script:

#!/bin/bash
# Description: Search for the implementation and usage of `Peek` method in the entire codebase.

# Test: Search for the implementation of `Peek` method.
rg --type go 'func Peek'

# Test: Search for the usage of `Peek` method.
rg --type go 'Peek\('

Length of output: 1176

@sontrinh16 sontrinh16 marked this pull request as draft June 3, 2024 17:23
@sontrinh16
Copy link
Member Author

hmmmm strange, local passed :(

@tac0turtle
Copy link
Member

are you using go.work locally?

@sontrinh16
Copy link
Member Author

sontrinh16 commented Jun 4, 2024

are you using go.work locally?

nope i found the problem, auth migration run last, so other module that do migration that use auth acc num ( example: distribution ) before the auth and accounts acc num sync which broke the index

@sontrinh16
Copy link
Member Author

move the sync process back to upgrade handler before we run migration but stumble to new problems, since run migration run accounts init genesis which undo the sync process we just did

@sontrinh16 sontrinh16 changed the title Bug(x/auth): Fix system test Refactor (x/auth): Fix system test Jun 4, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Outside diff range and nitpick comments (10)
UPGRADING.md (10)

Line range hint 171-171: Consider revising the verb form for clarity

The use of "depending" in this context might be improved for clarity. Consider revising the sentence to use the base form of the verb for a clearer expression of the ongoing state.

Suggested change:
"Asked if go.work was being used locally, which could explain why tests passed there but failed in the CI environment."

Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 181-181: Adjust verb form for standard usage

The phrase "strongly recommend to use" is grammatically awkward. It's more standard to use "recommend using."

Suggested change:
"...we strongly recommend using the cosmossdk.io/core/appmodule interfaces..."

Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 395-395: Typographical correction needed

The word "by" seems to be used incorrectly in this context. It should be "be."

- will gracefully by handled by `BaseApp`
+ will gracefully be handled by `BaseApp`
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 413-413: Clarify the sentence structure for better readability

The phrase "allows to modify" is missing a direct object, making the sentence unclear. Consider rephrasing for clarity.

Suggested change:
"...and allows modifications to consensus parameters..."

Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 482-482: Grammatical correction: Article usage

The phrase "a unsupported database" uses an incorrect article. It should be "an" before a word starting with a vowel sound.

- To migrate from a unsupported database to a supported database please use a database migration tool.
+ To migrate from an unsupported database to a supported database, please use a database migration tool.
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 630-630: Clarify the function of the module

The phrase "allows it be a standalone module" is missing the preposition "to," which is necessary for grammatical correctness.

Suggested change:
"...which allows it to be a standalone module."

Also applies to: 823-823

Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 786-786: Correct article usage

The phrase "a application" uses an incorrect article. It should be "an" before a word starting with a vowel sound.

- has migrated from a CometBFT genesis to a application managed genesis file.
+ has migrated from a CometBFT genesis to an application managed genesis file.
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 806-806: Adjust for correct comparative form

The phrase "an higher voting threshold" uses an incorrect article. It should be "a" before a consonant sound.

- An expedited proposal must have an higher voting threshold than a classic proposal
+ An expedited proposal must have a higher voting threshold than a classic proposal
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 851-851: Correct possessive form

The contraction "it's" is incorrectly used for the possessive form. It should be "its."

- Rosetta has moved to it's own [repo](https://github.com/cosmos/rosetta)
+ Rosetta has moved to its own [repo](https://github.com/cosmos/rosetta)
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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


Line range hint 940-940: Correct modal verb usage

The phrase "must pinned" is grammatically incorrect. The modal verb "must" requires the base form of the verb.

- The `GoLevelDB` version must pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef7`
+ The `GoLevelDB` version must be pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef7`
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...

Markdownlint

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


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

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 7388cbd and 5f9818b.

Files selected for processing (3)
  • UPGRADING.md (1 hunks)
  • simapp/upgrades.go (2 hunks)
  • simapp/upgrades_test.go (1 hunks)
Additional context used
Path-based instructions (3)
simapp/upgrades_test.go (2)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.


Pattern **/*_test.go: "Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request"

simapp/upgrades.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

UPGRADING.md (1)

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

LanguageTool
UPGRADING.md

[typographical] ~10-~10: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: .... ## [Unreleased] ### SimApp In this section we describe the changes made in Cosmos ...


[grammar] ~171-~171: The verb ‘depend’ can be stative. If ‘depending’ describes a state, change the sentence structure and use the base form of the verb. (PROGRESSIVE_VERBS)
Context: ...ild/docs/bsr/generated-sdks/go). If you were depending on cosmossdk.io/api/tendermint, pleas...


[grammar] ~181-~181: The verb ‘recommend’ is used with the gerund form. (ADMIT_ENJOY_VB)
Context: ...precation of sdk.Context, we strongly recommend to use the cosmossdk.io/core/appmodule inter...


[uncategorized] ~225-~225: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... (sdk.Msg, error) ``` ##### Depinject Previously cosmossdk.io/core held functions `Inv...


[style] ~231-~231: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...ved. It is required to migrate to v0.50 prior to upgrading to v0.51 for not missing any ...


[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...


[uncategorized] ~280-~280: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ... cosmossdk.io/x/authz #### x/bank Bank was spun out into its own go.mod. To ...


[uncategorized] ~316-~316: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ...ams` A standalone Go module was created and it is accessible at "cosmossdk.io/x/par...


[typographical] ~384-~384: It appears that a comma is missing. (BY_FOR_IN_COMMA)
Context: ...genesis.json` file. For existing chains this can be done in two ways: * During an u...


[typographical] ~386-~386: Consider adding a comma after this introductory phrase. (AS_A_NN_COMMA)
Context: ...s can be done in two ways: * During an upgrade the value is set in an upgrade handler....


[uncategorized] ~393-~393: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...here a catastrophic failure has occurred and the application should halt. However, t...


[misspelling] ~395-~395: Did you maybe mean “buy” or “be”? (BY_BUY)
Context: ... that returns an error, will gracefully by handled by BaseApp on behalf of the a...


[style] ~400-~400: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lizeBlock` is public and should be used in order to test and run operations. This means tha...


[grammar] ~413-~413: Did you mean “modifying”? Or maybe you should add a pronoun? In active voice, ‘allow’ + ‘to’ takes an object, usually a pronoun. (ALLOW_TO)
Context: ...begin blocker other modules, and allows to modify consensus parameters, and the changes a...


[uncategorized] ~451-~451: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...he case of successful msg(s) execution. Instead a new attribute is added to all message...


[grammar] ~478-~478: The word “clean-up” is a noun. The verb is spelled with a white space. (NOUN_VERB_CONFUSION)
Context: ...s well as its settings. Use confix to clean-up your app.toml. A nginx (or alike) rev...


[misspelling] ~482-~482: 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: ... not supported anymore. To migrate from a unsupported database to a supported dat...


[typographical] ~482-~482: Consider adding a comma here. (PLEASE_COMMA)
Context: ...pported database to a supported database please use a database migration tool. ### Pro...


[typographical] ~499-~499: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...tate-machine code. ### SimApp In this section we describe the changes made in Cosmos ...


[uncategorized] ~563-~563: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...on. The global variable has been removed and the basic module manager can be now cre...


[uncategorized] ~599-~599: A comma may be missing after the conjunctive/linking adverb ‘Additionally’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... not to be included in the binary. ::: Additionally AutoCLI automatically adds the custom...


[uncategorized] ~630-~630: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... is extracted to have a separate go.mod file which allows it be a standalone module....


[grammar] ~630-~630: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. All the store impo...


[misspelling] ~651-~651: This word is normally spelled with a hyphen. (EN_COMPOUNDS_HUMAN_READABLE)
Context: ...available in the SDK that produces more human readable output, currently only available on Led...


[grammar] ~695-~695: Two determiners in a row. Choose either “the” or “a”. (DT_DT)
Context: ...``` When using depinject / `app v2`, the a tx config should be recreated from the ...


[uncategorized] ~716-~716: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...onger need to implement the LegacyMsg interface and implementations of GetSignBytes c...


[grammar] ~720-~720: It looks like ‘interfaces’ doesn’t match ‘an’. Did you mean “an interface” or just “interfaces”? (A_NNS_IN)
Context: ...d of sdk.Context. Any module that has an interfaces for them (like "expected keepers") will...


[uncategorized] ~744-~744: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...EndBlock(context.Context) error ``` In case a module requires to return `abci.Valid...


[uncategorized] ~771-~771: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ge. The signer field is required on all messages unless using a custom signer function. ...


[typographical] ~773-~773: Consider adding a comma here. (PLEASE_COMMA)
Context: ...ustom signer function. To find out more please read the [signer field](https://github....


[misspelling] ~786-~786: 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: ...has migrated from a CometBFT genesis to a application managed genesis file. The g...


[misspelling] ~806-~806: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’. (EN_A_VS_AN)
Context: ...ameter. An expedited proposal must have an higher voting threshold than a classic ...


[uncategorized] ~810-~810: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...nt to ProposalCancelDest address. The deposits burn rate will be determined by a new p...


[uncategorized] ~823-~823: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... is extracted to have a separate go.mod file which allows it be a standalone module....


[grammar] ~823-~823: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. All the evidence i...


[grammar] ~851-~851: Did you mean the possessive pronoun “its”? (IT_S_ITS)
Context: ...ing #### Rosetta Rosetta has moved to it's own [repo](https://github.com/cosmos/ro...


[uncategorized] ~852-~852: After the verb ‘interested’ the preposition “in” is used. (CONFUSION_OF_INTERESTED_ON_IN)
Context: ... by default. Any user who is interested on using the tool can connect it standalon...


[misspelling] ~853-~853: This word is normally spelled as one. (EN_COMPOUNDS_MULTI_CHAIN)
Context: ...de binary. The rosetta tool also allows multi chain connections. ## [v0.47.x](https://gith...


[typographical] ~875-~875: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (HOWEVER_SENTENCE)
Context: ...dom parameter changes during simulations, however, it does so through ParamChangeProposal ...


[grammar] ~877-~877: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...teParamsgovernance proposals for each modules,AppModuleSimulationnow defines aA...


[style] ~892-~892: Consider using “formerly” to strengthen your wording. (PREVIOUSLY_FORMERLY)
Context: ... modules no longer support the REST API previously known as the LCD, and the `sdk.Msg#Rout...


[style] ~909-~909: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...dd the following lines to your app.go in order to provide newer gRPC services: ```go aut...


[uncategorized] ~926-~926: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...riod). These were unnecessary given as arguments as they were already present in the Ap...


[uncategorized] ~930-~930: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...)was deprecated and has been removed. Instead you can use theTestEncodingConfig` fr...


[grammar] ~940-~940: The modal verb ‘must’ requires the verb’s base form. (MD_BASEFORM)
Context: ... Replaces The GoLevelDB version must pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef...


[grammar] ~951-~951: The word ‘replace’ is a verb. Did you mean the noun “replacement”? (PREPOSITION_VERB)
Context: ...goproto. This allows you to remove the replace directive replace github.com/gogo/prot...


[formatting] ~959-~959: You have used ‘I’ with an apostrophe, but either the verb is missing or you have not used the corresponding abbreviated form. Consider using one of the suggestions or removing the apostrophe. (I_APOSTROPHE_X)
Context: ...ly the root proto/ folder, set by the protoc -I flag). For example, assuming you put a...


[style] ~969-~969: Although a hyphen is possible, it is not necessary in a compound modifier in which the first word is an adverb that ends in ‘ly’. (HYPHENATED_LY_ADVERB_ADJECTIVE)
Context: ...ace` annotations. We require them to be fully-scoped names. They will soon be used by code g...


[style] ~987-~987: The word “also” tends to be overused. Consider using a formal alternative to strengthen your wording. (PLEASE_ALSO_CHECK)
Context: ...os.feegrant.v1beta1.FeeAllowanceI" ``` Please also check that in your own app's proto file...


[style] ~988-~988: Try using a more formal synonym for ‘check’. (VERIFY)
Context: ...v1beta1.FeeAllowanceI" ``` Please also check that in your own app's proto files that...


[style] ~988-~988: Although a hyphen is possible, it is not necessary in a compound modifier in which the first word is an adverb that ends in ‘ly’. (HYPHENATED_LY_ADVERB_ADJECTIVE)
Context: ...otations. If so, then replace them with fully-qualified names, even though those names don't ac...


[locale-violation] ~1028-~1028: In American English, “take a look” is more commonly used. (HAVE_A_LOOK)
Context: ...e modules keepers in previous versions. Have a look at simapp.RegisterUpgradeHandlers() f...


[misspelling] ~1046-~1046: Did you mean “At a Time”, “At the Time”, or “At times”? (AT_TIME2)
Context: ...x/gov ##### Minimum Proposal Deposit At Time of Submission The gov module has bee...


[misspelling] ~1053-~1053: Did you mean “at a time”, “at the time”, or “at times”? (AT_TIME2)
Context: ...o utilize the minimum proposal deposits at time of submission, the migration logic need...


[uncategorized] ~1058-~1058: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...dated with proposer field. For proposal state migraton developers can call `v4.AddPro...


[uncategorized] ~1085-~1085: A comma is probably missing here. (MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)
Context: ...ng Tendermint consensus parameters. For migration it is required to call a specific migra...


[style] ~1112-~1112: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...should still be imported in your app.go in order to handle this migration. Because the `x/...


[style] ~1174-~1174: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ally, new packages have been introduced in order to further split the codebase. Aliases are...


[typographical] ~1226-~1226: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...aintained until April 18, 2023. At this point the module will reach end of life and b...


[style] ~1231-~1231: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...the new implementation is called v1. In order to submit a proposal with `submit-proposal...


[style] ~1238-~1238: ‘by accident’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_BY_ACCIDENT)
Context: ...g delegations. Users that have unbonded by accident or wish to cancel a undelegation can no...


[misspelling] ~1238-~1238: 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: ... unbonded by accident or wish to cancel a undelegation can now specify the amount...


[grammar] ~1242-~1242: The auxiliary verb ‘do’ requires the base form of the verb. (DID_BASEFORM)
Context: ...v0.45.3/third_party/proto) now does not contains directly the [proto files](https://gith...


[style] ~1244-~1244: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...build/cosmos/cosmos-sdk` as dependency, in order to avoid having to copy paste these files....


[grammar] ~1244-~1244: Did you mean “copy and paste”? (COPY_PASTE)
Context: ...dependency, in order to avoid having to copy paste these files. The protos can as well be...


[duplication] ~1262-~1262: Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Context: ...a node they are required to set a codec in in the grpc.Dial. More information can be ...

Markdownlint
UPGRADING.md

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


162-162: Column: 3 (MD010, no-hard-tabs)
Hard tabs


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


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


326-326: Column: 3 (MD010, no-hard-tabs)
Hard tabs


327-327: Column: 2 (MD010, no-hard-tabs)
Hard tabs


328-328: Column: 2 (MD010, no-hard-tabs)
Hard tabs


329-329: Column: 2 (MD010, no-hard-tabs)
Hard tabs


330-330: Column: 2 (MD010, no-hard-tabs)
Hard tabs


331-331: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


420-420: Column: 2 (MD010, no-hard-tabs)
Hard tabs


423-423: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


432-432: Column: 2 (MD010, no-hard-tabs)
Hard tabs


436-436: Column: 2 (MD010, no-hard-tabs)
Hard tabs


444-444: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


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


549-549: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1093-1093: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1095-1095: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1096-1096: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1097-1097: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1098-1098: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1099-1099: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1100-1100: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


1104-1104: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1105-1105: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1106-1106: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


1194-1194: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


1197-1197: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers

Additional comments not posted (2)
simapp/upgrades_test.go (1)

14-51: Comprehensive test coverage for account number synchronization.

This test function effectively checks the synchronization process of account numbers between the auth and accounts modules. It ensures that the legacy account number is set, verified, and then properly deleted after synchronization. Additionally, it confirms that the accounts module's account number is updated correctly. Good use of assertions to validate each step of the process.

simapp/upgrades.go (1)

60-69: Validate the new syncAccountNumber logic.

The syncAccountNumber function appears to be well-implemented. It retrieves the current account number, removes the legacy account number, and initializes the account number sequence in the accounts module. This is a critical part of the upgrade process, and the function handles potential errors at each step.

Comment on lines 28 to 33
// sync accounts and auth module account number
err := app.syncAccountNumber(ctx)
if err != nil {
return nil, err
}

Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure error handling is robust in upgrade handlers.

The error handling in the upgrade handler is crucial, especially since it involves synchronization of critical data (account numbers). Consider adding more detailed error logging or recovery mechanisms here to aid in troubleshooting and ensure system stability during upgrades.

UPGRADING.md Outdated
Comment on lines 255 to 269
#### `x/accounts`

Accounts's AccountNumber will be used as a global account number tracking replacing Auth legacy AccountNumber. Must set accounts's AccountNumber with auth's AccountNumber value in upgrade handler:

```go
currentAccNum, err := app.AuthKeeper.RemoveLegacyAccountNumber(ctx)
if err != nil {
return nil, err
}

err = app.AccountsKeeper.InitAccountNumberSeqUnsafe(ctx, currentAccNum)
if err != nil {
return nil, err
}
```
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure proper error handling in account number synchronization logic

The code snippet provided for synchronizing account numbers between the auth and accounts modules lacks comprehensive error handling. Specifically, the function returns nil instead of the actual error object when an error occurs, which could lead to unhandled errors and make debugging difficult.

currentAccNum, err := app.AuthKeeper.RemoveLegacyAccountNumber(ctx)
if err != nil {
-	return nil, err
+	return err
}
err = app.AccountsKeeper.InitAccountNumberSeqUnsafe(ctx, currentAccNum)
if err != nil {
-	return nil, err
+	return err
}
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
#### `x/accounts`
Accounts's AccountNumber will be used as a global account number tracking replacing Auth legacy AccountNumber. Must set accounts's AccountNumber with auth's AccountNumber value in upgrade handler:
```go
currentAccNum, err := app.AuthKeeper.RemoveLegacyAccountNumber(ctx)
if err != nil {
return nil, err
}
err = app.AccountsKeeper.InitAccountNumberSeqUnsafe(ctx, currentAccNum)
if err != nil {
return nil, err
}
```
currentAccNum, err := app.AuthKeeper.RemoveLegacyAccountNumber(ctx)
if err != nil {
return err
}
err = app.AccountsKeeper.InitAccountNumberSeqUnsafe(ctx, currentAccNum)
if err != nil {
return err
}
Tools
Markdownlint

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


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

@@ -50,3 +56,14 @@ func (app SimApp) RegisterUpgradeHandlers() {
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}
}

func (app SimApp) syncAccountNumber(ctx context.Context) error {
Copy link
Member

Choose a reason for hiding this comment

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

godoc

Copy link
Member

Choose a reason for hiding this comment

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

how come this is in upgrade instead of auth? that should be documented as well

Copy link
Member Author

Choose a reason for hiding this comment

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

moved to auth

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 5f9818b and 053ae26.

Files selected for processing (4)
  • UPGRADING.md (1 hunks)
  • simapp/upgrades.go (1 hunks)
  • simapp/upgrades_test.go (1 hunks)
  • x/auth/keeper/keeper.go (4 hunks)
Files skipped from review as they are similar to previous changes (2)
  • simapp/upgrades.go
  • simapp/upgrades_test.go
Additional context used
Path-based instructions (2)
x/auth/keeper/keeper.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

UPGRADING.md (1)

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

LanguageTool
UPGRADING.md

[typographical] ~10-~10: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: .... ## [Unreleased] ### SimApp In this section we describe the changes made in Cosmos ...


[uncategorized] ~168-~168: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...sdk.io/api/tendermint` package has been removed as CometBFT now publishes its protos to...


[grammar] ~171-~171: The verb ‘depend’ can be stative. If ‘depending’ describes a state, change the sentence structure and use the base form of the verb. (PROGRESSIVE_VERBS)
Context: ...ild/docs/bsr/generated-sdks/go). If you were depending on cosmossdk.io/api/tendermint, pleas...


[grammar] ~181-~181: The verb ‘recommend’ is used with the gerund form. (ADMIT_ENJOY_VB)
Context: ...precation of sdk.Context, we strongly recommend to use the cosmossdk.io/core/appmodule inter...


[uncategorized] ~225-~225: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... (sdk.Msg, error) ``` ##### Depinject Previously cosmossdk.io/core held functions `Inv...


[style] ~231-~231: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...ved. It is required to migrate to v0.50 prior to upgrading to v0.51 for not missing any ...


[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~252-~252: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...functions have been removed due to this changes as the API can be smaller thanks to col...


[uncategorized] ~257-~257: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...will be used as a global account number tracking replacing Auth legacy AccountNumber. Mu...


[uncategorized] ~275-~275: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ... cosmossdk.io/x/authz #### x/bank Bank was spun out into its own go.mod. To ...


[uncategorized] ~285-~285: Possible missing article found. (AI_HYDRA_LEO_MISSING_THE)
Context: ...x/protocolpool module. #### x/group Group was spun out into its own go.mod. To ...


[uncategorized] ~311-~311: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ...ams` A standalone Go module was created and it is accessible at "cosmossdk.io/x/par...


[typographical] ~379-~379: It appears that a comma is missing. (BY_FOR_IN_COMMA)
Context: ...genesis.json` file. For existing chains this can be done in two ways: * During an u...


[typographical] ~381-~381: Consider adding a comma after this introductory phrase. (AS_A_NN_COMMA)
Context: ...s can be done in two ways: * During an upgrade the value is set in an upgrade handler....


[uncategorized] ~388-~388: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...here a catastrophic failure has occurred and the application should halt. However, t...


[misspelling] ~390-~390: Did you maybe mean “buy” or “be”? (BY_BUY)
Context: ... that returns an error, will gracefully by handled by BaseApp on behalf of the a...


[style] ~395-~395: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lizeBlock` is public and should be used in order to test and run operations. This means tha...


[grammar] ~408-~408: Did you mean “modifying”? Or maybe you should add a pronoun? In active voice, ‘allow’ + ‘to’ takes an object, usually a pronoun. (ALLOW_TO)
Context: ...begin blocker other modules, and allows to modify consensus parameters, and the changes a...


[uncategorized] ~446-~446: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...he case of successful msg(s) execution. Instead a new attribute is added to all message...


[grammar] ~473-~473: The word “clean-up” is a noun. The verb is spelled with a white space. (NOUN_VERB_CONFUSION)
Context: ...s well as its settings. Use confix to clean-up your app.toml. A nginx (or alike) rev...


[misspelling] ~477-~477: 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: ... not supported anymore. To migrate from a unsupported database to a supported dat...


[typographical] ~477-~477: Consider adding a comma here. (PLEASE_COMMA)
Context: ...pported database to a supported database please use a database migration tool. ### Pro...


[typographical] ~494-~494: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...tate-machine code. ### SimApp In this section we describe the changes made in Cosmos ...


[uncategorized] ~558-~558: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...on. The global variable has been removed and the basic module manager can be now cre...


[uncategorized] ~594-~594: A comma may be missing after the conjunctive/linking adverb ‘Additionally’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... not to be included in the binary. ::: Additionally AutoCLI automatically adds the custom...


[uncategorized] ~625-~625: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... is extracted to have a separate go.mod file which allows it be a standalone module....


[grammar] ~625-~625: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. All the store impo...


[misspelling] ~646-~646: This word is normally spelled with a hyphen. (EN_COMPOUNDS_HUMAN_READABLE)
Context: ...available in the SDK that produces more human readable output, currently only available on Led...


[grammar] ~690-~690: Two determiners in a row. Choose either “the” or “a”. (DT_DT)
Context: ...``` When using depinject / `app v2`, the a tx config should be recreated from the ...


[uncategorized] ~711-~711: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...onger need to implement the LegacyMsg interface and implementations of GetSignBytes c...


[grammar] ~715-~715: It looks like ‘interfaces’ doesn’t match ‘an’. Did you mean “an interface” or just “interfaces”? (A_NNS_IN)
Context: ...d of sdk.Context. Any module that has an interfaces for them (like "expected keepers") will...


[uncategorized] ~739-~739: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...EndBlock(context.Context) error ``` In case a module requires to return `abci.Valid...


[uncategorized] ~766-~766: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ge. The signer field is required on all messages unless using a custom signer function. ...


[typographical] ~768-~768: Consider adding a comma here. (PLEASE_COMMA)
Context: ...ustom signer function. To find out more please read the [signer field](https://github....


[misspelling] ~781-~781: 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: ...has migrated from a CometBFT genesis to a application managed genesis file. The g...


[misspelling] ~801-~801: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’. (EN_A_VS_AN)
Context: ...ameter. An expedited proposal must have an higher voting threshold than a classic ...


[uncategorized] ~805-~805: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...nt to ProposalCancelDest address. The deposits burn rate will be determined by a new p...


[grammar] ~818-~818: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. All the evidence i...


[uncategorized] ~825-~825: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... is extracted to have a separate go.mod file which allows it to be a standalone modu...


[grammar] ~846-~846: Did you mean the possessive pronoun “its”? (IT_S_ITS)
Context: ...ing #### Rosetta Rosetta has moved to it's own [repo](https://github.com/cosmos/ro...


[uncategorized] ~847-~847: After the verb ‘interested’ the preposition “in” is used. (CONFUSION_OF_INTERESTED_ON_IN)
Context: ... by default. Any user who is interested on using the tool can connect it standalon...


[misspelling] ~848-~848: This word is normally spelled as one. (EN_COMPOUNDS_MULTI_CHAIN)
Context: ...de binary. The rosetta tool also allows multi chain connections. ## [v0.47.x](https://gith...


[typographical] ~870-~870: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (HOWEVER_SENTENCE)
Context: ...dom parameter changes during simulations, however, it does so through ParamChangeProposal ...


[grammar] ~872-~872: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...teParamsgovernance proposals for each modules,AppModuleSimulationnow defines aA...


[style] ~887-~887: Consider using “formerly” to strengthen your wording. (PREVIOUSLY_FORMERLY)
Context: ... modules no longer support the REST API previously known as the LCD, and the `sdk.Msg#Rout...


[style] ~904-~904: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...dd the following lines to your app.go in order to provide newer gRPC services: ```go aut...


[uncategorized] ~921-~921: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...riod). These were unnecessary given as arguments as they were already present in the Ap...


[uncategorized] ~925-~925: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...)was deprecated and has been removed. Instead you can use theTestEncodingConfig` fr...


[grammar] ~935-~935: The modal verb ‘must’ requires the verb’s base form. (MD_BASEFORM)
Context: ... Replaces The GoLevelDB version must pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef...


[grammar] ~946-~946: The word ‘replace’ is a verb. Did you mean the noun “replacement”? (PREPOSITION_VERB)
Context: ...goproto. This allows you to remove the replace directive replace github.com/gogo/prot...


[formatting] ~954-~954: You have used ‘I’ with an apostrophe, but either the verb is missing or you have not used the corresponding abbreviated form. Consider using one of the suggestions or removing the apostrophe. (I_APOSTROPHE_X)
Context: ...ly the root proto/ folder, set by the protoc -I flag). For example, assuming you put a...


[style] ~964-~964: Although a hyphen is possible, it is not necessary in a compound modifier in which the first word is an adverb that ends in ‘ly’. (HYPHENATED_LY_ADVERB_ADJECTIVE)
Context: ...ace` annotations. We require them to be fully-scoped names. They will soon be used by code g...


[style] ~982-~982: The word “also” tends to be overused. Consider using a formal alternative to strengthen your wording. (PLEASE_ALSO_CHECK)
Context: ...os.feegrant.v1beta1.FeeAllowanceI" ``` Please also check that in your own app's proto file...


[style] ~983-~983: Try using a more formal synonym for ‘check’. (VERIFY)
Context: ...v1beta1.FeeAllowanceI" ``` Please also check that in your own app's proto files that...


[style] ~983-~983: Although a hyphen is possible, it is not necessary in a compound modifier in which the first word is an adverb that ends in ‘ly’. (HYPHENATED_LY_ADVERB_ADJECTIVE)
Context: ...otations. If so, then replace them with fully-qualified names, even though those names don't ac...


[locale-violation] ~1023-~1023: In American English, “take a look” is more commonly used. (HAVE_A_LOOK)
Context: ...e modules keepers in previous versions. Have a look at simapp.RegisterUpgradeHandlers() f...


[misspelling] ~1041-~1041: Did you mean “At a Time”, “At the Time”, or “At times”? (AT_TIME2)
Context: ...x/gov ##### Minimum Proposal Deposit At Time of Submission The gov module has bee...


[misspelling] ~1048-~1048: Did you mean “at a time”, “at the time”, or “at times”? (AT_TIME2)
Context: ...o utilize the minimum proposal deposits at time of submission, the migration logic need...


[uncategorized] ~1080-~1080: A comma is probably missing here. (MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)
Context: ...ng Tendermint consensus parameters. For migration it is required to call a specific migra...


[style] ~1107-~1107: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...should still be imported in your app.go in order to handle this migration. Because the `x/...


[style] ~1169-~1169: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ally, new packages have been introduced in order to further split the codebase. Aliases are...


[typographical] ~1221-~1221: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...aintained until April 18, 2023. At this point the module will reach end of life and b...


[style] ~1226-~1226: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...the new implementation is called v1. In order to submit a proposal with `submit-proposal...


[style] ~1233-~1233: ‘by accident’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_BY_ACCIDENT)
Context: ...g delegations. Users that have unbonded by accident or wish to cancel a undelegation can no...


[misspelling] ~1233-~1233: 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: ... unbonded by accident or wish to cancel a undelegation can now specify the amount...


[grammar] ~1237-~1237: The auxiliary verb ‘do’ requires the base form of the verb. (DID_BASEFORM)
Context: ...v0.45.3/third_party/proto) now does not contains directly the [proto files](https://gith...


[style] ~1239-~1239: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...build/cosmos/cosmos-sdk` as dependency, in order to avoid having to copy paste these files....


[grammar] ~1239-~1239: Did you mean “copy and paste”? (COPY_PASTE)
Context: ...dependency, in order to avoid having to copy paste these files. The protos can as well be...


[uncategorized] ~1257-~1257: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ..."]; } ``` When clients interact with a node they are required to set a codec in in ...


[duplication] ~1257-~1257: Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Context: ...a node they are required to set a codec in in the grpc.Dial. More information can be ...

Markdownlint
UPGRADING.md

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


162-162: Column: 3 (MD010, no-hard-tabs)
Hard tabs


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


321-321: Column: 3 (MD010, no-hard-tabs)
Hard tabs


322-322: Column: 2 (MD010, no-hard-tabs)
Hard tabs


323-323: Column: 2 (MD010, no-hard-tabs)
Hard tabs


324-324: Column: 2 (MD010, no-hard-tabs)
Hard tabs


325-325: Column: 2 (MD010, no-hard-tabs)
Hard tabs


326-326: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


415-415: Column: 2 (MD010, no-hard-tabs)
Hard tabs


418-418: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


427-427: Column: 2 (MD010, no-hard-tabs)
Hard tabs


431-431: Column: 2 (MD010, no-hard-tabs)
Hard tabs


439-439: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


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


544-544: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1088-1088: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1090-1090: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1091-1091: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1092-1092: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1093-1093: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1094-1094: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1095-1095: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


1099-1099: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1100-1100: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1101-1101: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


1189-1189: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


1192-1192: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers

Additional comments not posted (1)
x/auth/keeper/keeper.go (1)

142-142: Initialization of accountNumber in NewAccountKeeper.

The initialization of accountNumber using collections.NewSequence is correctly implemented and aligns with the intended design to track account numbers globally.

UPGRADING.md Outdated Show resolved Hide resolved
// only use for upgrade handler
//
// Deprecated: move to accounts module accountNumber
accountNumber collections.Sequence
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure proper deprecation of accountNumber.

The accountNumber field is marked as deprecated but is still being used in the RemoveLegacyAccountNumber and MigrateAccountNumberUnsafe methods. Consider removing or refactoring these usages to align with the deprecation strategy.

Comment on lines 153 to 167
// RemoveLegacyAccountNumber is used for migration purpose only. It deletes the sequence in the DB
// and returns the last value used on success.
// Deprecated
func (ak AccountKeeper) RemoveLegacyAccountNumber(ctx context.Context) (uint64, error) {
accNum, err := ak.accountNumber.Peek(ctx)
if err != nil {
return 0, err
}

// Delete DB entry for legacy account number
store := ak.KVStoreService.OpenKVStore(ctx)
err = store.Delete(types.GlobalAccountNumberKey.Bytes())

return accNum, err
}
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 deprecation and removal process for RemoveLegacyAccountNumber.

The RemoveLegacyAccountNumber method is marked as deprecated, but it's unclear when and how it will be removed from the codebase. It would be beneficial to outline a clear deprecation and removal strategy in the documentation to avoid confusion and ensure that other modules do not inadvertently depend on this deprecated functionality.

Comment on lines 346 to 355
func (ak AccountKeeper) MigrateAccountNumberUnsafe(ctx context.Context) error {
currentAccNum, err := ak.RemoveLegacyAccountNumber(ctx)
if err != nil {
return err
}

err = ak.AccountsModKeeper.InitAccountNumberSeqUnsafe(ctx, currentAccNum)

return err
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Review the usage of MigrateAccountNumberUnsafe.

The MigrateAccountNumberUnsafe method is critical for the migration process but lacks detailed error handling and logging. Consider adding more robust error handling and detailed logging to trace the migration steps and potential issues.

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

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 053ae26 and eae8154.

Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • x/auth/keeper/keeper.go (4 hunks)
Files skipped from review as they are similar to previous changes (1)
  • x/auth/keeper/keeper.go
Additional context used
Path-based instructions (1)
CHANGELOG.md (1)

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

Markdownlint
CHANGELOG.md

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1504-1504: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1505-1505: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


1507-1507: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1508-1508: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1509-1509: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


1514-1514: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


1516-1516: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1517-1517: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1518-1518: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2653-2653: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2695-2695: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2696-2696: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2697-2697: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


2705-2705: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2706-2706: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2707-2707: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


2710-2710: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2711-2711: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


2715-2715: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2716-2716: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


2730-2730: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2731-2731: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2732-2732: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2733-2733: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


2764-2764: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2765-2765: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2843-2843: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2844-2844: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


2849-2849: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2850-2850: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


2860-2860: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2861-2861: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2862-2862: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2863-2863: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2864-2864: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2865-2865: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2866-2866: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2867-2867: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2868-2868: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2869-2869: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2944-2944: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2945-2945: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


2947-2947: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2948-2948: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2949-2949: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


2953-2953: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2954-2954: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


1137-1137: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1927-1927: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1685-1685: null (MD034, no-bare-urls)
Bare URL used


1715-1715: null (MD034, no-bare-urls)
Bare URL used


2662-2662: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2750-2750: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2752-2752: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2757-2757: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2759-2759: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2769-2769: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2771-2771: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2776-2776: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2784-2784: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2801-2801: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2803-2803: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2811-2811: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2817-2817: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2887-2887: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2890-2890: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2893-2893: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2895-2895: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2935-2935: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


1056-1056: null (MD038, no-space-in-code)
Spaces inside code span elements


2703-2703: null (MD038, no-space-in-code)
Spaces inside code span elements


2703-2703: null (MD038, no-space-in-code)
Spaces inside code span elements

Additional comments not posted (1)
CHANGELOG.md (1)

202-202: The changelog entry is clear and accurately reflects the changes made in PR #20531.

Copy link
Contributor

@alpe alpe left a comment

Choose a reason for hiding this comment

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

Good updates. 🏅
This is good to go, no blockers. I added some minor nits and personal preferences only. Feel free to ignore them.

simapp/upgrades_test.go Outdated Show resolved Hide resolved
x/auth/keeper/keeper.go Outdated Show resolved Hide resolved
x/auth/keeper/keeper.go Outdated Show resolved Hide resolved
Copy link
Member

@tac0turtle tac0turtle left a comment

Choose a reason for hiding this comment

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

looks good. agree with Alex's comments, making it private and static would be better. I would add unsafe to removelegacyaccountnumber as well

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

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between eae8154 and 3ef3407.

Files selected for processing (3)
  • simapp/upgrades.go (2 hunks)
  • simapp/upgrades_test.go (1 hunks)
  • x/auth/keeper/keeper.go (4 hunks)
Files skipped from review as they are similar to previous changes (3)
  • simapp/upgrades.go
  • simapp/upgrades_test.go
  • x/auth/keeper/keeper.go

@github-actions github-actions bot added the C:orm label Jun 11, 2024
@github-actions github-actions bot removed the C:orm label Jun 11, 2024
@sontrinh16
Copy link
Member Author

linter fail for weird reasons like last time 🤔

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Outside diff range and nitpick comments (4)
UPGRADING.md (4)

Line range hint 719-727: Adjust the indentation of the unordered list to match Markdown best practices.

The indentation of the unordered list items should be consistent. Here's the corrected version:

- `x/auth`
- `x/authz`
- `x/bank`
- `x/distribution`
- `x/group`
- `x/gov`
- `x/mint`
- `x/slashing`
- `x/staking`
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...

Markdownlint

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


Line range hint 51-51: Remove trailing spaces to clean up the document.

Trailing spaces can be removed for a cleaner document. Here's the suggested change:

- Note, always read the **SimApp** section for more information on application wiring updates. 
+ Note, always read the **SimApp** section for more information on application wiring updates.

Also applies to: 185-185, 649-649

Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...

Markdownlint

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


Line range hint 84-140: Replace tabs with spaces in the Markdown file for consistency.

Using spaces instead of tabs helps maintain consistency across various editors and platforms. Here's how you can adjust it:

- <tab>server.AddCommands(rootCmd, newApp, server.StartCmdOptions[servertypes.Application]{})
+    server.AddCommands(rootCmd, newApp, server.StartCmdOptions[servertypes.Application]{})
Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...

Markdownlint

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


Line range hint 171-171: Address grammatical and typographical issues to enhance clarity and professionalism.

Several grammatical and typographical issues have been identified that could affect the readability and professionalism of the document. Here are some examples and suggested fixes:

- If you were depending on `cosmossdk.io/api/tendermint`, please...
+ If you depended on `cosmossdk.io/api/tendermint`, please...

- we strongly recommend to use the `cosmossdk.io/core/appmodule` interfaces
+ we strongly recommend using the `cosmossdk.io/core/appmodule` interfaces

- It is required to migrate to v0.50 prior to upgrading to v0.51 for not missing any...
+ It is required to migrate to v0.50 before upgrading to v0.51 to ensure no...

- Many functions have been removed due to this changes as the API can be smaller thanks...
+ Many functions have been removed due to these changes as the API can be smaller thanks...

- For existing chains this can be done in two ways:
+ For existing chains, this can be done in two ways:

- During an upgrade the value is set in an upgrade handler.
+ During an upgrade, the value is set in an upgrade handler.

- where a catastrophic failure has occurred and the application should halt. However, this...
+ where a catastrophic failure has occurred, and the application should halt. However, this...

- will gracefully by handled by `BaseApp` on behalf of the application.
+ will be gracefully handled by `BaseApp` on behalf of the application.

- `BaseApp` during `FinalizeBlock`. Specifically, the order of operations is `BeginBlock` -> `DeliverTx` (for all txs) -> `EndBlock`.
+ `BaseApp` during `FinalizeBlock`. Specifically, the order of operations is: `BeginBlock` -> `DeliverTx` (for all txs) -> `EndBlock`.

- and allows to modify consensus parameters, and the changes are visible to the following state machine logics.
+ and allows modification of consensus parameters, and the changes are visible to the following state machine logics.

- Instead a new attribute is added to all messages indicating...
+ Instead, a new attribute is added to all messages indicating...

- Use `confix` to clean-up your `app.toml`. A nginx (or alike) reverse-proxy can be set to keep the previous behavior.
+ Use `confix` to clean up your `app.toml`. An nginx (or alike) reverse-proxy can be set to keep the previous behavior.

- To migrate from a unsupported database to a supported database please use a database migration tool.
+ To migrate from an unsupported database to a supported database, please use a database migration tool.

- In this section we describe the changes made in Cosmos ...
+ In this section, we describe the changes made in Cosmos ...

- Additionally `AutoCLI` automatically adds the custom...
+ Additionally, `AutoCLI` automatically adds the custom...

- which allows it be a standalone module. All the store imports are now renamed to use...
+ which allows it to be a standalone module. All the store imports are now renamed to use...

- that produces more human readable output, currently only available on Ledger...
+ that produces more human-readable output, currently only available on Ledger...

- the a tx config should be recreated from the `txConfigOpts` to use...
+ a tx config should be recreated from the `txConfigOpts` to use...

- Any module that has an interfaces for them (like "expected keepers") will...
+ Any module that has interfaces for them (like "expected keepers") will...

- Rosetta has moved to it's own [repo](https://github.com/cosmos/rosetta) and not imported by the Cosmos SDK SimApp by default.
+ Rosetta has moved to its own [repo](https://github.com/cosmos/rosetta) and is not imported by the Cosmos SDK SimApp by default.

- Any user who is interested on using the tool can connect it standalone to any node without the need to add it as part of the node binary.
+ Any user who is interested in using the tool can connect it standalone to any node without the need to add it as part of the node binary.

- The rosetta tool also allows multi chain connections.
+ The rosetta tool also allows multi-chain connections.

- during simulations, however, it does so through ParamChangeProposal which is now legacy.
+ during simulations; however, it does so through ParamChangeProposal which is now legacy.

- for each modules, `AppModuleSimulation` now defines a `AppModule.ProposalMsgs` method in addition to `AppModule.ProposalContents`.
+ for each module, `AppModuleSimulation` now defines an `AppModule.ProposalMsgs` method in addition to `AppModule.ProposalContents`.

- add the following lines to your `app.go` in order to provide newer gRPC services:
+ add the following lines to your `app.go` to provide newer gRPC services:

- Instead you can use the `TestEncodingConfig` from the `types/module/testutil` package.
+ Instead, you can use the `TestEncodingConfig` from the `types/module/testutil` package.

- The `GoLevelDB` version must pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef7` in the application, following versions might cause unexpected behavior.
+ The `GoLevelDB` version must be pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef7` in the application, as following versions might cause unexpected behavior.

- This allows you to remove the replace directive `replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1` from your `go.mod` file.
+ This allows you to remove the replacement directive `replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1` from your `go.mod` file.

- set by the `protoc -I` flag).
+ set by the `protoc -I` flag.

- Please also check that in your own app's proto files that...
+ Please also verify that in your own app's proto files...

- Have a look at `simapp.RegisterUpgradeHandlers()` for an example.
+ Take a look at `simapp.RegisterUpgradeHandlers()` for an example.

- The `gov` module has been updated to support a minimum proposal deposit at time of submission.
+ The `gov` module has been updated to support a minimum proposal deposit at the time of submission.

- For migration it is required to call a specific migration to migrate...
+ For migration, it is required to call a specific migration to migrate...

- should still be imported in your app.go in order to handle this migration.
+ should still be imported in your app.go to handle this migration.

- Additionally, new packages have been introduced in order to further split the codebase.
+ Additionally, new packages have been introduced to further split the codebase.

- At this point the module will reach end of life and be...
+ At this point, the module will reach end of life and be...

- In order to submit a proposal with `submit-proposal` you now need to pass a `proposal.json` file.
+ To submit a proposal with `submit-proposal`, you now need to pass a `proposal.json` file.

- Users that have unbonded by accident or wish to cancel a undelegation can now specify the amount...
+ Users who have unbonded accidentally or wish to cancel an undelegation can now specify the amount...

- now does not contains directly the [proto files](https://github.com/cosmos/cosmos-sdk/tree/release/v0.46.x/third_party/proto).
+ now does not directly contain the [proto files](https://github.com/cosmos/cosmos-sdk/tree/release/v0.46.x/third_party/proto).

- in order to avoid having to copy paste these files.
+ to avoid having to copy and paste these files.

Also applies to: 181-181, 231-231, 252-252, 313-313, 381-381, 383-383, 390-390, 392-392, 397-397, 410-410, 448-448, 475-475, 479-479, 496-496, 560-560, 596-596, 627-627, 648-648, 692-692, 717-717, 783-783, 803-803, 820-820, 848-848, 849-849, 850-850, 872-872, 874-874, 889-889, 906-906, 927-927, 937-937, 948-948, 956-956, 966-966, 984-984, 985-985, 1025-1025, 1043-1043, 1050-1050, 1082-1082, 1109-1109, 1171-1171, 1223-1223, 1228-1228, 1235-1235, 1241-1241

Tools
LanguageTool

[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...

Markdownlint

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

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 3ef3407 and 69d6738.

Files selected for processing (5)
  • CHANGELOG.md (1 hunks)
  • UPGRADING.md (1 hunks)
  • crypto/codec/amino.go (1 hunks)
  • crypto/codec/cmt.go (1 hunks)
  • simapp/upgrades_test.go (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • simapp/upgrades_test.go
Additional context used
Path-based instructions (4)
crypto/codec/amino.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

crypto/codec/cmt.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

UPGRADING.md (1)

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

CHANGELOG.md (1)

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

LanguageTool
UPGRADING.md

[typographical] ~10-~10: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: .... ## [Unreleased] ### SimApp In this section we describe the changes made in Cosmos ...


[grammar] ~171-~171: The verb ‘depend’ can be stative. If ‘depending’ describes a state, change the sentence structure and use the base form of the verb. (PROGRESSIVE_VERBS)
Context: ...ild/docs/bsr/generated-sdks/go). If you were depending on cosmossdk.io/api/tendermint, pleas...


[grammar] ~181-~181: The verb ‘recommend’ is used with the gerund form. (ADMIT_ENJOY_VB)
Context: ...precation of sdk.Context, we strongly recommend to use the cosmossdk.io/core/appmodule inter...


[style] ~231-~231: ‘prior to’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_PRIOR_TO)
Context: ...ved. It is required to migrate to v0.50 prior to upgrading to v0.51 for not missing any ...


[grammar] ~252-~252: The singular determiner ‘this’ may not agree with the plural noun ‘changes’. Did you mean “these”? (THIS_NNS)
Context: ...Many functions have been removed due to this changes as the API can be smaller thank...


[uncategorized] ~313-~313: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ...ams` A standalone Go module was created and it is accessible at "cosmossdk.io/x/par...


[typographical] ~381-~381: It appears that a comma is missing. (BY_FOR_IN_COMMA)
Context: ...genesis.json` file. For existing chains this can be done in two ways: * During an u...


[typographical] ~383-~383: Consider adding a comma after this introductory phrase. (AS_A_NN_COMMA)
Context: ...s can be done in two ways: * During an upgrade the value is set in an upgrade handler....


[uncategorized] ~390-~390: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...here a catastrophic failure has occurred and the application should halt. However, t...


[misspelling] ~392-~392: Did you maybe mean “buy” or “be”? (BY_BUY)
Context: ... that returns an error, will gracefully by handled by BaseApp on behalf of the a...


[style] ~397-~397: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lizeBlock` is public and should be used in order to test and run operations. This means tha...


[grammar] ~410-~410: Did you mean “modifying”? Or maybe you should add a pronoun? In active voice, ‘allow’ + ‘to’ takes an object, usually a pronoun. (ALLOW_TO)
Context: ...begin blocker other modules, and allows to modify consensus parameters, and the changes a...


[uncategorized] ~448-~448: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...he case of successful msg(s) execution. Instead a new attribute is added to all message...


[grammar] ~475-~475: The word “clean-up” is a noun. The verb is spelled with a white space. (NOUN_VERB_CONFUSION)
Context: ...s well as its settings. Use confix to clean-up your app.toml. A nginx (or alike) rev...


[misspelling] ~479-~479: 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: ... not supported anymore. To migrate from a unsupported database to a supported dat...


[typographical] ~479-~479: Consider adding a comma here. (PLEASE_COMMA)
Context: ...pported database to a supported database please use a database migration tool. ### Pro...


[typographical] ~496-~496: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...tate-machine code. ### SimApp In this section we describe the changes made in Cosmos ...


[uncategorized] ~560-~560: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...on. The global variable has been removed and the basic module manager can be now cre...


[uncategorized] ~596-~596: A comma may be missing after the conjunctive/linking adverb ‘Additionally’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... not to be included in the binary. ::: Additionally AutoCLI automatically adds the custom...


[grammar] ~627-~627: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. All the store impo...


[misspelling] ~648-~648: This word is normally spelled with a hyphen. (EN_COMPOUNDS_HUMAN_READABLE)
Context: ...available in the SDK that produces more human readable output, currently only available on Led...


[grammar] ~692-~692: Two determiners in a row. Choose either “the” or “a”. (DT_DT)
Context: ...``` When using depinject / `app v2`, the a tx config should be recreated from the ...


[grammar] ~717-~717: It looks like ‘interfaces’ doesn’t match ‘an’. Did you mean “an interface” or just “interfaces”? (A_NNS_IN)
Context: ...d of sdk.Context. Any module that has an interfaces for them (like "expected keepers") will...


[typographical] ~770-~770: Consider adding a comma here. (PLEASE_COMMA)
Context: ...ustom signer function. To find out more please read the [signer field](https://github....


[misspelling] ~783-~783: 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: ...has migrated from a CometBFT genesis to a application managed genesis file. The g...


[misspelling] ~803-~803: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’. (EN_A_VS_AN)
Context: ...ameter. An expedited proposal must have an higher voting threshold than a classic ...


[grammar] ~820-~820: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. All the evidence i...


[grammar] ~848-~848: Did you mean the possessive pronoun “its”? (IT_S_ITS)
Context: ...ing #### Rosetta Rosetta has moved to it's own [repo](https://github.com/cosmos/ro...


[uncategorized] ~849-~849: After the verb ‘interested’ the preposition “in” is used. (CONFUSION_OF_INTERESTED_ON_IN)
Context: ... by default. Any user who is interested on using the tool can connect it standalon...


[misspelling] ~850-~850: This word is normally spelled as one. (EN_COMPOUNDS_MULTI_CHAIN)
Context: ...de binary. The rosetta tool also allows multi chain connections. ## [v0.47.x](https://gith...


[typographical] ~872-~872: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (HOWEVER_SENTENCE)
Context: ...dom parameter changes during simulations, however, it does so through ParamChangeProposal ...


[grammar] ~874-~874: The noun should probably be in the singular form. (EVERY_EACH_SINGULAR)
Context: ...teParamsgovernance proposals for each modules,AppModuleSimulationnow defines aA...


[style] ~889-~889: Consider using “formerly” to strengthen your wording. (PREVIOUSLY_FORMERLY)
Context: ... modules no longer support the REST API previously known as the LCD, and the `sdk.Msg#Rout...


[style] ~906-~906: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...dd the following lines to your app.go in order to provide newer gRPC services: ```go aut...


[uncategorized] ~927-~927: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...)was deprecated and has been removed. Instead you can use theTestEncodingConfig` fr...


[grammar] ~937-~937: The modal verb ‘must’ requires the verb’s base form. (MD_BASEFORM)
Context: ... Replaces The GoLevelDB version must pinned to `v1.0.1-0.20210819022825-2ae1ddf74ef...


[grammar] ~948-~948: The word ‘replace’ is a verb. Did you mean the noun “replacement”? (PREPOSITION_VERB)
Context: ...goproto. This allows you to remove the replace directive replace github.com/gogo/prot...


[formatting] ~956-~956: You have used ‘I’ with an apostrophe, but either the verb is missing or you have not used the corresponding abbreviated form. Consider using one of the suggestions or removing the apostrophe. (I_APOSTROPHE_X)
Context: ...ly the root proto/ folder, set by the protoc -I flag). For example, assuming you put a...


[style] ~966-~966: Although a hyphen is possible, it is not necessary in a compound modifier in which the first word is an adverb that ends in ‘ly’. (HYPHENATED_LY_ADVERB_ADJECTIVE)
Context: ...ace` annotations. We require them to be fully-scoped names. They will soon be used by code g...


[style] ~984-~984: The word “also” tends to be overused. Consider using a formal alternative to strengthen your wording. (PLEASE_ALSO_CHECK)
Context: ...os.feegrant.v1beta1.FeeAllowanceI" ``` Please also check that in your own app's proto file...


[style] ~985-~985: Try using a more formal synonym for ‘check’. (VERIFY)
Context: ...v1beta1.FeeAllowanceI" ``` Please also check that in your own app's proto files that...


[style] ~985-~985: Although a hyphen is possible, it is not necessary in a compound modifier in which the first word is an adverb that ends in ‘ly’. (HYPHENATED_LY_ADVERB_ADJECTIVE)
Context: ...otations. If so, then replace them with fully-qualified names, even though those names don't ac...


[locale-violation] ~1025-~1025: In American English, “take a look” is more commonly used. (HAVE_A_LOOK)
Context: ...e modules keepers in previous versions. Have a look at simapp.RegisterUpgradeHandlers() f...


[misspelling] ~1043-~1043: Did you mean “At a Time”, “At the Time”, or “At times”? (AT_TIME2)
Context: ...x/gov ##### Minimum Proposal Deposit At Time of Submission The gov module has bee...


[misspelling] ~1050-~1050: Did you mean “at a time”, “at the time”, or “at times”? (AT_TIME2)
Context: ...o utilize the minimum proposal deposits at time of submission, the migration logic need...


[uncategorized] ~1082-~1082: A comma is probably missing here. (MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)
Context: ...ng Tendermint consensus parameters. For migration it is required to call a specific migra...


[style] ~1109-~1109: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...should still be imported in your app.go in order to handle this migration. Because the `x/...


[style] ~1171-~1171: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ally, new packages have been introduced in order to further split the codebase. Aliases are...


[typographical] ~1223-~1223: It appears that a comma is missing. (DURING_THAT_TIME_COMMA)
Context: ...aintained until April 18, 2023. At this point the module will reach end of life and b...


[style] ~1228-~1228: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...the new implementation is called v1. In order to submit a proposal with `submit-proposal...


[style] ~1235-~1235: ‘by accident’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_BY_ACCIDENT)
Context: ...g delegations. Users that have unbonded by accident or wish to cancel a undelegation can no...


[misspelling] ~1235-~1235: 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: ... unbonded by accident or wish to cancel a undelegation can now specify the amount...


[grammar] ~1239-~1239: The auxiliary verb ‘do’ requires the base form of the verb. (DID_BASEFORM)
Context: ...v0.45.3/third_party/proto) now does not contains directly the [proto files](https://gith...


[style] ~1241-~1241: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...build/cosmos/cosmos-sdk` as dependency, in order to avoid having to copy paste these files....


[grammar] ~1241-~1241: Did you mean “copy and paste”? (COPY_PASTE)
Context: ...dependency, in order to avoid having to copy paste these files. The protos can as well be...


[duplication] ~1259-~1259: Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Context: ...a node they are required to set a codec in in the grpc.Dial. More information can be ...

Markdownlint
UPGRADING.md

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


162-162: Column: 3 (MD010, no-hard-tabs)
Hard tabs


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


323-323: Column: 3 (MD010, no-hard-tabs)
Hard tabs


324-324: Column: 2 (MD010, no-hard-tabs)
Hard tabs


325-325: Column: 2 (MD010, no-hard-tabs)
Hard tabs


326-326: Column: 2 (MD010, no-hard-tabs)
Hard tabs


327-327: Column: 2 (MD010, no-hard-tabs)
Hard tabs


328-328: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


417-417: Column: 2 (MD010, no-hard-tabs)
Hard tabs


420-420: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


429-429: Column: 2 (MD010, no-hard-tabs)
Hard tabs


433-433: Column: 2 (MD010, no-hard-tabs)
Hard tabs


441-441: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


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


546-546: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1090-1090: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1092-1092: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1093-1093: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1094-1094: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1095-1095: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1096-1096: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1097-1097: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


1101-1101: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1102-1102: Column: 2 (MD010, no-hard-tabs)
Hard tabs


1103-1103: Column: 2 (MD010, no-hard-tabs)
Hard tabs


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


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


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


1191-1191: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


1194-1194: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers

CHANGELOG.md

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


501-501: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


502-502: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


510-510: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


511-511: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


513-513: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


514-514: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


516-516: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


517-517: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


518-518: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


520-520: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


521-521: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


529-529: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


540-540: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


541-541: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


542-542: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


548-548: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


549-549: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


550-550: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


556-556: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


572-572: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


573-573: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


574-574: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


575-575: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


576-576: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


577-577: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


582-582: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


583-583: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


584-584: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


585-585: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


592-592: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


593-593: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


594-594: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


628-628: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


629-629: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


630-630: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


631-631: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


636-636: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


637-637: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


785-785: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


928-928: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


949-949: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


952-952: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1034-1034: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1035-1035: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1036-1036: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1037-1037: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1038-1038: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1039-1039: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1136-1136: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1222-1222: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1268-1268: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1274-1274: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1275-1275: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1276-1276: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1277-1277: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1278-1278: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1279-1279: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1379-1379: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1504-1504: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1505-1505: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1506-1506: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1507-1507: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1508-1508: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1509-1509: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1510-1510: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1511-1511: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1514-1514: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1515-1515: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1516-1516: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1517-1517: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1518-1518: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1519-1519: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1768-1768: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1769-1769: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1770-1770: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1771-1771: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1772-1772: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1773-1773: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1883-1883: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2220-2220: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2221-2221: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2222-2222: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2225-2225: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2226-2226: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2227-2227: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2249-2249: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2250-2250: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2251-2251: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2252-2252: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2253-2253: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2261-2261: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2262-2262: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2263-2263: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2264-2264: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2265-2265: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2267-2267: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2268-2268: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2269-2269: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2596-2596: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2597-2597: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2598-2598: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2599-2599: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2600-2600: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2602-2602: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2604-2604: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2605-2605: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2606-2606: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2607-2607: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2608-2608: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2609-2609: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2611-2611: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2612-2612: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2613-2613: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2616-2616: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2617-2617: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2618-2618: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2619-2619: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2620-2620: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2623-2623: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2626-2626: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2629-2629: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2630-2630: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2633-2633: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2640-2640: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2641-2641: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2642-2642: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2643-2643: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2644-2644: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2646-2646: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2647-2647: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2648-2648: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2649-2649: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2650-2650: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2651-2651: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2652-2652: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2653-2653: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2654-2654: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2657-2657: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2658-2658: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2659-2659: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2660-2660: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2661-2661: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2662-2662: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2669-2669: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2670-2670: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2671-2671: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2672-2672: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2679-2679: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2681-2681: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2683-2683: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2684-2684: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2685-2685: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2686-2686: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2687-2687: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2688-2688: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2689-2689: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2690-2690: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2691-2691: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2692-2692: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2693-2693: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2694-2694: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2695-2695: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2696-2696: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2697-2697: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2698-2698: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2699-2699: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2700-2700: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2701-2701: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2702-2702: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2703-2703: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2704-2704: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2705-2705: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2706-2706: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2707-2707: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2708-2708: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2709-2709: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2711-2711: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2712-2712: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2714-2714: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2715-2715: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2716-2716: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2717-2717: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2718-2718: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2719-2719: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2720-2720: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2723-2723: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2724-2724: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2726-2726: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2727-2727: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2730-2730: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2731-2731: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2732-2732: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2733-2733: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2734-2734: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2735-2735: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2736-2736: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2737-2737: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2739-2739: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2740-2740: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2741-2741: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2747-2747: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2750-2750: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2756-2756: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2764-2764: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2765-2765: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2766-2766: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2767-2767: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2775-2775: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2782-2782: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2783-2783: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2790-2790: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2792-2792: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2796-2796: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2797-2797: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2799-2799: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2807-2807: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2809-2809: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2810-2810: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2816-2816: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2824-2824: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2825-2825: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2826-2826: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2827-2827: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2828-2828: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2829-2829: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2830-2830: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2831-2831: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2832-2832: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2833-2833: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2834-2834: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2835-2835: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2836-2836: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2837-2837: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2839-2839: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2840-2840: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2842-2842: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2843-2843: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2844-2844: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2845-2845: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2846-2846: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2847-2847: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2848-2848: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2849-2849: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2850-2850: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2851-2851: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2853-2853: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2854-2854: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2857-2857: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2858-2858: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2859-2859: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2860-2860: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2861-2861: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2862-2862: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2863-2863: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2864-2864: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2865-2865: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2866-2866: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2867-2867: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2868-2868: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2869-2869: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2870-2870: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2871-2871: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2872-2872: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2877-2877: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2878-2878: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2879-2879: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2880-2880: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2881-2881: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2882-2882: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2884-2884: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2886-2886: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2900-2900: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2901-2901: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2902-2902: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2907-2907: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2908-2908: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2909-2909: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2913-2913: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2914-2914: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2915-2915: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2916-2916: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2917-2917: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2918-2918: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2921-2921: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2922-2922: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2923-2923: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2924-2924: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2925-2925: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2926-2926: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2927-2927: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2928-2928: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2929-2929: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2931-2931: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2933-2933: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2935-2935: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2940-2940: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2941-2941: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2942-2942: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2943-2943: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2944-2944: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2945-2945: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2946-2946: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2947-2947: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2948-2948: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2949-2949: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2950-2950: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2951-2951: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2952-2952: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2953-2953: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2954-2954: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2955-2955: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2956-2956: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2957-2957: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2958-2958: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2959-2959: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2960-2960: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


187-187: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


229-229: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


1138-1138: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1928-1928: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1686-1686: null (MD034, no-bare-urls)
Bare URL used


1716-1716: null (MD034, no-bare-urls)
Bare URL used


2663-2663: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2751-2751: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2753-2753: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2758-2758: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2760-2760: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2770-2770: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2772-2772: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2777-2777: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2785-2785: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2802-2802: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2804-2804: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2812-2812: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2818-2818: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2888-2888: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2891-2891: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2894-2894: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2896-2896: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2936-2936: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


1057-1057: null (MD038, no-space-in-code)
Spaces inside code span elements


2704-2704: null (MD038, no-space-in-code)
Spaces inside code span elements


2704-2704: null (MD038, no-space-in-code)
Spaces inside code span elements

Additional comments not posted (3)
crypto/codec/amino.go (1)

7-7: Ensure the newly imported cosmossdk.io/core/legacy is utilized appropriately within the file.

Verification successful

The import cosmossdk.io/core/legacy is utilized in the RegisterCrypto function. Let's verify the implementation details of RegisterCrypto and its invocations within the project to ensure proper usage.


The RegisterCrypto function, which uses the legacy.Amino type from the cosmossdk.io/core/legacy import, is implemented in crypto/codec/amino.go and is invoked in multiple files across the project. This confirms that the import is utilized appropriately.

  • crypto/codec/amino.go: Implementation of RegisterCrypto.
  • x/auth/migrations/legacytx/stdtx_test.go: Invocation of RegisterCrypto.
  • x/genutil/client/cli/init_test.go: Invocation of RegisterCrypto.
  • std/codec.go: Invocation of RegisterCrypto.
  • crypto/ledger/amino.go: Invocation of RegisterCrypto.
  • crypto/keys/multisig/multisig_test.go: Invocation of RegisterCrypto.
  • codec/legacy/codec.go: Invocation of RegisterCrypto.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of the `cosmossdk.io/core/legacy` import in the `amino.go` file.

# Test: Search for the usage of `legacy` in the file. Expect: At least one occurrence.
rg --type go 'legacy\.' crypto/codec/amino.go

Length of output: 87



Script:

#!/bin/bash
# Description: Verify the implementation details and invocations of the `RegisterCrypto` function.

# Test: Search for the implementation of `RegisterCrypto` in the `amino.go` file.
rg --type go 'func RegisterCrypto' crypto/codec/amino.go

# Test: Search for invocations of `RegisterCrypto` across the project.
rg --type go 'RegisterCrypto\('

Length of output: 563

crypto/codec/cmt.go (1)

9-9: Ensure the newly imported cosmossdk.io/errors is utilized appropriately within the file.

Verification successful

The cosmossdk.io/errors import is utilized appropriately within the cmt.go file to wrap errors with additional context.

  • Lines where errors.Wrapf is used:
    • return nil, errors.Wrapf(sdkerrors.ErrInvalidType, "cannot convert %v from Tendermint public key", protoPk)
    • return cmtprotocrypto.PublicKey{}, errors.Wrapf(sdkerrors.ErrInvalidType, "cannot convert %v to Tendermint public key", pk)
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of the `cosmossdk.io/errors` import in the `cmt.go` file.

# Test: Search for the usage of `errors` in the file. Expect: At least one occurrence.
rg --type go 'errors\.' crypto/codec/cmt.go

Length of output: 281

CHANGELOG.md (1)

203-203: The changelog entry is clear and correctly links the PR. It succinctly describes the deprecation of the NextAccountNumber method.

Comment on lines +255 to +265
#### `x/accounts`

Accounts's AccountNumber will be used as a global account number tracking replacing Auth legacy AccountNumber. Must set accounts's AccountNumber with auth's AccountNumber value in upgrade handler. This is done through auth keeper MigrateAccountNumber function.

```go
import authkeeper "cosmossdk.io/x/auth/keeper"
...
err := authkeeper.MigrateAccountNumberUnsafe(ctx, &app.AuthKeeper)
if err != nil {
return nil, err
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider handling the error from MigrateAccountNumberUnsafe more robustly.

The current implementation returns nil on error, which might suppress the error details and make debugging difficult. It's generally a good practice to handle errors explicitly. Here's a suggested change:

if err != nil {
    return nil, fmt.Errorf("failed to migrate account number: %w", err)
}
Tools
Markdownlint

264-264: Column: 1 (MD010, no-hard-tabs)
Hard tabs

@github-actions github-actions bot added C:CLI C:x/genutil genutil module issues labels Jun 12, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 69d6738 and 1d1b745.

Files selected for processing (1)
  • x/genutil/client/cli/init.go (2 hunks)
Additional context used
Path-based instructions (1)
x/genutil/client/cli/init.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

Additional comments not posted (2)
x/genutil/client/cli/init.go (2)

17-18: The introduction of errorsmod for error handling is a good practice as it likely provides more detailed error contexts. However, ensure that the error messages are clear and provide enough information for debugging.


17-18: The new imports cosmossdk.io/errors and cosmossdk.io/math/unsafe are added. Ensure these packages are used appropriately in the codebase and check for any potential issues with these new dependencies.

Verification successful

The new imports cosmossdk.io/errors and cosmossdk.io/math/unsafe are indeed used in the codebase, including the file x/genutil/client/cli/init.go. This confirms that the imports are necessary and correctly integrated.

  • cosmossdk.io/errors is used for error handling.
  • cosmossdk.io/math/unsafe is used for mathematical operations.

No issues found with the new imports.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify the usage of newly imported modules in the codebase.

# Test: Search for the usage of the new modules. Expect: Usage instances of the modules.
rg --type go $'cosmossdk.io/errors|cosmossdk.io/math/unsafe'

Length of output: 11660

@sontrinh16 sontrinh16 added this pull request to the merge queue Jun 12, 2024
Merged via the queue into main with commit 021ab6d Jun 12, 2024
68 of 69 checks passed
@sontrinh16 sontrinh16 deleted the son/quick_fix branch June 12, 2024 07:06
alpe added a commit that referenced this pull request Jun 12, 2024
* main:
  refactor(x/auth): Fix system test (#20531)
  feat(crypto): add blst (#20296)
  docs: Update high level overview and introduction (#20535)
  refactor(x/core): remove test (#20624)
  feat(x/mint)!: Replace InflationCalculationFn with MintFn + simple epoch minting (#20363)
  docs: remove duplicate words (#20622)
  feat: prep for errors v2 (#20539)
  chore: reduce default inflation (#20606)
  refactor(store): add miss defer (#20602)
  chore: use comet api pkg instead of comet alias (#20614)
  chore: write gentx info to cmd.ErrOrStderr (#20616)
  docs: ADR 073: update to accepted and add to README.md (#20619)
  chore(proto): change future extracted modules version from v1.0.0 to v0.2.0 (#20600)
  fix: remove some duplicate words (#20605)
  feat(stf): port simappv2 changes (#20587)
  chore: bring patch changelogs to main (#20599)
@@ -252,6 +252,19 @@ Most of Cosmos SDK modules have migrated to [collections](https://docs.cosmos.ne
Many functions have been removed due to this changes as the API can be smaller thanks to collections.
For modules that have migrated, verify you are checking against `collections.ErrNotFound` when applicable.

#### `x/accounts`

Accounts's AccountNumber will be used as a global account number tracking replacing Auth legacy AccountNumber. Must set accounts's AccountNumber with auth's AccountNumber value in upgrade handler. This is done through auth keeper MigrateAccountNumber function.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add that this should be done in the ugprade handler of an app when wanting using x/accounts.

Can we have this as a diff of upgrade.go like we did for protocolpool?

@@ -200,6 +200,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i

* (simapp) [#19146](https://github.com/cosmos/cosmos-sdk/pull/19146) Replace `--v` CLI option with `--validator-count`/`-n`.
* (module) [#19370](https://github.com/cosmos/cosmos-sdk/pull/19370) Deprecate `module.Configurator`, use `appmodule.HasMigrations` and `appmodule.HasServices` instead from Core API.
* (x/auth) [#20531](https://github.com/cosmos/cosmos-sdk/pull/20531) Deprecate auth keeper `NextAccountNumber`, use `keeper.AccountsModKeeper.NextAccountNumber` instead.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit, to move to x/auth/changelog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants