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

docs: RFC 003: Cross Language Account, Module, Message Model #21242

Merged
merged 43 commits into from
Sep 2, 2024

Conversation

aaronc
Copy link
Member

@aaronc aaronc commented Aug 9, 2024

Description

Rendered

This RFC conceptually specifies a framework for cross-language, cross-VM accounts and modules.


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

Summary by CodeRabbit

  • New Features

    • Introduced "RFC 003: Account/Module Execution Model," outlining a framework for interoperability among accounts and modules in a multi-language environment within the Cosmos SDK.
    • Detailed the lifecycle of accounts, message transmission specifications, and the role of account handlers.
  • Documentation

    • Added comprehensive guidelines on the execution model, including definitions, message types, and metadata requirements.

Copy link
Contributor

coderabbitai bot commented Aug 9, 2024

Warning

Rate limit exceeded

@aaronc has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 3 minutes and 49 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Commits

Files that changed from the base of the PR and between a6bf7fc and 39ae918.

Walkthrough

Walkthrough

RFC 003 establishes a formal framework within the Cosmos SDK aimed at enhancing interoperability among accounts and modules in a cross-language and cross-virtual machine (VM) environment. It defines essential components such as accounts, addresses, messages, and account handlers, while detailing processes for account lifecycle management and metadata usage to cater to both single-language users and those working with multiple languages.

Changes

Files Change Summary
docs/rfc/rfc-003-crosslang.md Introduced RFC 003 outlining a new execution model for cross-language support, defining accounts, messages, and handlers, and detailing account lifecycle and metadata requirements.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant AccountHandler
    participant Hypervisor
    participant VM

    User->>AccountHandler: Send Message
    AccountHandler->>Hypervisor: Process Message
    Hypervisor->>VM: Invoke Message
    VM-->>Hypervisor: Return Response
    Hypervisor-->>AccountHandler: Send Response
    AccountHandler-->>User: Return Result
Loading

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 using 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.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

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.

@aaronc aaronc changed the title docs: RFC 003: Cross Language Account Manager docs: RFC 003: Cross Language Execution Manager Aug 9, 2024
@aaronc aaronc marked this pull request as ready for review August 15, 2024 17:05
@aaronc aaronc requested a review from a team as a code owner August 15, 2024 17:05
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Outside diff range, codebase verification and nitpick comments (3)
docs/rfc/rfc-003-crosslang.md (3)

5-5: Clarify the changelog entry.

The changelog entry should specify what was reworked in the initial draft to provide more context to the readers.


13-14: Vary the phrasing for clarity.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

- 1. projects that want to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
- 2. projects that want to integrate multiple programming languages and virtual machine environments into an integrated application
+ 1. projects aiming to primarily target a single programming language and virtual machine environment besides Golang, while still utilizing Cosmos SDK internals for consensus and storage
+ 2. projects seeking to integrate multiple programming languages and virtual machine environments into a cohesive application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


109-109: Simplify 'with respect to'.

The phrase "with respect to" can be simplified for clarity.

- which describes a message handler's behavior with respect to state and side effects.
+ which describes a message handler's behavior regarding state and side effects.
Tools
LanguageTool

[style] ~109-~109: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. Volatility ...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between adf5d1b and 7b504a8.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[typographical] ~11-~11: Consider adding a comma after ‘Recently’ for more clarity.
Context: ...ts have been underway since early 2023. Recently we have identified the following key ta...

(RB_LY_COMMA)


[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~43-~43: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...-byte is probably way longer than needed and we could likely shorten this to 63 byte...

(COMMA_COMPOUND_SENTENCE)


[grammar] ~91-~91: The plural noun “bytes” cannot be used with the article “a”. Did you mean “a byte” or “bytes”?
Context: ... an account handler. In addition to a bytes address, modules also have a hu...

(A_NNS)


[style] ~109-~109: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. Volatility ...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~112-~112: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~113-~113: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~161-~161: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~162-~162: Loose punctuation mark.
Context: ...ddress, new handler id, migration data)`: migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~163-~163: Loose punctuation mark.
Context: ...ew handler id, init data, destroy data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~163-~163: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. ### Modul...

(AND_THAT)

Markdownlint
docs/rfc/rfc-003-crosslang.md

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-35: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


48-48: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


61-61: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


71-71: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


98-98: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


111-111: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


120-120: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


140-140: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


147-147: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


160-160: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

docs/rfc/rfc-003-crosslang.md Outdated Show resolved Hide resolved
docs/rfc/rfc-003-crosslang.md Outdated Show resolved Hide resolved
docs/rfc/rfc-003-crosslang.md Outdated Show resolved Hide resolved
docs/rfc/rfc-003-crosslang.md Show resolved Hide resolved
Comment on lines 111 to 113
* `volatile`: the handler can have side effects and send `volatile`, `radonly` or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: the handler cannot cause effects side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: the handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

- * `volatile`: the handler can have side effects and send `volatile`, `radonly` or `pure` messages to other accounts. Such handlers are expected to both read and write state.
- * `readonly`: the handler cannot cause effects side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
- * `pure`: the handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
+ * `volatile`: The handler can have side effects and send `volatile`, `readonly`, or `pure` messages to other accounts. Such handlers are expected to both read and write state.
+ * `readonly`: The handler cannot cause side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
+ * `pure`: The handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
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
* `volatile`: the handler can have side effects and send `volatile`, `radonly` or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: the handler cannot cause effects side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: the handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
* `volatile`: The handler can have side effects and send `volatile`, `readonly`, or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: The handler cannot cause side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: The handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
Tools
LanguageTool

[uncategorized] ~112-~112: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~113-~113: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

111-111: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

docs/rfc/rfc-003-crosslang.md Outdated Show resolved Hide resolved
@aaronc aaronc changed the title docs: RFC 003: Cross Language Execution Manager docs: RFC 003: Cross Language Account, Module, Message Modell Aug 15, 2024
@aaronc aaronc changed the title docs: RFC 003: Cross Language Account, Module, Message Modell docs: RFC 003: Cross Language Account, Module, Message Model Aug 15, 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

Outside diff range, codebase verification and nitpick comments (6)
docs/rfc/rfc-003-crosslang.md (6)

11-11: Add a comma after 'Recently'.

Consider adding a comma after 'Recently' for better clarity.

- Recently we have identified the following key target user groups:
+ Recently, we have identified the following key target user groups:
Tools
LanguageTool

[typographical] ~11-~11: Consider adding a comma after ‘Recently’ for more clarity.
Context: ...ts have been underway since early 2023. Recently we have identified the following key ta...

(RB_LY_COMMA)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

- may vary significantly, however, the essence should remain more or less the same in most coding environments.
+ may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


13-14: Vary the phrasing for better readability.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

- 1. projects that want to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
- 2. projects that want to integrate multiple programming languages and virtual machine environments into an integrated application
+ 1. projects primarily targeting a single programming language and virtual machine environment besides Golang, while still leveraging Cosmos SDK internals for consensus and storage
+ 2. projects integrating multiple programming languages and virtual machine environments into a cohesive application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


101-102: Fix list indentation for consistency.

The list indentation is inconsistent. Ensure proper indentation for readability.

- * a list of the **message names** it defines **message handlers** and for each of these, its:
-   * **volatility** (described below)
-   * optional additional bytes, which are not standardized at this level
+ * a list of the **message names** it defines **message handlers** and for each of these, its:
+     * **volatility** (described below)
+     * optional additional bytes, which are not standardized at this level
Tools
Markdownlint

101-101: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


102-102: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


172-172: Consider a shorter alternative for 'with respect to'.

‘With respect to’ might be wordy. Consider a shorter alternative.

- **Volatility** describes a message handler's behavior with respect to state and side effects.
+ **Volatility** describes a message handler's behavior regarding state and side effects.
Tools
LanguageTool

[style] ~172-~172: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


227-227: Consider adding a comma before 'such as'.

A comma might be missing here for better readability.

- This specification does not cover many important parts of a complete system such as the encoding of message data,
+ This specification does not cover many important parts of a complete system, such as the encoding of message data,
Tools
LanguageTool

[uncategorized] ~227-~227: A comma might be missing here.
Context: ...over many important parts of a complete system such as the encoding of message data, s...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 7b504a8 and 428f2f1.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[typographical] ~11-~11: Consider adding a comma after ‘Recently’ for more clarity.
Context: ...ts have been underway since early 2023. Recently we have identified the following key ta...

(RB_LY_COMMA)


[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~43-~43: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...-byte is probably way longer than needed and we could likely shorten this to 63 byte...

(COMMA_COMPOUND_SENTENCE)


[grammar] ~93-~93: The plural noun “bytes” cannot be used with the article “a”. Did you mean “a byte” or “bytes”?
Context: ... an account handler. In addition to a bytes address, modules also have a hu...

(A_NNS)


[style] ~161-~161: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~172-~172: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~175-~175: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~176-~176: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...ddress, new handler id, migration data)`: migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ...ew handler id, init data, destroy data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~190-~190: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)


