Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat(client): Add flag & reading mnemonic from file #20690

Merged
merged 7 commits into from
Jun 18, 2024

Conversation

hieuvubk
Copy link
Contributor

@hieuvubk hieuvubk commented Jun 17, 2024

Description

Closes: #20656

  • Added source flag, represent for file path saving mnemonic phrase
  • Handle logic in recover & interactive mode
  • Local tested

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
    • Added the ability to import a mnemonic from a file, enhancing user flexibility in managing mnemonic passphrases.

@hieuvubk hieuvubk requested a review from a team as a code owner June 17, 2024 08:54
Copy link
Contributor

coderabbitai bot commented Jun 17, 2024

Walkthrough

Walkthrough

The recent update introduces a new capability to the client module, allowing users to import mnemonic passphrases from a file using a newly-added flag flagMnemonicSrc. This enhancement provides greater flexibility and security for users managing mnemonic inputs, particularly in scripting contexts.

Changes

File(s) Change Summary
client/keys/add.go Added flagMnemonicSrc to enable importing mnemonics from a file, enhancing passphrase management.
client/.../CHANGELOG.md Documented the new feature allowing mnemonic import from a file via flagMnemonicSrc.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant FileReader

    User->>CLI: runAddCmd with flagMnemonicSrc
    CLI->>FileReader: readMnemonicFromFile
    FileReader-->>CLI: mnemonicPassphrase
    CLI-->>User: Command execution continues with mnemonic
Loading

Assessment against linked issues