[uncategorized] ~227-~227: A comma might be missing here.
Context: ...over many important parts of a complete system such as the encoding of message data, s...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)

Markdownlint
docs/rfc/rfc-003-crosslang.md

157-157: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


158-158: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


159-159: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


101-101: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


102-102: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-35: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


48-48: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


61-61: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


72-72: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


100-100: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


112-112: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


132-132: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


139-139: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


157-157: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


174-174: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


187-187: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (3)
docs/rfc/rfc-003-crosslang.md (3)

43-43: Use a comma before 'and'.

Use a comma before 'and' to separate two independent clauses.

Tools
LanguageTool

[uncategorized] ~43-~43: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...-byte is probably way longer than needed and we could likely shorten this to 63 byte...

(COMMA_COMPOUND_SENTENCE)


93-93: Correct the article usage.

The phrase "a bytes address" is incorrect. It should be "a byte address" or "bytes address".

Tools
LanguageTool

[grammar] ~93-~93: The plural noun “bytes” cannot be used with the article “a”. Did you mean “a byte” or “bytes”?
Context: ... an account handler. In addition to a bytes address, modules also have a hu...

(A_NNS)


188-190: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...ddress, new handler id, migration data)`: migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ...ew handler id, init data, destroy data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~190-~190: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

aaronc and others added 3 commits August 16, 2024 11:14
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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, codebase verification and nitpick comments (3)
docs/rfc/rfc-003-crosslang.md (3)

12-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

Apply this diff to add variety:

1. projects that aim to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
2. projects that seek to integrate multiple programming languages and virtual machine environments into an integrated application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


11-11: Add a comma after 'Recently'.

Consider adding a comma after 'Recently' for better clarity.

Apply this diff:

- Recently we have identified the following key target user groups:
+ Recently, we have identified the following key target user groups:

29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

Apply this diff:

- may vary significantly, however, the essence should remain more or less the same in most coding environments.
+ may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between a01f149 and bacedfb.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[style] ~37-~37: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...accounts** * an owner address which is able to migrate the account handler, destroy th...

(BE_ABLE_TO)


[uncategorized] ~150-~150: Possible missing comma found.
Context: ...each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~150-~150: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~161-~161: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~164-~164: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~165-~165: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~173-~173: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...the account itself. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...ddress, new handler id, migration data)`: migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...ew handler id, init data, destroy data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~184-~184: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. * `transfe...

(AND_THAT)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ution. * transfer(address, new_owner?): changes the account owner to the new ow...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Possible missing comma found.
Context: ...ner to the new owner. If new_owner is empty then the account has no owner and can't...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~219-~219: Possible missing comma found.
Context: ... provide more restrictive authorization restrictions even though at a framework level the au...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~219-~219: Consider adding a comma after this introductory phrase.
Context: ...restrictions even though at a framework level the authorization is very broad. In or...

(AS_A_NN_COMMA)


[style] ~220-~220: Consider a shorter alternative to avoid wordiness.
Context: ...level the authorization is very broad. In order to allow transaction processing modules to...

(IN_ORDER_TO_PREMIUM)

Markdownlint
docs/rfc/rfc-003-crosslang.md

146-146: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


147-147: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


148-148: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


96-96: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


97-97: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-35: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


47-47: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


61-61: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


95-95: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


106-106: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


126-126: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


146-146: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


163-163: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


175-175: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


181-181: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


214-214: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Outside diff range, codebase verification and nitpick comments (8)
docs/rfc/rfc-003-crosslang.md (8)

12-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

Apply this diff to add variety:

1. projects that aim to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
2. projects that seek to integrate multiple programming languages and virtual machine environments into an integrated application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

Apply this diff for clarity:

- may vary significantly, however, the essence should remain more or less the same in most coding environments.
+ may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


37-37: Consider using 'can' instead of 'able to'.

As a shorter alternative for 'able to', consider using "can" for conciseness.

Apply this diff for clarity:

- an **owner** address which is able to migrate the account handler, destroy the account or transfer that capability
+ an **owner** address which can migrate the account handler, destroy the account, or transfer that capability
Tools
LanguageTool

[style] ~37-~37: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...accounts** * an owner address which is able to migrate the account handler, destroy th...

(BE_ABLE_TO)


69-69: Add a comma for clarity.

Consider adding a comma for better readability.

Apply this diff for clarity:

- Details on message responses and errors as well as the packet format for **message requests** will be described later.
+ Details on message responses and errors, as well as the packet format for **message requests**, will be described later.
Tools
LanguageTool

[uncategorized] ~69-~69: Possible missing comma found.
Context: ...error. Details on message responses and errors as well as the packet format for **mess...

(AI_HYDRA_LEO_MISSING_COMMA)


151-151: Add a comma for clarity.

Consider adding a comma for better readability.

Apply this diff for clarity:

- each **account handler**'s metadata can define which get passed to the **state handler** when an account is created.
+ each **account handler**'s metadata can define, which get passed to the **state handler** when an account is created.
Tools
LanguageTool

[uncategorized] ~151-~151: Possible missing comma found.
Context: ...each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~151-~151: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


174-174: Consider a shorter alternative to avoid wordiness.

Consider a shorter alternative to avoid wordiness.

Apply this diff for conciseness:

- In order to manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
+ To manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
Tools
LanguageTool

[style] ~174-~174: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


212-212: Add a missing article.

Add the missing article "a" for clarity.

Apply this diff for clarity:

- Authorization will be ensured by the **hypervisor** using private context token 
+ Authorization will be ensured by the **hypervisor** using a private context token 
Tools
LanguageTool

[uncategorized] ~212-~212: Possible missing article found.
Context: ... be ensured by the hypervisor using private context token set within the **message...

(AI_HYDRA_LEO_MISSING_A)


225-225: Add a comma for clarity.

Consider adding a comma for better readability.

Apply this diff for clarity:

- provide more restrictive authorization restrictions even though at a framework level the authorization is very broad.
+ provide more restrictive authorization restrictions, even though at a framework level the authorization is very broad.
Tools
LanguageTool

[uncategorized] ~225-~225: Possible missing comma found.
Context: ... provide more restrictive authorization restrictions even though at a framework level the au...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~225-~225: Consider adding a comma after this introductory phrase.
Context: ...restrictions even though at a framework level the authorization is very broad. Grante...

(AS_A_NN_COMMA)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between bacedfb and 7961606.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[style] ~37-~37: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...accounts** * an owner address which is able to migrate the account handler, destroy th...

(BE_ABLE_TO)


[uncategorized] ~69-~69: Possible missing comma found.
Context: ...error. Details on message responses and errors as well as the packet format for **mess...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~147-~147: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~151-~151: Possible missing comma found.
Context: ...each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~151-~151: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~162-~162: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~165-~165: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~166-~166: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~174-~174: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...self. * destroy(address, destroy_data): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...er. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ew_handler_id, init_data, destroy_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~185-~185: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. * `transfe...

(AND_THAT)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...ution. * transfer(address, new_owner?): changes the account owner to the new ow...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Possible missing comma found.
Context: ...ner to the new owner. If new_owner is empty then the account has no owner and can't...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: .... * create_temp(handler_id, init_data): creates a temporary account which exist...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~212-~212: Possible missing article found.
Context: ... be ensured by the hypervisor using private context token set within the **message...

(AI_HYDRA_LEO_MISSING_A)


[uncategorized] ~225-~225: Possible missing comma found.
Context: ... provide more restrictive authorization restrictions even though at a framework level the au...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~225-~225: Consider adding a comma after this introductory phrase.
Context: ...restrictions even though at a framework level the authorization is very broad. Grante...

(AS_A_NN_COMMA)


[uncategorized] ~226-~226: Possible missing comma found.
Context: ... grant_authorization on behalf of the granter as that would allow them to bypass any ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~231-~231: Possible missing comma found.
Context: ...a module moving coins just to require a payment which currently in the SDK is done by j...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~238-~238: Consider replacing ‘only’ with a different word to let your writing stand out.
Context: ...to create a temporary account which can only be used for the scope of the enclosing ...

(ONLY_EXCLUSIVELY_STYLE)


[style] ~239-~239: Consider a shorter alternative to avoid wordiness.
Context: ...e scope of the enclosing message call. In order to allow transaction processing modules to...

(IN_ORDER_TO_PREMIUM)

Markdownlint
docs/rfc/rfc-003-crosslang.md

146-146: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


147-147: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


148-148: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


149-149: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


96-96: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


97-97: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-35: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


47-47: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


61-61: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


95-95: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


106-106: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


126-126: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


146-146: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


164-164: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


176-176: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


182-182: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


219-219: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (5)
docs/rfc/rfc-003-crosslang.md (5)

88-88: Correct the article usage.

The phrase "a byte address" is incorrect. It should be "a bytes address" or "byte address".


95-99: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
Markdownlint

96-96: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


97-97: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


95-95: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


106-109: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
Markdownlint

106-106: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


164-166: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~165-~165: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~166-~166: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

164-164: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


182-187: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...self. * destroy(address, destroy_data): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...er. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ew_handler_id, init_data, destroy_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~185-~185: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. * `transfe...

(AND_THAT)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...ution. * transfer(address, new_owner?): changes the account owner to the new ow...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Possible missing comma found.
Context: ...ner to the new owner. If new_owner is empty then the account has no owner and can't...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: .... * create_temp(handler_id, init_data): creates a temporary account which exist...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

182-182: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Outside diff range, codebase verification and nitpick comments (1)
docs/rfc/rfc-003-crosslang.md (1)

201-202: Add a period after 'prefixes'.

Consider adding a period for better clarity.

Apply this diff to improve clarity:

- and must be prefixed by the `module:pre:` or `module:post:` prefixes
+ and must be prefixed by the `module:pre:` or `module:post:` prefixes.
Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 7961606 and 377a7aa.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[style] ~37-~37: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...accounts** * an owner address which is able to migrate the account handler, destroy th...

(BE_ABLE_TO)


[uncategorized] ~70-~70: Possible missing comma found.
Context: ...error. Details on message responses and errors as well as the packet format for **mess...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~148-~148: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~151-~151: Possible missing comma found.
Context: ...each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~151-~151: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~162-~162: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~165-~165: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~166-~166: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~174-~174: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...self. * destroy(address, destroy_data): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...er. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ew_handler_id, init_data, destroy_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~185-~185: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. * `transfe...