Objective [(#20656)] Addressed Explanation
Create a flag to pass keyring encryption passphrase via a file
Allow importing mnemonics from a file for better security

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.

@github-actions github-actions bot added C:CLI C:Keys Keybase, KMS and HSMs labels Jun 17, 2024

This comment has been minimized.

@hieuvubk
Copy link
Contributor Author

Ảnh chụp Màn hình 2024-06-17 lúc 15 40 15

Copy link
Member

@julienrbrt julienrbrt left a comment

Choose a reason for hiding this comment

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

utACK
can we get a feature changelog?

@@ -87,6 +90,7 @@ Example:
f.Uint32(flagIndex, 0, "Address index number for HD derivation (less than equal 2147483647)")
f.String(flags.FlagKeyType, string(hd.Secp256k1Type), "Key signing algorithm to generate keys for")
f.Bool(flagIndiscreet, false, "Print seed phrase directly on current terminal (only valid when --no-backup is false)")
f.String(flagMnemonicSrc, "", "lets users pass in the passphrase via a file (only used when flagRecover or flagInteractive was passed)")
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
f.String(flagMnemonicSrc, "", "lets users pass in the passphrase via a file (only used when flagRecover or flagInteractive was passed)")
f.String(flagMnemonicSrc, "", `Import mnemonic from a file (only usable when "recover" or "interactive" is passed)`)

client/keys/add.go Dismissed Show dismissed Hide dismissed
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

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 1ed018a and 6d7a634.

Files selected for processing (1)
  • client/keys/add.go (5 hunks)
Additional context used
Path-based instructions (1)
client/keys/add.go (1)

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

Additional comments not posted (3)
client/keys/add.go (3)

43-43: Introduced a new constant for the mnemonic source flag.


93-93: Added a new flag to specify the mnemonic source file. Ensure the description clearly indicates its usage context.


427-439: The function readMnemonicFromFile is well-implemented with proper error handling and resource management using defer. Ensure that the file read does not introduce any security vulnerabilities, such as path traversal attacks.

Comment on lines +289 to +316
mnemonicSrc, _ := cmd.Flags().GetString(flagMnemonicSrc)
if recoverFlag {
mnemonic, err = input.GetString("Enter your bip39 mnemonic", inBuf)
if err != nil {
return err
if mnemonicSrc != "" {
mnemonic, err = readMnemonicFromFile(mnemonicSrc)
if err != nil {
return err
}
} else {
mnemonic, err = input.GetString("Enter your bip39 mnemonic", inBuf)
if err != nil {
return err
}
}

if !bip39.IsMnemonicValid(mnemonic) {
return errors.New("invalid mnemonic")
}
} else if interactive {
mnemonic, err = input.GetString("Enter your bip39 mnemonic, or hit enter to generate one.", inBuf)
if err != nil {
return err
if mnemonicSrc != "" {
mnemonic, err = readMnemonicFromFile(mnemonicSrc)
if err != nil {
return err
}
} else {
mnemonic, err = input.GetString("Enter your bip39 mnemonic, or hit enter to generate one.", inBuf)
if err != nil {
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.

Tip

Codebase Verification

Consider enhancing the error handling in readMnemonicFromFile to provide more user-friendly and informative error messages. Currently, the function returns raw errors from os.Open and io.ReadAll, which may not be clear to end-users.

  • client/keys/add.go:430: Wrap the error from os.Open with a message indicating the file could not be opened.
  • client/keys/add.go:436: Wrap the error from io.ReadAll with a message indicating the file could not be read.
Analysis chain

The implementation for reading the mnemonic from a file is correctly placed under the conditions checking the flagRecover and flagInteractive. However, consider handling the scenario where the file path might be incorrect or the file might be empty.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify error handling for empty or incorrect file paths.

# Test: Check if error messages for file read failures are user-friendly and informative.
rg --type go $'readMnemonicFromFile' client/keys/add.go

Length of output: 221



Script:

#!/bin/bash
# Extract the implementation of the readMnemonicFromFile function to review error handling.
ast-grep --lang go --pattern $'func readMnemonicFromFile(filePath string) (string, error) {
  $$$
}' client/keys/add.go

Length of output: 662

@julienrbrt julienrbrt added the backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release label Jun 17, 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 (1)
client/keys/add.go (1)

43-43: Ensure the constant flagMnemonicSrc is well-documented for maintainability.

Consider adding a comment above the constant flagMnemonicSrc to explain its usage within the code, enhancing readability and maintainability.

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 6d7a634 and e065be7.

Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • client/keys/add.go (5 hunks)
Additional context used
Path-based instructions (2)
client/keys/add.go (1)

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

CHANGELOG.md (1)

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

GitHub Check: gosec
client/keys/add.go

[failure] 428-428: Potential file inclusion via variable
Potential file inclusion via variable

Markdownlint
CHANGELOG.md

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1382-1382: Expected: 2; Actual: 4 (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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


1522-1522: Expected: 4; Actual: 8 (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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


2657-2657: Expected: 4; Actual: 8 (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


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


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


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


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


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


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


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


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


2684-2684: 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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


2701-2701: Expected: 4; Actual: 8 (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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


2709-2709: Expected: 4; Actual: 8 (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


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


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


2715-2715: 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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


2727-2727: 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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


2737-2737: Expected: 4; Actual: 8 (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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


2854-2854: Expected: 4; Actual: 8 (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


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


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


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


2863-2863: Expected: 2; Actual: 4 (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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2938-2938: 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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2946-2946: Expected: 2; Actual: 4 (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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


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


2954-2954: Expected: 2; Actual: 4 (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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2958-2958: Expected: 4; Actual: 8 (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


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


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


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


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


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


1141-1141: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1931-1931: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1689-1689: null (MD034, no-bare-urls)
Bare URL used


1719-1719: null (MD034, no-bare-urls)
Bare URL used


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1060-1060: null (MD038, no-space-in-code)
Spaces inside code span elements


2707-2707: null (MD038, no-space-in-code)
Spaces inside code span elements


2707-2707: null (MD038, no-space-in-code)
Spaces inside code span elements

Additional comments not posted (3)
client/keys/add.go (2)

93-93: Good use of the new flag for specifying mnemonic source.

The addition of the flagMnemonicSrc to the command flags is correctly implemented and follows the conventions of the Cobra library.


289-316: Refactor mnemonic retrieval logic to reduce duplication.
[REFACTOR_SUGGESTion]
The logic for retrieving the mnemonic from the file is duplicated in the recoverFlag and interactive blocks. Consider refactoring this into a separate function to avoid code duplication and enhance maintainability.

+ func getMnemonicFromSource(mnemonicSrc string, inBuf *bufio.Reader) (string, error) {
+     if mnemonicSrc != "" {
+         return readMnemonicFromFile(mnemonicSrc)
+     } else {
+         return input.GetString("Enter your bip39 mnemonic", inBuf)
+     }
+ }
- if mnemonicSrc != "" {
-     mnemonic, err = readMnemonicFromFile(mnemonicSrc)
-     if err != nil {
-         return err
-     }
- } else {
-     mnemonic, err = input.GetString("Enter your bip39 mnemonic", inBuf)
-     if err != nil {
-         return err
-     }
- }
CHANGELOG.md (1)

45-45: This changelog entry is clear and properly links to the PR. Good job on maintaining clarity and traceability.

Comment on lines +426 to +439

func readMnemonicFromFile(filePath string) (string, error) {
file, err := os.Open(filePath)
if err != nil {
return "", err
}
defer file.Close()

bz, err := io.ReadAll(file)
if err != nil {
return "", err
}
return string(bz), nil
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Improve error handling in readMnemonicFromFile.

The function readMnemonicFromFile directly returns the errors from os.Open and io.ReadAll without any contextual information. Enhance the error messages to provide more context to the user.

- return "", err
+ return "", fmt.Errorf("failed to open mnemonic source file: %w", err)
- return "", err
+ return "", fmt.Errorf("failed to read mnemonic from file: %w", 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
func readMnemonicFromFile(filePath string) (string, error) {
file, err := os.Open(filePath)
if err != nil {
return "", err
}
defer file.Close()
bz, err := io.ReadAll(file)
if err != nil {
return "", err
}
return string(bz), nil
}
func readMnemonicFromFile(filePath string) (string, error) {
file, err := os.Open(filePath)
if (err != nil) {
return "", fmt.Errorf("failed to open mnemonic source file: %w", err)
}
defer file.Close()
bz, err := io.ReadAll(file)
if (err != nil) {
return "", fmt.Errorf("failed to read mnemonic from file: %w", err)
}
return string(bz), nil
}
Tools
GitHub Check: gosec

[failure] 428-428: Potential file inclusion via variable
Potential file inclusion via variable

@@ -404,3 +423,17 @@

return nil
}

func readMnemonicFromFile(filePath string) (string, error) {
file, err := os.Open(filePath)
Copy link
Contributor

Choose a reason for hiding this comment

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

Mitigate potential file inclusion vulnerability.

The function readMnemonicFromFile opens a file based on a user-provided path without sanitizing or validating the path, which could lead to a file inclusion vulnerability. Consider validating the file path or using a safer method to handle file paths.

+ if !isValidPath(filePath) {
+     return "", fmt.Errorf("invalid file path provided")
+ }
  file, err := os.Open(filePath)

Committable suggestion was skipped due to low confidence.

Tools
GitHub Check: gosec

[failure] 428-428: Potential file inclusion via variable
Potential file inclusion via variable

@facundomedica
Copy link
Member

Can you add some doc to show the expected format?

@hieuvubk hieuvubk enabled auto-merge June 18, 2024 07:17
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 e065be7 and a86dda8.

Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • client/keys/add.go (6 hunks)
Files skipped from review as they are similar to previous changes (1)
  • client/keys/add.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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1508-1508: Expected: 2; Actual: 4 (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


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


1513-1513: Expected: 4; Actual: 8 (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


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


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


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


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


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


1523-1523: Expected: 4; Actual: 8 (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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2655-2655: Expected: 2; Actual: 4 (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: 4; Actual: 8 (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


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


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


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


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


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


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


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


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


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


2685-2685: 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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2697-2697: Expected: 2; Actual: 4 (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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


2702-2702: Expected: 4; Actual: 8 (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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2721-2721: Expected: 4; Actual: 8 (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


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


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


2728-2728: 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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


2738-2738: Expected: 4; Actual: 8 (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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2841-2841: 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: 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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


2851-2851: Expected: 2; Actual: 4 (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


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


2855-2855: Expected: 4; Actual: 8 (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


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


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


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


2864-2864: Expected: 2; Actual: 4 (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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


2939-2939: 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: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


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


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


2948-2948: Expected: 2; Actual: 4 (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: 4; Actual: 8 (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: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


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


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


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


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


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


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


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


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


1142-1142: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1932-1932: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1690-1690: null (MD034, no-bare-urls)
Bare URL used


1720-1720: null (MD034, no-bare-urls)
Bare URL used


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


1061-1061: null (MD038, no-space-in-code)
Spaces inside code span elements


2708-2708: null (MD038, no-space-in-code)
Spaces inside code span elements


2708-2708: null (MD038, no-space-in-code)
Spaces inside code span elements

Additional comments not posted (1)
CHANGELOG.md (1)

45-45: The changelog entry accurately reflects the feature added by PR #20690.

@hieuvubk hieuvubk added this pull request to the merge queue Jun 18, 2024
Merged via the queue into main with commit eee5e21 Jun 18, 2024
65 of 67 checks passed
@hieuvubk hieuvubk deleted the hieu/mnemonic_from_file branch June 18, 2024 08:12
mergify bot pushed a commit that referenced this pull request Jun 18, 2024
(cherry picked from commit eee5e21)

# Conflicts:
#	CHANGELOG.md
#	client/keys/add.go
julienrbrt pushed a commit that referenced this pull request Jun 18, 2024
…#20712)

Co-authored-by: Hieu Vu <72878483+hieuvubk@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
Reecepbcups pushed a commit to rollchains/cosmos-sdk that referenced this pull request Jul 19, 2024
* build(deps): Bump github.com/cosmos/gogoproto from 1.4.12 to 1.5.0 (cosmos#20567)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* refactor(x/authz,x/feegrant): provide updated keeper in depinject (cosmos#20590)

* docs: Update high level overview and introduction (backport cosmos#20535) (cosmos#20627)

Co-authored-by: samricotta <37125168+samricotta@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>

* fix: Properly parse json in the wait-tx command. (backport cosmos#20631) (cosmos#20660)

Co-authored-by: Daniel Wedul <github@wedul.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>

* docs: remove Ineffective code block (backport cosmos#20703) (cosmos#20711)

* feat(client): Add flag & reading mnemonic from file (backport cosmos#20690) (cosmos#20712)

Co-authored-by: Hieu Vu <72878483+hieuvubk@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>

* fix: nested multisig signatures using CLI (backport cosmos#20438) (cosmos#20692)

Co-authored-by: Facundo Medica <14063057+facundomedica@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
Co-authored-by: Facundo <facundomedica@gmail.com>

* feat(client/v2): get keyring from context (backport cosmos#19646) (cosmos#20727)

Co-authored-by: Julien Robert <julien@rbrt.fr>

* docs(x/group): orm codespace comment (backport cosmos#20749) (cosmos#20751)

* feat: parse home flag earlier (backport cosmos#20771) (cosmos#20777)

Co-authored-by: Julien Robert <julien@rbrt.fr>

* build(deps): Bump github.com/cometbft/cometbft from 0.38.7 to 0.38.8 (cosmos#20805)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* build(deps): Bump github.com/cometbft/cometbft from 0.38.8 to 0.38.9 (cosmos#20836)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* fix(simulation): fix the problem of `validator set is empty after InitGenesis` in simulation test (backport cosmos#18196) (cosmos#20897)

Co-authored-by: Chenqun Lu <luchenqun@qq.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>

* fix(simulation): Fix all problems `make test-sim-custom-genesis-fast` for simulation test. (backport cosmos#17911) (cosmos#20909)

Co-authored-by: Chenqun Lu <luchenqun@qq.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>

* chore: prepare v0.50.8 (cosmos#20910)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: samricotta <37125168+samricotta@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
Co-authored-by: Daniel Wedul <github@wedul.com>
Co-authored-by: Hieu Vu <72878483+hieuvubk@users.noreply.github.com>
Co-authored-by: Facundo Medica <14063057+facundomedica@users.noreply.github.com>
Co-authored-by: Facundo <facundomedica@gmail.com>
Co-authored-by: Chenqun Lu <luchenqun@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release C:CLI C:Keys Keybase, KMS and HSMs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature]: Pass keyring encryption passphrase via file
3 participants