(AND_THAT)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...ution. * transfer(address, new_owner?): changes the account owner to the new ow...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Possible missing comma found.
Context: ...ner to the new owner. If new_owner is empty then the account has no owner and can't...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint
docs/rfc/rfc-003-crosslang.md

147-147: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


148-148: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


149-149: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


97-97: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-35: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


47-47: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


61-61: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


96-96: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


107-107: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


127-127: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


147-147: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


164-164: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


176-176: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


182-182: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


247-247: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (6)
docs/rfc/rfc-003-crosslang.md (6)

12-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


87-87: Correct the article usage.

The phrase "a bytes address" is incorrect. It should be "a byte address" or "bytes address".


183-186: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...self. * destroy(address, destroy_data): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...er. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ew_handler_id, init_data, destroy_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~185-~185: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. * `transfe...

(AND_THAT)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...ution. * transfer(address, new_owner?): changes the account owner to the new ow...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Possible missing comma found.
Context: ...ner to the new owner. If new_owner is empty then the account has no owner and can't...

(AI_HYDRA_LEO_MISSING_COMMA)


267-275: Complete the 'Consequences' section.

The section contains TODOs for positive, negative, and neutral consequences. Consider completing this section to provide a comprehensive view of the proposal's impact.


151-151: Add a comma for clarity.

Consider adding a comma for better clarity in the sentence.

Apply this diff to improve clarity:

- **state config** bytes which are sent to the **state handler** (described below) but are otherwise opaque
+ **state config** bytes, which are sent to the **state handler** (described below), but are otherwise opaque

Likely invalid or redundant comment.

Tools
LanguageTool

[uncategorized] ~151-~151: Possible missing comma found.
Context: ...each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~151-~151: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)

and they are not passed at all to `pure` methods.

### Management of Account Lifecycle with the Hypervisor

Copy link
Contributor

Choose a reason for hiding this comment

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

Consider a shorter alternative to avoid wordiness.

Consider a shorter alternative to avoid wordiness.

Apply this diff to improve clarity:

- In order to manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
+ To manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
To manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
Tools
LanguageTool

[style] ~174-~174: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)

* a 32-byte **context token**
* a `uint64` **gas limit**

The handler can then execute some code and return a response or an error. Details on message responses and errors as well as the packet format for **message requests** will be described later.
Copy link
Contributor

Choose a reason for hiding this comment

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

Add a comma for clarity.

Consider adding a comma for better clarity in the sentence.

Apply this diff to improve clarity:

- Details on message responses and errors as well as the packet format for **message requests** will be described later.
+ Details on message responses and errors, as well as the packet format for **message requests**, will be described later.
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
The handler can then execute some code and return a response or an error. Details on message responses and errors as well as the packet format for **message requests** will be described later.
The handler can then execute some code and return a response or an error. Details on message responses and errors, as well as the packet format for **message requests**, will be described later.
Tools
LanguageTool

[uncategorized] ~70-~70: Possible missing comma found.
Context: ...error. Details on message responses and errors as well as the packet format for **mess...

(AI_HYDRA_LEO_MISSING_COMMA)

Comment on lines +97 to +98
* **volatility** (described below)
* optional additional bytes, which are not standardized at this level
Copy link
Contributor

Choose a reason for hiding this comment

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

Fix list indentation.

The list items should be consistently indented.

Apply this diff to fix the indentation:

* a list of the **message names** it defines **message handlers** and for each of these, its:
-  * **volatility** (described below)
-  * optional additional bytes, which are not standardized at this level
+    * **volatility** (described below)
+    * optional additional bytes, which are not standardized at this level
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
* **volatility** (described below)
* optional additional bytes, which are not standardized at this level
* a list of the **message names** it defines **message handlers** and for each of these, its:
* **volatility** (described below)
* optional additional bytes, which are not standardized at this level
Tools
Markdownlint

97-97: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)

An **account** is defined as having:
* a unique **address**
* an **account handler** which is some code which can process **messages** and send **messages** to other **accounts**
* an **owner** address which is able to migrate the account handler, destroy the account or transfer that capability
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider using 'can' instead of 'able to'.

As a shorter alternative for ‘able to’, consider using “can”.

Apply this diff to improve clarity:

* an **owner** address which is able to migrate the account handler, destroy the account or transfer that capability
+ * an **owner** address which can migrate the account handler, destroy the account, or transfer that capability
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
* an **owner** address which is able to migrate the account handler, destroy the account or transfer that capability
* an **owner** address which can migrate the account handler, destroy the account, or transfer that capability
Tools
LanguageTool

[style] ~37-~37: As a shorter alternative for ‘able to’, consider using “can”.
Context: ...accounts** * an owner address which is able to migrate the account handler, destroy th...

(BE_ABLE_TO)

It is possible that state **modules** expose methods for creating new **state tokens**
for nesting transactions.

**Volatility** describes a message handler's behavior with respect to state and side effects.
Copy link
Contributor

Choose a reason for hiding this comment

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

Simplify the phrase 'with respect to'.

‘With respect to’ might be wordy. Consider a shorter alternative.

Apply this diff to simplify the phrase:

- describes a message handler's behavior with respect to state and side effects.
+ describes a message handler's behavior regarding state and side effects.
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
**Volatility** describes a message handler's behavior with respect to state and side effects.
**Volatility** describes a message handler's behavior regarding state and side effects.
Tools
LanguageTool

[style] ~162-~162: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)

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 377a7aa and 1672901.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~68-~68: Possible missing comma found.
Context: ...error. Details on message responses and errors as well as the packet format for **mess...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~106-~106: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~145-~145: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~148-~148: Possible missing comma found.
Context: ...each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~148-~148: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~159-~159: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~162-~162: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~163-~163: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~171-~171: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~180-~180: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~181-~181: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~182-~182: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint
docs/rfc/rfc-003-crosslang.md

144-144: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


145-145: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


146-146: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


95-95: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


96-96: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-35: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


46-46: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


60-60: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


94-94: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


105-105: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


124-124: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


144-144: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


161-161: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


173-173: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


179-179: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


243-243: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (8)
docs/rfc/rfc-003-crosslang.md (8)

12-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


68-68: Add a comma for clarity.

Consider adding a comma for better clarity in the sentence.

Tools
LanguageTool

[uncategorized] ~68-~68: Possible missing comma found.
Context: ...error. Details on message responses and errors as well as the packet format for **mess...

(AI_HYDRA_LEO_MISSING_COMMA)


95-96: Fix list indentation.

The list items should be consistently indented.

Tools
Markdownlint

95-95: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


96-96: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


106-106: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~106-~106: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


162-163: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~162-~162: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~163-~163: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


180-182: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Tools
LanguageTool

[uncategorized] ~180-~180: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~181-~181: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~182-~182: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)


263-271: Complete the 'Consequences' section.

The section contains TODOs for positive, negative, and neutral consequences. Consider completing this section to provide a comprehensive view of the proposal's impact.

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, codebase verification and nitpick comments (6)
docs/rfc/rfc-003-crosslang.md (6)

12-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

- 1. projects that want to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
- 2. projects that want to integrate multiple programming languages and virtual machine environments into an integrated application
+ 1. projects that aim to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
+ 2. projects seeking to integrate multiple programming languages and virtual machine environments into an integrated application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

- may vary significantly, however, the essence should remain more or less the same in most coding environments.
+ may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


97-99: Fix list indentation.

The list items should be consistently indented.

* a list of the **message names** it defines **message handlers** and for each of these, its:
-  * **volatility** (described below)
-  * optional additional bytes, which are not standardized at this level
+    * **volatility** (described below)
+    * optional additional bytes, which are not standardized at this level
Tools
Markdownlint

98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


97-97: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


147-149: Fix list style.

The list items should use a consistent style.

- `create(account address, state config)`: creates a new account state with the specified address and **state config**.
- `migrate(account address, new state config)`: migrates the account state with the specified address to a new state config
- `destroy(account address)`: destroys the account state with the specified address
+ * `create(account address, state config)`: creates a new account state with the specified address and **state config**.
+ * `migrate(account address, new state config)`: migrates the account state with the specified address to a new state config
+ * `destroy(account address)`: destroys the account state with the specified address
Tools
LanguageTool

[uncategorized] ~148-~148: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

147-147: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


148-148: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


149-149: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


147-147: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


162-162: Simplify the phrase 'with respect to'.

‘With respect to’ might be wordy. Consider a shorter alternative.

- describes a message handler's behavior with respect to state and side effects.
+ describes a message handler's behavior regarding state and side effects.
Tools
LanguageTool

[style] ~162-~162: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


182-185: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

- * `create(handler_id, init_data, address?)`: creates a new account in the specified code environment with the specified handler id and optional pre-defined address (if not provided, a new address is generated). The `on_create` message is called if it is implemented by the account.
- * `destroy(address)`: deletes the account with the specified address. `destroy` can only be called by the account itself.
- * `migrate(address, new_handler_id)`: migrates the account with the specified address to the new account handler. The `on_migrate` message must be implemented by the new code and must not return an error for migration to succeed. `migrate` can only be called by the account itself.
- * `force_migrate(address, new_handler_id, init_data)`: this can be used when no `on_migrate` handler can perform a proper migration to the new account handler. In this case, the old account state will be destroyed, and `on_create` will be called on the new code. This is a destructive operation and should be used with caution.
+ * `create(handler_id, init_data, address?)`: Creates a new account in the specified code environment with the specified handler id and optional pre-defined address (if not provided, a new address is generated). The `on_create` message is called if it is implemented by the account.
+ * `destroy(address)`: Deletes the account with the specified address. `destroy` can only be called by the account itself.
+ * `migrate(address, new_handler_id)`: Migrates the account with the specified address to the new account handler. The `on_migrate` message must be implemented by the new code and must not return an error for migration to succeed. `migrate` can only be called by the account itself.
+ * `force_migrate(address, new_handler_id, init_data)`: This can be used when no `on_migrate` handler can perform a proper migration to the new account handler. In this case, the old account state will be destroyed, and `on_create` will be called on the new code. This is a destructive operation and should be used with caution.
Tools
LanguageTool

[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~185-~185: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint

182-182: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 1672901 and b3799f1.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~109-~109: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~148-~148: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~151-~151: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...t handler**'s metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~158-~158: For conciseness, try rephrasing this sentence.
Context: ...rdinate around the usage of this token. It is possible that state modules expose methods for creating new **state tokens...

(MAY_MIGHT_BE)


[style] ~162-~162: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~165-~165: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~166-~166: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~174-~174: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~185-~185: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint
docs/rfc/rfc-003-crosslang.md

147-147: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


148-148: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


149-149: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


38-38: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-49: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


63-63: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


97-97: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


108-108: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


127-127: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


147-147: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


164-164: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


176-176: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


182-182: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


246-246: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (12)
docs/rfc/rfc-003-crosslang.md (12)

23-34: Well-structured proposal section.

The proposal section is clear and well-structured, effectively outlining the conceptual model.

Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


35-40: Clear definition of account components.

The section provides a clear and concise definition of an account and its components.

Tools
Markdownlint

38-38: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


41-45: Clear definition of address structure.

The section provides a clear and concise definition of the address structure.


46-56: Clear definition of message components.

The section provides a clear and concise definition of a message and its components.

Tools
Markdownlint

49-49: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


58-75: Clear definition of account handler responsibilities.

The section provides a clear and concise definition of the account handler and its responsibilities.

Tools
Markdownlint

63-63: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


77-92: Clear definition of modules and module messages.

The section provides a clear and concise definition of modules and module messages.


103-110: Clear definition of account lifecycle.

The section provides a clear and concise definition of the account lifecycle and related handlers.

Tools
LanguageTool

[uncategorized] ~109-~109: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

108-108: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


111-139: Clear definition of hypervisor and virtual machines.

The section provides a clear and concise definition of the hypervisor and virtual machines.

Tools
Markdownlint

127-127: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


190-204: Clear definition of module lifecycle and messages.

The section provides a clear and concise definition of module lifecycle and module messages.


205-219: Clear definition of authorization and delegated execution.

The section provides a clear and concise definition of authorization and delegated execution mechanisms.


221-234: Clear definition of message data and packet specifications.

The section provides a clear and concise definition of message data and packet specifications.


236-250: Clear outline of further specifications.

The section provides a clear and concise outline of further specifications and intentions.

Tools
Markdownlint

246-246: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

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, codebase verification and nitpick comments (9)
docs/rfc/rfc-003-crosslang.md (9)

12-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

Apply this diff to add variety:

1. projects that aim to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
2. projects that seek to integrate multiple programming languages and virtual machine environments into an integrated application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

Apply this diff:

- may vary significantly, however, the essence should remain more or less the same in most coding environments.
+ may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


38-39: Add blank lines around lists.

Lists should be surrounded by blank lines for better readability.

Apply this diff:

An **account** is defined as having:

* a unique **address**
* an **account handler** which is some code which can process **messages** and send **messages** to other **accounts**
Tools
Markdownlint

38-38: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-50: Add blank lines around lists.

Lists should be surrounded by blank lines for better readability.

Apply this diff:

A **message** is defined as a tuple of:

* a **message name** 
* and **message data**
Tools
Markdownlint

49-49: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


97-99: Fix list indentation.

The list items should be consistently indented.

Apply this diff to fix the indentation:

* a list of the **message names** it defines **message handlers** and for each of these, its:
  * **volatility** (described below)
  * optional additional bytes, which are not standardized at this level
Tools
Markdownlint

98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


97-97: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


164-164: Simplify the phrase 'with respect to'.

‘With respect to’ might be wordy. Consider a shorter alternative.

Apply this diff to simplify the phrase:

- describes a message handler's behavior with respect to state and side effects.
+ describes a message handler's behavior regarding state and side effects.
Tools
LanguageTool

[style] ~164-~164: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


166-168: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Apply this diff:

* `volatile`: The handler can have side effects and send `volatile`, `readonly`, or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: The handler cannot cause side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: The handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
Tools
LanguageTool

[uncategorized] ~167-~167: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~168-~168: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

166-166: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


176-176: Consider a shorter alternative to avoid wordiness.

Consider a shorter alternative to avoid wordiness.

Apply this diff to improve clarity:

- In order to manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
+ To manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
Tools
LanguageTool

[style] ~176-~176: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


184-187: Ensure consistent list formatting.

The list items should be consistently formatted with proper punctuation.

Apply this diff:

* `create(handler_id, init_data, address?)`: Creates a new account in the specified code environment with the specified handler id and optional pre-defined address (if not provided, a new address is generated). The `on_create` message is called if it is implemented by the account.
* `destroy(address)`: Deletes the account with the specified address. `destroy` can only be called by the account itself.
* `migrate(address, new_handler_id)`: Migrates the account with the specified address to the new account handler. The `on_migrate` message must be implemented by the new code and must not return an error for migration to succeed. `migrate` can only be called by the account itself.
* `force_migrate(address, new_handler_id, init_data)`: This can be used when no `on_migrate` handler can perform a proper migration to the new account handler. In this case, the old account state will be destroyed, and `on_create` will be called on the new code. This is a destructive operation and should be used with caution.
Tools
LanguageTool

[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~187-~187: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint

184-184: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b3799f1 and ec83c7c.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~109-~109: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~153-~153: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...unt handler's metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~160-~160: For conciseness, try rephrasing this sentence.
Context: ...rdinate around the usage of this token. It is possible that state modules expose methods for creating new **state tokens...

(MAY_MIGHT_BE)


[style] ~164-~164: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~167-~167: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~168-~168: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~176-~176: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...ted by the account. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~187-~187: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint
docs/rfc/rfc-003-crosslang.md

149-149: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


150-150: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


151-151: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


38-38: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-49: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


67-67: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


97-97: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


108-108: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


127-127: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


149-149: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


166-166: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


178-178: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


184-184: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


248-248: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (2)
docs/rfc/rfc-003-crosslang.md (2)

207-221: Section approved.

The "Authorization and Delegated Execution" section is clear and well-written.


223-237: Section approved.

The "Message Data and Packet Specification" section is clear and well-written.

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, codebase verification and nitpick comments (9)
docs/rfc/rfc-003-crosslang.md (9)

11-11: Add a comma after 'Recently'.

Consider adding a comma after 'Recently' for better clarity.

- Recently we have identified the following key target user groups:
+ Recently, we have identified the following key target user groups:

13-14: Rephrase for variety.

The phrase "projects that want to" is repeated. Consider rephrasing for variety.

1. projects that aim to primarily target a single programming language and virtual machine environment besides Golang but who still want to use Cosmos SDK internals for consensus and storage
2. projects that seek to integrate multiple programming languages and virtual machine environments into an integrated application
Tools
LanguageTool

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)

Markdownlint

13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-30: Separate 'however' with a semicolon or period.

The word "however" is used incorrectly as a conjunction. It should be separated by a semicolon or a period.

- may vary significantly, however, the essence should remain more or less the same in most coding environments.
+ may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


88-88: Add a comma for clarity.

Consider adding a comma for better clarity in the sentence.

- A **module** is thus instance an instance of a **module handler** with a specific address 
+ A **module** is thus an instance of a **module handler** with a specific address, 
Tools
LanguageTool

[uncategorized] ~88-~88: Possible missing comma found.
Context: ...of a module handler with a specific address in the same way that an account is an ...

(AI_HYDRA_LEO_MISSING_COMMA)


109-109: Fix list indentation.

The list items should be consistently indented.

* a list of the **message names** it defines **message handlers** and for each of these, its:
-  * **volatility** (described below)
-  * optional additional bytes, which are not standardized at this level
+    * **volatility** (described below)
+    * optional additional bytes, which are not standardized at this level
Tools
LanguageTool

[uncategorized] ~109-~109: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


150-150: Fix list style.

The list items should be consistently formatted with proper punctuation.

- `create(account address, state config)`: creates a new account state with the specified address and **state config**.
- `migrate(account address, new state config)`: migrates the account state with the specified address to a new state config
- `destroy(account address)`: destroys the account state with the specified address
+ * `create(account address, state config)`: creates a new account state with the specified address and **state config**.
+ * `migrate(account address, new state config)`: migrates the account state with the specified address to a new state config
+ * `destroy(account address)`: destroys the account state with the specified address
Tools
LanguageTool

[uncategorized] ~150-~150: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

150-150: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


153-153: Add a comma for clarity.

Consider adding a comma for better clarity in the sentence.

- **State config** are optional bytes that each account handler's metadata can define which get passed to the **state handler** when an account is created.
+ **State config** are optional bytes that each account handler's metadata can define, which get passed to the **state handler** when an account is created.
Tools
LanguageTool

[uncategorized] ~153-~153: Possible missing comma found.
Context: ...hat each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~153-~153: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...unt handler's metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


164-164: Simplify the phrase 'with respect to'.

‘With respect to’ might be wordy. Consider a shorter alternative.

- describes a message handler's behavior with respect to state and side effects.
+ describes a message handler's behavior regarding state and side effects.
Tools
LanguageTool

[style] ~164-~164: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


176-176: Consider a shorter alternative to avoid wordiness.

Consider a shorter alternative to avoid wordiness.

- In order to manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
+ To manage **accounts** and their mapping to **account handlers**, the **hypervisor** contains stateful mappings for:
Tools
LanguageTool

[style] ~176-~176: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between ec83c7c and c98c8a8.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~29-~29: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~88-~88: Possible missing comma found.
Context: ...of a module handler with a specific address in the same way that an account is an ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~109-~109: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~150-~150: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~153-~153: Possible missing comma found.
Context: ...hat each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~153-~153: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...unt handler's metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~160-~160: For conciseness, try rephrasing this sentence.
Context: ...rdinate around the usage of this token. It is possible that state modules expose methods for creating new **state tokens...

(MAY_MIGHT_BE)


[style] ~164-~164: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~167-~167: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~168-~168: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~176-~176: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: ...dictable addresses. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~187-~187: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint
docs/rfc/rfc-003-crosslang.md

149-149: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


150-150: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


151-151: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


98-98: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


38-38: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-49: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


67-67: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


97-97: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


108-108: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


127-127: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


149-149: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


166-166: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


178-178: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


184-184: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


248-248: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (5)
docs/rfc/rfc-003-crosslang.md (5)

3-6: LGTM!

The Changelog section is correctly formatted.

The code changes are approved.


192-206: LGTM!

The Module Lifecycle & Module Messages section is well-written.

The code changes are approved.


207-221: LGTM!

The Authorization and Delegated Execution section is well-written.

The code changes are approved.


223-237: LGTM!

The Message Data and Packet Specification section is well-written.

The code changes are approved.


238-252: LGTM!

The Further Specifications section is well-written.

The code changes are approved.

Tools
Markdownlint

248-248: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Comment on lines 266 to 276
### Positive

TODO

### Negative

TODO

### Neutral

TODO
Copy link
Contributor

Choose a reason for hiding this comment

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

Complete the 'Consequences' section.

The section contains TODOs for positive, negative, and neutral consequences. Consider completing this section to provide a comprehensive view of the proposal's impact.

Would you like me to help draft the content for this section or open a GitHub issue to track this task?

Comment on lines 278 to 280
### References

## Discussion
Copy link
Contributor

Choose a reason for hiding this comment

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

Complete the 'References' section.

The section is currently empty. Consider adding relevant references to provide a comprehensive view of the proposal's background and related work.

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.

ACK.

Looking forward to hear how will that Message data will be defined however.
Could we mention x/account somewhere as well and how this replicates some of its features?

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 c98c8a8 and 28e13f3.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~36-~36: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~116-~116: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~157-~157: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~160-~160: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...unt handler's metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~167-~167: For conciseness, try rephrasing this sentence.
Context: ...rdinate around the usage of this token. It is possible that state modules expose methods for creating new **state tokens...

(MAY_MIGHT_BE)


[style] ~171-~171: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~174-~174: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~175-~175: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~183-~183: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...dictable addresses. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~194-~194: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~194-~194: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)

Markdownlint
docs/rfc/rfc-003-crosslang.md

24-24: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


25-25: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


156-156: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


157-157: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


158-158: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


272-272: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


273-273: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


274-274: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


105-105: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


106-106: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


24-24: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


45-45: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


74-74: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


104-104: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


115-115: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


134-134: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


156-156: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


173-173: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


185-185: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


191-191: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


286-286: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Additional comments not posted (1)
docs/rfc/rfc-003-crosslang.md (1)

9-11: Clarify the target user groups.

The document mentions key target user groups but lists "Recently we have identified the following key target user groups:" twice in lines 11 and 12. This repetition could be a typographical error and should be corrected for clarity.

Consider removing the duplicate line to improve the readability of the document:

- Recently we have identified the following key target user groups:

Likely invalid or redundant comment.

Comment on lines 260 to 268
TODO

### Negative

TODO

### Neutral

TODO
Copy link
Contributor

Choose a reason for hiding this comment

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

Complete the 'Consequences' section.

The 'Consequences' section is marked with TODOs for positive, negative, and neutral impacts but lacks content.

Consider completing this section to provide a comprehensive view of the proposal's impact. Would you like assistance in drafting this content or should I open a GitHub issue to track this task?

@aaronc
Copy link
Member Author

aaronc commented Aug 30, 2024

Looking forward to hear how will that Message data will be defined however. Could we mention x/account somewhere as well and how this replicates some of its features?

I added references to x/accounts and other previous design documents.

I also added consequences and a decision section, which basically says we intend to move forward with this approach (which is my read on the discussion).

Planning to work on an update to this RFC with message data specs after this first draft is merged.

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 28e13f3 and a6bf7fc.

Files selected for processing (1)
  • docs/rfc/rfc-003-crosslang.md (1 hunks)
Additional context used
Path-based instructions (1)
docs/rfc/rfc-003-crosslang.md (1)

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

LanguageTool
docs/rfc/rfc-003-crosslang.md

[style] ~14-~14: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... consensus and storage 2. projects that want to integrate multiple programming language...

(REP_WANT_TO_VB)


[typographical] ~36-~36: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)


[uncategorized] ~39-~39: Possible missing comma found.
Context: ...his specification is intentionally kept minimal as it is always easier to add features ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~95-~95: Possible missing comma found.
Context: ...of a module handler with a specific address in the same way that an account is an ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~116-~116: Loose punctuation mark.
Context: ...rary initialization data. * on_migrate: called when an account is migrated to a...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~157-~157: Loose punctuation mark.
Context: ...rate(account address, new state config)`: migrates the account state with the spe...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~160-~160: Possible missing comma found.
Context: ...hat each account handler's metadata can define which get passed to the **state handler...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~160-~160: The verb “get” can be informal. Consider replacing it with a form of “to be”.
Context: ...unt handler's metadata can define which get passed to the state handler when an accoun...

(GET_USED_ARE_USED)


[style] ~167-~167: For conciseness, try rephrasing this sentence.
Context: ...rdinate around the usage of this token. It is possible that state modules expose methods for creating new **state tokens...

(MAY_MIGHT_BE)


[style] ~171-~171: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ... describes a message handler's behavior with respect to state and side effects. It is an enum v...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[uncategorized] ~174-~174: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~175-~175: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~183-~183: Consider a shorter alternative to avoid wordiness.
Context: ... Account Lifecycle with the Hypervisor In order to manage accounts and their mapping t...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...dictable addresses. * destroy(address): deletes the account with the specified ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ...lf. * migrate(address, new_handler_id): migrates the account with the specified...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~194-~194: Loose punctuation mark.
Context: ...ate(address, new_handler_id, init_data): this can be used when no on_migrate` h...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~194-~194: Consider replacing this word to strengthen your wording.
Context: ...w code. This is a destructive operation and should be used with caution. The **hyp...

(AND_THAT)


[uncategorized] ~270-~270: Possible missing comma found.
Context: ...ler will be slower than a golang method call as in the existing keeper paradigm. Ho...

(AI_HYDRA_LEO_MISSING_COMMA)

Markdownlint
docs/rfc/rfc-003-crosslang.md

24-24: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


25-25: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


156-156: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


157-157: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


158-158: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


279-279: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


280-280: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


281-281: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


105-105: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


106-106: Expected: 4; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


24-24: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


45-45: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


74-74: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


104-104: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


115-115: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


134-134: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


156-156: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


173-173: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


185-185: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


191-191: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


293-293: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Comment on lines +36 to +37
The formal details of how these concepts are represented in a specific coding environment may vary significantly,
however, the essence should remain more or less the same in most coding environments.
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct the usage of 'however'.

The word "however" is used as a conjunction in line 37, which is grammatically incorrect. It should be preceded by a semicolon or a period.

Apply this diff to correct the grammar:

- however, the essence should remain more or less the same in most coding environments.
+ ; however, the essence should remain more or less the same in most coding environments.
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
The formal details of how these concepts are represented in a specific coding environment may vary significantly,
however, the essence should remain more or less the same in most coding environments.
The formal details of how these concepts are represented in a specific coding environment may vary significantly; however, the essence should remain more or less the same in most coding environments.
Tools
LanguageTool

[typographical] ~36-~36: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...oding environment may vary significantly, however, the essence should remain more or less ...

(HOWEVER_SENTENCE)

Comment on lines +9 to +11
The Cosmos SDK has historically been a Golang only framework for building blockchain applications.
However, discussions about supporting additional programming languages and virtual machine environments
have been underway since early 2023. Recently, we have identified the following key target user groups:
Copy link
Contributor

Choose a reason for hiding this comment

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

Rephrase for clarity and variety.

The phrase "Recently, we have identified the following key target user groups:" is repeated in lines 11 and 12, which is redundant and affects the readability of the document. Consider rephrasing or removing the repetition.

Suggested change:

- Recently, we have identified the following key target user groups:
- Recently we have identified the following key target user groups:
+ Recently, we have identified the following key target user groups:

Committable suggestion was skipped due to low confidence.

Comment on lines +277 to +281
### References

- [Abandoned RFC 003: Language-independent Module Semantics & ABI](https://github.com/cosmos/cosmos-sdk/pull/15410)
- [RFC 002: Zero Copy Encoding](./rfc-002-zero-copy-encoding.md)
- [RFC 004: Accounts](./rfc-004-accounts.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure consistent list formatting in the 'References' section.

The list items in the 'References' section are not consistently formatted.

Apply this diff to correct the list formatting:

- - [Abandoned RFC 003: Language-independent Module Semantics & ABI](https://github.com/cosmos/cosmos-sdk/pull/15410)
- - [RFC 002: Zero Copy Encoding](./rfc-002-zero-copy-encoding.md) 
- - [RFC 004: Accounts](./rfc-004-accounts.md)
+ * [Abandoned RFC 003: Language-independent Module Semantics & ABI](https://github.com/cosmos/cosmos-sdk/pull/15410)
+ * [RFC 002: Zero Copy Encoding](./rfc-002-zero-copy-encoding.md) 
+ * [RFC 004: Accounts](./rfc-004-accounts.md)
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
### References
- [Abandoned RFC 003: Language-independent Module Semantics & ABI](https://github.com/cosmos/cosmos-sdk/pull/15410)
- [RFC 002: Zero Copy Encoding](./rfc-002-zero-copy-encoding.md)
- [RFC 004: Accounts](./rfc-004-accounts.md)
### References
* [Abandoned RFC 003: Language-independent Module Semantics & ABI](https://github.com/cosmos/cosmos-sdk/pull/15410)
* [RFC 002: Zero Copy Encoding](./rfc-002-zero-copy-encoding.md)
* [RFC 004: Accounts](./rfc-004-accounts.md)
Tools
Markdownlint

279-279: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


280-280: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


281-281: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)

Comment on lines +173 to +175
* `volatile`: the handler can have side effects and send `volatile`, `radonly` or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: the handler cannot cause effects side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: the handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct list punctuation and formatting.

The list items under the "Volatility" section are not consistently formatted, and there are typographical errors in the descriptions.

Apply this diff to correct the punctuation and improve the list formatting:

- * `volatile`: the handler can have side effects and send `volatile`, `radonly` or `pure` messages to other accounts. Such handlers are expected to both read and write state.
- * `readonly`: the handler cannot cause effects side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
- * `pure`: the handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
+ * `volatile`: The handler can have side effects and send `volatile`, `readonly`, or `pure` messages to other accounts. Such handlers are expected to both read and write state.
+ * `readonly`: The handler cannot cause side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
+ * `pure`: The handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
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
* `volatile`: the handler can have side effects and send `volatile`, `radonly` or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: the handler cannot cause effects side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: the handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
* `volatile`: The handler can have side effects and send `volatile`, `readonly`, or `pure` messages to other accounts. Such handlers are expected to both read and write state.
* `readonly`: The handler cannot cause side effects and can only send `readonly` or `pure` messages to other accounts. Such handlers are expected to only read state.
* `pure`: The handler cannot cause any side effects and can only call other pure handlers. Such handlers are expected to neither read nor write state.
Tools
LanguageTool

[uncategorized] ~174-~174: Loose punctuation mark.
Context: ... both read and write state. * readonly: the handler cannot cause effects side e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~175-~175: Loose punctuation mark.
Context: ...re expected to only read state. * pure: the handler cannot cause any side effec...

(UNLIKELY_OPENING_PUNCTUATION)

Markdownlint

173-173: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

@aaronc
Copy link
Member Author

aaronc commented Sep 2, 2024

Anybody know what's up with the markdown link checker? The report is long and any errors are non obvious

@julienrbrt
Copy link
Member

Anybody know what's up with the markdown link checker? The report is long and any errors are non obvious

It hasn't been introduced here for sure. I think it was broken for a while. Just broken links basically.

@julienrbrt
Copy link
Member

"ERROR: 4 dead links found!"

Something to fix in the doc focus week for sure.

@aaronc aaronc added this pull request to the merge queue Sep 2, 2024
Merged via the queue into main with commit 5fb584a Sep 2, 2024
69 of 70 checks passed
@aaronc aaronc deleted the aaronc/rfc-crosslang branch September 2, 2024 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants