-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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(x/accounts/defaults/lockup): Add tutorial document #22168
Conversation
📝 Walkthrough📝 WalkthroughWalkthroughThe changes introduce an updated documentation file, Changes
Possibly related PRs
Suggested reviewers
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? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (16)
x/accounts/defaults/lockup/TUTORIAL.md (16)
1-13
: Add an introductory paragraph for contextThe tutorial starts abruptly without providing context about lockup accounts. Consider adding a brief introductory paragraph explaining what lockup accounts are and their purpose in the Cosmos SDK. This will help readers understand the importance of the tutorial and set the stage for the following sections.
🧰 Tools
🪛 LanguageTool
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
15-22
: Improve clarity and fix grammatical issues in the Setup sectionConsider the following improvements:
- Add a comma after "To create a lockup account" for better readability.
- Clarify the purpose of each wallet (granter and owner) in the context of lockup accounts.
- Consider adding a brief explanation of what
simd
is for readers unfamiliar with the tool.Here's a suggested revision:
## Setup To create a lockup account, we need 2 wallets: one for the granter (who will allocate funds to the lockup account) and one for the owner (who will manage the lockup account). You can create new wallets or use existing ones. Use the following commands to create the wallets using the `simd` command-line tool: ```bash simd keys add granter --keyring-backend test --home ./.testnets/node0/simd/ simd keys add owner --keyring-backend test --home ./.testnets/node0/simd/<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [typographical] ~17-~17: It seems that a comma is missing. Context: ...periods) ## Setup To create a lockup account we need 2 wallets (newly created or use... (IN_ORDER_TO_VB_COMMA) </blockquote></details> </details> --- `24-29`: **Improve clarity and fix grammatical issues in the Init section introduction** Consider the following improvements: 1. Fix the verb agreement in "This message depend" to "This message depends". 2. Clarify the relationship between the granter and the lockup account. Suggested revision: ```markdown ## Init The granter must have enough tokens to allocate to the lockup account during the initialization process. The owner wallet should be associated with the individual to whom the granter wants to grant the funds. To initialize a lockup account, the granter needs to craft an init message. The structure of this message depends on the type of lockup account being created.
🧰 Tools
🪛 LanguageTool
[typographical] ~25-~25: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...e ./.testnets/node0/simd/ ``` ## Init Normally the granter must have enough token to g...(RB_LY_COMMA)
[grammar] ~28-~28: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the gran...(PLURAL_VERB_AFTER_THIS)
[uncategorized] ~28-~28: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...what type of lockup account the granter want to create.
For continous, delay...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
32-44
: Improve explanation of continuous, delayed, and permanent locking accounts
- Fix the spelling of "continuous" (currently misspelled as "continous").
- Explain the differences between continuous, delayed, and permanent locking accounts.
- Clarify the purpose of each field in the JSON structure.
Consider adding explanations like this:
For continuous, delayed, and permanent locking accounts: ```go { "owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "end_time": 1495793860, "start_time": 1465793854 }
owner
: The address of the account that will manage the lockup account.end_time
: The Unix timestamp when the tokens will be fully unlocked.start_time
: The Unix timestamp when the locking period begins (only required for continuous locking accounts).Note:
start_time
is only needed for continuous locking account initialization. For delayed and permanent locking accounts, you don't need to include it. An error will be returned ifstart_time
is not provided when creating a continuous locking account.Explanation of account types:
- Continuous locking: Tokens are gradually unlocked between the start and end times.
- Delayed locking: Tokens are fully locked until the end time, then fully unlocked.
- Permanent locking: Tokens are permanently locked (no end time).
<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [uncategorized] ~43-~43: This verb may not be in the correct form. Consider using a different form for this context. Context: ... you dont have to set it in. Error will returned if `start_time` is not provided when cr... (AI_EN_LECTOR_REPLACEMENT_VERB_FORM) --- [uncategorized] ~43-~43: You might be missing the article “a” here. Context: ...art_time` is not provided when creating continous locking account* ::: </br> For perio... (AI_EN_LECTOR_MISSING_DETERMINER_A) </blockquote></details> </details> --- `48-76`: **Improve explanation of periodic locking accounts** 1. Explain the concept of periodic locking accounts. 2. Clarify the purpose of each field in the JSON structure. 3. Fix the grammatical issue in the explanation of locking duration. Consider revising this section as follows: ```markdown For periodic locking accounts: ```go { "owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "locking_periods": [ { "length": 84600, "amount": { "denom": "stake", "amount": "2000" } }, { "length": 84600, "amount": { "denom": "stake", "amount": "1500" } } ], "start_time": 1465793854 }
Explanation of fields:
owner
: The address of the account that will manage the lockup account.locking_periods
: An array of periods, each specifying a duration and an amount to be unlocked after that duration.
length
: The duration of the period in seconds.amount
: The amount and denomination of tokens to be unlocked after the period.start_time
: The Unix timestamp when the first locking period begins.The total locking duration for a periodic locking account is the sum of all period lengths specified in
locking_periods
.--- `77-92`: **Improve explanation of account initialization process** 1. Clarify the steps for initializing an account. 2. Explain the purpose of each parameter in the command. Consider revising this section as follows: ```markdown To initialize the account, follow these steps: 1. Create a JSON file (e.g., `init.json`) with the appropriate structure for your chosen lockup account type. 2. Run the following command to initialize the account: ```bash initcontents=$(cat init.json) simd tx accounts init <lockup_type> "$initcontents" --fees 5stake --chain-id $CHAINID --keyring-backend test --home ./.testnets/node0/simd/ --from granter
Replace
<lockup_type>
with one of the following options:
continuous-locking-account
delayed-locking-account
periodic-locking-account
permanent-locking-account
Explanation of command parameters:
--fees
: The transaction fee (adjust as needed).--chain-id
: The ID of the blockchain network.--keyring-backend
: The type of keyring to use for key storage.--home
: The directory containing the node's configuration files.--from
: The account (granter) initiating the transaction.If successful, check the transaction result for the newly created lockup account address. You can send tokens to this address like a normal account.
--- `96-105`: **Improve clarity and consistency in the Execution section introduction** Consider the following improvements: 1. Explain the purpose of the Execution section. 2. Clarify the relationship between `execute-msg-type-url` and `msgcontents`. 3. Fix the grammatical issue in "corresponds to lockup account available executions". Suggested revision: ```markdown ## Execution This section explains how to perform various operations on a lockup account, such as delegating tokens, undelegating, withdrawing rewards, and more. To execute a message, use the following command structure: ```bash msgcontents=$(cat msg.json) simd tx accounts execute <account_address> <execute-msg-type-url> "$msgcontents" --fees 5stake --chain-id $CHAINID --keyring-backend test --home ./.testnets/node0/simd/ --from owner
<account_address>
: The address of the lockup account.<execute-msg-type-url>
: The type of execution message (explained in each subsection below).msg.json
: A JSON file containing the specific parameters for the execution.The following subsections detail the available execution types and their corresponding
execute-msg-type-url
and JSON structures.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [uncategorized] ~105-~105: This verb does not appear to agree with the subject. Consider using a different form. Context: ...xecute-msg-type-url` and `msgcontents` corresponds to lockup account available executions,... (AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT) </blockquote></details> </details> --- `107-126`: **Improve explanation of the Delegate execution** 1. Explain the purpose of delegation in the context of lockup accounts. 2. Clarify the meaning of each field in the JSON structure. Consider revising this section as follows: ```markdown ### Delegate The Delegate execution allows the owner to delegate tokens from the lockup account to a validator. Execute message type URL: `cosmos.accounts.defaults.lockup.MsgDelegate` Example JSON file (`msg.json`): ```json { "sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "amount": { "amount": "100", "denom": "stake" } }
sender
: The address of the lockup account owner.validator_address
: The address of the validator to delegate to.amount
: The amount and denomination of tokens to delegate.Warning: The
sender
must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [grammar] ~108-~108: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard. Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ... (A_INFINITIVE) --- [uncategorized] ~125-~125: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. Context: ...} } ``` :::warning The `sender` field are the address of the owner of the lockup ... (AI_HYDRA_LEO_CPT_ARE_IS) --- [uncategorized] ~125-~125: A comma might be missing here. Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und... (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA) </blockquote></details> </details> --- `128-147`: **Improve explanation of the Undelegate execution** 1. Explain the purpose of undelegation in the context of lockup accounts. 2. Ensure consistency with the Delegate section in terms of structure and explanations. Consider revising this section as follows: ```markdown ### Undelegate The Undelegate execution allows the owner to undelegate tokens from a validator back to the lockup account. Execute message type URL: `cosmos.accounts.defaults.lockup.MsgUndelegate` Example JSON file (`msg.json`): ```json { "sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "amount": { "amount": "100", "denom": "stake" } }
sender
: The address of the lockup account owner.validator_address
: The address of the validator to undelegate from.amount
: The amount and denomination of tokens to undelegate.Warning: The
sender
must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [grammar] ~129-~129: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard. Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ... (A_INFINITIVE) --- [uncategorized] ~146-~146: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. Context: ...} } ``` :::warning The `sender` field are the address of the owner of the lockup ... (AI_HYDRA_LEO_CPT_ARE_IS) --- [uncategorized] ~146-~146: A comma might be missing here. Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit... (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA) </blockquote></details> </details> --- `149-164`: **Improve explanation of the Withdraw Reward execution** 1. Explain the purpose of withdrawing rewards in the context of lockup accounts. 2. Ensure consistency with other sections in terms of structure and explanations. Consider revising this section as follows: ```markdown ### Withdraw Reward The Withdraw Reward execution allows the owner to withdraw staking rewards earned by the lockup account from a specific validator. Execute message type URL: `cosmos.accounts.defaults.lockup.MsgWithdrawReward` Example JSON file (`msg.json`): ```json { "sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45" }
sender
: The address of the lockup account owner.validator_address
: The address of the validator from which to withdraw rewards.Warning: The
sender
must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [grammar] ~150-~150: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard. Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ... (A_INFINITIVE) --- [uncategorized] ~163-~163: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. Context: ...", } ``` :::warning The `sender` field are the address of the owner of the lockup ... (AI_HYDRA_LEO_CPT_ARE_IS) --- [uncategorized] ~163-~163: A comma might be missing here. Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit... (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA) </blockquote></details> </details> --- `166-184`: **Improve explanation of the Withdraw Unlocked Token execution** 1. Explain the purpose of withdrawing unlocked tokens in the context of lockup accounts. 2. Clarify the difference between `withdrawer` and `to_address`. 3. Explain the purpose of the `denoms` field. Consider revising this section as follows: ```markdown ### Withdraw Unlocked Token The Withdraw Unlocked Token execution allows the owner to withdraw tokens that have been unlocked from the lockup account. Execute message type URL: `cosmos.accounts.defaults.lockup.MsgWithdraw` Example JSON file (`msg.json`): ```json { "withdrawer": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", "to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx47", "denoms": ["stake"] }
withdrawer
: The address of the lockup account owner.to_address
: The address to which the unlocked tokens will be sent.denoms
: An array of token denominations to withdraw. If empty, all unlocked tokens will be withdrawn.Warning: The
withdrawer
must be the address of the owner of the lockup account. If the withdrawer is not the owner, an error will be returned.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [grammar] ~167-~167: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard. Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ... (A_INFINITIVE) --- [uncategorized] ~183-~183: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. Context: ...``` :::warning The `withdrawer` field are the address of the owner of the lockup ... (AI_HYDRA_LEO_CPT_ARE_IS) --- [uncategorized] ~183-~183: A comma might be missing here. Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen... (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA) </blockquote></details> </details> --- `186-205`: **Improve explanation of the Send Coins execution** 1. Explain the purpose of sending coins in the context of lockup accounts. 2. Ensure consistency with other sections in terms of structure and explanations. Consider revising this section as follows: ```markdown ### Send Coins The Send Coins execution allows the owner to send unlocked tokens from the lockup account to another address. Execute message type URL: `cosmos.accounts.defaults.lockup.MsgSend` Example JSON file (`msg.json`): ```json { "sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", "amount": { "amount": "100", "denom": "stake" } }
sender
: The address of the lockup account owner.to_address
: The address to which the coins will be sent.amount
: The amount and denomination of coins to send.Warning: The
sender
must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [grammar] ~187-~187: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard. Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ... (A_INFINITIVE) --- [uncategorized] ~204-~204: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct. Context: ...} } ``` :::warning The `sender` field are the address of the owner of the lockup ... (AI_HYDRA_LEO_CPT_ARE_IS) --- [uncategorized] ~204-~204: A comma might be missing here. Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer... (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA) </blockquote></details> </details> --- `207-214`: **Improve clarity and consistency in the Query section introduction** Consider the following improvements: 1. Explain the purpose of the Query section. 2. Clarify the relationship between `query-request-type-url` and `querycontents`. 3. Fix the grammatical issue in the command (change `tx` to `query`). Suggested revision: ```markdown ## Query This section explains how to retrieve information about a lockup account's state, including account details and locking periods. To query a lockup account state, use the following command structure: ```bash querycontents=$(cat query.json) simd query accounts query <account_address> <query-request-type-url> "$querycontents" --chain-id $CHAINID --node <node_address>
<account_address>
: The address of the lockup account.<query-request-type-url>
: The type of query request (explained in each subsection below).query.json
: A JSON file containing any specific parameters for the query (if required).The following subsections detail the available query types and their corresponding
query-request-type-url
and JSON structures.--- `216-233`: **Improve explanation of the Query Account Info** 1. Explain the purpose of querying account info. 2. Clarify the structure of the response. Consider revising this section as follows: ```markdown ### Query Account Info This query retrieves detailed information about a lockup account. Query request type URL: `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest` No input is required for this query. You can use an empty JSON file (`query.json`) or omit the `$querycontents` parameter. The response will include the following information: - Original locked amount - Delegated amount that is locked - Delegated amount that is free (unlocked) - Start and end time of the lockup period - Owner address - Current locked and unlocked amounts This information provides a comprehensive overview of the lockup account's current state and history.
🧰 Tools
🪛 LanguageTool
[grammar] ~218-~218: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~220-~220: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
235-246
: Improve explanation of the Query Periodic Lockup Account Locking Periods
- Explain the purpose of querying locking periods for periodic lockup accounts.
- Clarify the structure of the response.
Consider revising this section as follows:
### Query Periodic Lockup Account Locking Periods This query retrieves information about the locking periods of a periodic lockup account. > Note: This query can only be used with periodic lockup accounts. Query request type URL: `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest` No input is required for this query. You can use an empty JSON file (`query.json`) or omit the `$querycontents` parameter. The response will include: - A list of periods, each containing: - Duration of the period - Amount of tokens to be unlocked after the period This information helps track the unlocking schedule for tokens in a periodic lockup account.🧰 Tools
🪛 LanguageTool
[grammar] ~240-~240: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
1-246
: General suggestions for improving the tutorial
Add a brief introduction at the beginning of the document to explain what lockup accounts are and their purpose in the Cosmos SDK ecosystem.
Consider adding a table of contents with clickable links to each section for easier navigation.
Standardize the format of command examples and JSON structures throughout the document. Use consistent syntax highlighting for better readability.
Add more explanations about the purpose and implications of each operation (init, delegate, undelegate, etc.) in the context of lockup accounts.
Consider adding a troubleshooting section or FAQ to address common issues users might encounter when working with lockup accounts.
Include examples of successful responses for each query and execution to help users understand what to expect.
Add cross-references between related sections (e.g., link the Delegate and Undelegate sections) to help users understand the relationships between different operations.
Consider adding a glossary of terms specific to lockup accounts and the Cosmos SDK to help newcomers understand the terminology used throughout the document.
These improvements will enhance the overall quality and usefulness of the tutorial, making it more accessible to users of varying experience levels.
🧰 Tools
🪛 LanguageTool
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~17-~17: It seems that a comma is missing.
Context: ...periods) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~25-~25: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...e ./.testnets/node0/simd/ ``` ## Init Normally the granter must have enough token to g...(RB_LY_COMMA)
[grammar] ~28-~28: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the gran...(PLURAL_VERB_AFTER_THIS)
[uncategorized] ~28-~28: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...what type of lockup account the granter want to create.
For continous, delay...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~43-~43: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~43-~43: You might be missing the article “a” here.
Context: ...art_time` is not provided when creating continous locking account* :::
For perio...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~94-~94: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...he lockup account address. You can send token to it like a normal account. ## Execu...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~105-~105: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...xecute-msg-type-urland
msgcontents` corresponds to lockup account available executions,...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[grammar] ~108-~108: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~125-~125: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~125-~125: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~129-~129: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~146-~146: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~146-~146: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~150-~150: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~163-~163: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~163-~163: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~167-~167: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~183-~183: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~183-~183: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~187-~187: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~204-~204: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~204-~204: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~218-~218: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~220-~220: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~240-~240: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
📜 Review details
Configuration used: .coderabbit.yml
Review profile: CHILL
📒 Files selected for processing (1)
- x/accounts/defaults/lockup/TUTORIAL.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
x/accounts/defaults/lockup/TUTORIAL.md (1)
Pattern
**/*.md
: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"
🪛 LanguageTool
x/accounts/defaults/lockup/TUTORIAL.md
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~17-~17: It seems that a comma is missing.
Context: ...periods) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~25-~25: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...e ./.testnets/node0/simd/ ``` ## Init Normally the granter must have enough token to g...(RB_LY_COMMA)
[grammar] ~28-~28: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the gran...(PLURAL_VERB_AFTER_THIS)
[uncategorized] ~28-~28: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...what type of lockup account the granter want to create.
For continous, delay...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~43-~43: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~43-~43: You might be missing the article “a” here.
Context: ...art_time` is not provided when creating continous locking account* :::
For perio...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~94-~94: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...he lockup account address. You can send token to it like a normal account. ## Execu...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~105-~105: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...xecute-msg-type-urland
msgcontents` corresponds to lockup account available executions,...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[grammar] ~108-~108: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~125-~125: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~125-~125: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~129-~129: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~146-~146: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~146-~146: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~150-~150: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~163-~163: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~163-~163: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~167-~167: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~183-~183: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~183-~183: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~187-~187: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~204-~204: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~204-~204: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~218-~218: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~220-~220: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~240-~240: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
Co-authored-by: Marko <[email protected]>
Co-authored-by: Julien Robert <[email protected]>
Co-authored-by: Julien Robert <[email protected]>
There was a problem hiding this 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
🧹 Outside diff range and nitpick comments (2)
x/accounts/defaults/lockup/TUTORIAL.md (2)
1-14
: Add an introduction and improve the table of contentsConsider adding a brief introduction or abstract at the beginning of the document to provide context for the tutorial. This will help readers understand the purpose and scope of the document.
Also, improve the table of contents by using proper Markdown list formatting. Here's a suggested format:
# Using lockup account on Cosmos SDK ## Introduction [Add a brief introduction here] ## Table of Contents - [Setup](#setup) - [Init](#init) - [Execution](#execution) - [Delegate](#delegate) - [Undelegate](#undelegate) - [Withdraw reward](#withdraw-reward) - [Withdraw unlocked token](#withdraw-unlocked-token) - [Send coins](#send-coins) - [Query](#query) - [Query account info](#query-account-info) - [Query periodic lockup account locking periods](#query-periodic-lockup-account-locking-periods)This structure will improve readability and navigation within the document.
🧰 Tools
🪛 LanguageTool
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
15-22
: Minor grammatical correction in the Setup sectionIn the first sentence of the Setup section, consider adding a comma for better clarity:
- To create a lockup account we need 2 wallets (newly created or use any of the existing wallet that you have) one for the granter and one for the owner of the lockup account. + To create a lockup account, we need 2 wallets (newly created or use any of the existing wallet that you have), one for the granter and one for the owner of the lockup account.This small change improves the readability of the sentence.
🧰 Tools
🪛 LanguageTool
[typographical] ~17-~17: It seems that a comma is missing.
Context: ...periods) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
📜 Review details
Configuration used: .coderabbit.yml
Review profile: CHILL
📒 Files selected for processing (1)
- x/accounts/defaults/lockup/TUTORIAL.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
x/accounts/defaults/lockup/TUTORIAL.md (1)
Pattern
**/*.md
: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"
🪛 LanguageTool
x/accounts/defaults/lockup/TUTORIAL.md
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~17-~17: It seems that a comma is missing.
Context: ...periods) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~25-~25: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...e ./.testnets/node0/simd/ ``` ## Init Normally the granter must have enough token to c...(RB_LY_COMMA)
[grammar] ~28-~28: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the gran...(PLURAL_VERB_AFTER_THIS)
[style] ~28-~28: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...what type of lockup account the granter want to create.
For continous, delayed,...(REP_WANT_TO_VB)
[grammar] ~43-~43: The modal verb ‘will’ requires the verb’s base form.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(MD_BASEFORM)
[grammar] ~108-~108: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~129-~129: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~150-~150: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~167-~167: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~187-~187: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~218-~218: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~220-~220: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~240-~240: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
## Init | ||
|
||
Normally the granter must have enough token to create to the lockup account during the lockup account init process. The owner wallet should be associated with the individual that the granter wants to create the lockup account for. | ||
|
||
Now, the granter can craft the lockup account init messages. This message depend on what type of lockup account the granter want to create. | ||
|
||
</br> | ||
|
||
For continous, delayed, permanent locking account: | ||
|
||
```go | ||
{ | ||
"owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"end_time": 1495793860 | ||
"start_time": 1465793854 | ||
} | ||
``` | ||
|
||
:::info | ||
`start_time` is only needed for continous locking account init process. For the other two, you dont have to set it in. Error will returned if `start_time` is not provided when creating continous locking account* | ||
::: | ||
|
||
</br> | ||
|
||
For periodic locking account: | ||
|
||
```go | ||
{ | ||
"owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"locking_periods": [ | ||
{ | ||
"length": 84600 | ||
"amount": { | ||
"denom": "stake", | ||
"amount": 2000 | ||
} | ||
}, | ||
{ | ||
"length": 84600 | ||
"amount": { | ||
"denom": "stake", | ||
"amount": 1500 | ||
} | ||
} | ||
] | ||
"start_time": 1465793854 | ||
} | ||
``` | ||
|
||
Periodic locking account locking duration is the combines of all the period length from `locking_periods`. | ||
|
||
The `owner` field takes a string while `start_time` and `end_time` takes a timestamp as value. `locking_periods` are an array of `period`s which consist of 2 field: `length` for the duration of that period and the `amount` that will be release after such duration. | ||
|
||
To initialize the account, we have to run the accounts init command passing the account type and the json string for the init message. | ||
|
||
```bash | ||
initcontents=$(cat init.json) | ||
simd tx accounts init <lockup_type> $initcontents --fees 5stake --chain-id $CHAINID --keyring-backend test --home ./.testnets/node0/simd/ --from granter | ||
``` | ||
|
||
Whereas the available `lockup_type` options are: | ||
|
||
* continuous-locking-account | ||
|
||
* delayed-locking-account | ||
|
||
* periodic-locking-account | ||
|
||
* permanent-locking-account | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Improve clarity, consistency, and formatting in the Init section
-
Consider replacing "granter" with "creator" or "admin" throughout the document for clarity, as suggested in past comments.
-
Improve the structure and grammar of the first paragraph:
- Normally the granter must have enough token to create to the lockup account during the lockup account init process. The owner wallet should be associated with the individual that the granter wants to create the lockup account for.
+ The creator must have sufficient tokens to initialize the lockup account. The owner wallet should be associated with the individual for whom the creator is establishing the lockup account.
- Use language-specific formatting for JSON code blocks. For example:
- ```go
+ ```json
{
"owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45",
"end_time": 1495793860,
"start_time": 1465793854
}
- Improve the explanation of
start_time
:
- `start_time` is only needed for continous locking account init process. For the other two, you dont have to set it in. Error will returned if `start_time` is not provided when creating continous locking account*
+ `start_time` is only required for continuous locking account initialization. For other account types, it's optional. An error will be returned if `start_time` is not provided when creating a continuous locking account.
- Use consistent formatting for command examples:
initcontents=$(cat init.json)
simd tx accounts init <lockup_type> "$initcontents" \
--fees 5stake \
--chain-id "$CHAINID" \
--keyring-backend test \
--home ./.testnets/node0/simd/ \
--from creator
These changes will improve the overall clarity and consistency of the Init section.
🧰 Tools
🪛 LanguageTool
[typographical] ~25-~25: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...e ./.testnets/node0/simd/ ``` ## Init Normally the granter must have enough token to c...(RB_LY_COMMA)
[grammar] ~28-~28: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the gran...(PLURAL_VERB_AFTER_THIS)
[style] ~28-~28: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...what type of lockup account the granter want to create.
For continous, delayed,...(REP_WANT_TO_VB)
[grammar] ~43-~43: The modal verb ‘will’ requires the verb’s base form.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(MD_BASEFORM)
|
||
### Delegate | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgDelegate`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"amount": { | ||
"amount": 100 | ||
"denom": "stake" | ||
} | ||
} | ||
``` | ||
|
||
:::warning | ||
The `sender` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
### Undelegate | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgUndelegate`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"amount": { | ||
"amount": 100 | ||
"denom": "stake" | ||
} | ||
} | ||
``` | ||
|
||
:::warning | ||
The `sender` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
### Withdraw reward | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgWithdrawReward`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
} | ||
``` | ||
|
||
:::warning | ||
The `sender` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
### Withdraw unlocked token | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgWithdraw`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
// lockup account owner address | ||
"withdrawer": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", | ||
// withdraw to an account of choice | ||
"to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx47", | ||
"denoms": ["stake"] | ||
} | ||
``` | ||
|
||
:::warning | ||
The `withdrawer` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
### Send coins | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgSend`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", | ||
"amount": { | ||
"amount": 100 | ||
"denom": "stake" | ||
} | ||
} | ||
``` | ||
|
||
:::warning | ||
The `sender` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Improve consistency and conciseness in the Execution section
-
Remove HTML tags and use Markdown formatting instead. For example, replace
<br>
with an empty line. -
Consolidate the repetitive warnings about the
sender
field into a single note at the beginning of the Execution section:
> **Note:** For all execution operations, the `sender` field must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.
- Use consistent and language-specific formatting for JSON code blocks. For example:
- ```go
+ ```json
{
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45",
"validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45",
"amount": {
"amount": 100,
"denom": "stake"
}
}
- Use consistent formatting for command examples:
msgcontents=$(cat msg.json)
simd tx accounts execute <account_address> <execute-msg-type-url> "$msgcontents" \
--fees 5stake \
--chain-id "$CHAINID" \
--keyring-backend test \
--home ./.testnets/node0/simd/ \
--from owner
- Consider using a table to summarize the different execution operations, their message type URLs, and any specific requirements. This would make the information more accessible and easier to reference.
These changes will improve the overall consistency and readability of the Execution section.
🧰 Tools
🪛 LanguageTool
[grammar] ~108-~108: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~129-~129: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~150-~150: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~167-~167: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~187-~187: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
|
||
## Query | ||
|
||
To query a lockup account state, we can use the command below: | ||
|
||
```bash | ||
querycontents=$(cat query.json) | ||
simd tx accounts query <account_address> <query-request-type-url> $querycontents --fees 5stake --chain-id $CHAINID --keyring-backend test --home ./.testnets/node0/simd/ --from owner | ||
``` | ||
|
||
### Query account info | ||
|
||
The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. And query json file can be an empty object since `QueryLockupAccountInfoRequest` does not required an input. | ||
|
||
Account informations including: | ||
|
||
* original locked amount | ||
|
||
* delegated amount that are locked | ||
|
||
* delegated amount that are free | ||
|
||
* start and end time | ||
|
||
* owner address | ||
|
||
* current locked and unlocked amount | ||
|
||
### Query periodic lockup account locking periods | ||
|
||
:::info | ||
Note, can only be queried from a periodic lockup account | ||
::: | ||
|
||
The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. And query json file can be an empty object since `QueryLockingPeriodsRequest` does not required an input. | ||
|
||
Locking periods including: | ||
|
||
* List of period with its duration and amount | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Improve clarity and consistency in the Query section
- Improve the explanation of the query command:
- To query a lockup account state, we can use the command below:
+ To query a lockup account state, use the following command:
```bash
querycontents=$(cat query.json)
simd tx accounts query <account_address> <query-request-type-url> "$querycontents" \
--fees 5stake \
--chain-id "$CHAINID" \
--keyring-backend test \
--home ./.testnets/node0/simd/ \
--from owner
- Correct grammatical issues and improve clarity:
- The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. And query json file can be an empty object since `QueryLockupAccountInfoRequest` does not required an input.
+ The query request type URL for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. The query JSON file can be an empty object since `QueryLockupAccountInfoRequest` does not require any input.
- Use consistent formatting for lists. For example, in the "Account informations including:" section:
Account information includes:
- Original locked amount
- Delegated amount that is locked
- Delegated amount that is free
- Start and end time
- Owner address
- Current locked and unlocked amount
- For the "Query periodic lockup account locking periods" section, use consistent formatting and improve clarity:
### Query periodic lockup account locking periods
> **Note:** This query can only be performed on a periodic lockup account.
The query request type URL for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. The query JSON file can be an empty object since `QueryLockingPeriodsRequest` does not require any input.
Locking periods information includes:
- List of periods with their duration and amount
These changes will improve the overall clarity, consistency, and readability of the Query section.
🧰 Tools
🪛 LanguageTool
[grammar] ~218-~218: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~220-~220: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~240-~240: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
::: | ||
|
||
### Withdraw reward | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgWithdrawReward`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
} | ||
``` | ||
|
||
:::warning | ||
The `sender` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
### Withdraw unlocked token | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgWithdraw`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
// lockup account owner address | ||
"withdrawer": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", | ||
// withdraw to an account of choice | ||
"to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx47", | ||
"denoms": ["stake"] | ||
} | ||
``` | ||
|
||
:::warning | ||
The `withdrawer` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
### Send coins | ||
|
||
The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgSend`. | ||
|
||
Example of json file: | ||
|
||
```go | ||
{ | ||
"sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", | ||
"to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", | ||
"amount": { | ||
"amount": 100 | ||
"denom": "stake" | ||
} | ||
} | ||
``` | ||
|
||
:::warning | ||
The `sender` field are the address of the owner of the lockup account. If the sender is not the owner an error will be returned. | ||
::: | ||
|
||
## Query | ||
|
||
To query a lockup account state, we can use the command below: | ||
|
||
```bash | ||
querycontents=$(cat query.json) | ||
simd tx accounts query <account_address> <query-request-type-url> $querycontents --fees 5stake --chain-id $CHAINID --keyring-backend test --home ./.testnets/node0/simd/ --from owner | ||
``` | ||
|
||
### Query account info | ||
|
||
The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. And query json file can be an empty object since `QueryLockupAccountInfoRequest` does not required an input. | ||
|
||
Account informations including: | ||
|
||
* original locked amount | ||
|
||
* delegated amount that are locked | ||
|
||
* delegated amount that are free | ||
|
||
* start and end time | ||
|
||
* owner address | ||
|
||
* current locked and unlocked amount | ||
|
||
### Query periodic lockup account locking periods | ||
|
||
:::info | ||
Note, can only be queried from a periodic lockup account | ||
::: | ||
|
||
The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. And query json file can be an empty object since `QueryLockingPeriodsRequest` does not required an input. | ||
|
||
Locking periods including: | ||
|
||
* List of period with its duration and amount | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Overall document improvement suggestions
This tutorial provides valuable information on using lockup accounts in Cosmos SDK. To further enhance its effectiveness, consider the following overall improvements:
- Add a brief introduction or abstract at the beginning of the document to provide context.
- Consistently use Markdown formatting throughout the document, avoiding HTML tags.
- Standardize the formatting of code blocks, using language-specific syntax highlighting where appropriate.
- Replace the term "granter" with "creator" or "admin" for clarity.
- Consolidate repetitive information, such as warnings about the
sender
field. - Use tables or other structured formats to present information more concisely where applicable.
- Ensure consistent capitalization and punctuation throughout the document.
- Review and correct any remaining grammatical issues.
By implementing these suggestions, the tutorial will become more readable, consistent, and user-friendly, making it easier for developers to understand and implement lockup accounts in Cosmos SDK.
🧰 Tools
🪛 LanguageTool
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~17-~17: It seems that a comma is missing.
Context: ...periods) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~25-~25: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...e ./.testnets/node0/simd/ ``` ## Init Normally the granter must have enough token to c...(RB_LY_COMMA)
[grammar] ~28-~28: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the gran...(PLURAL_VERB_AFTER_THIS)
[style] ~28-~28: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...what type of lockup account the granter want to create.
For continous, delayed,...(REP_WANT_TO_VB)
[grammar] ~43-~43: The modal verb ‘will’ requires the verb’s base form.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(MD_BASEFORM)
[grammar] ~108-~108: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~129-~129: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~150-~150: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~167-~167: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~187-~187: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[grammar] ~218-~218: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~220-~220: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~240-~240: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (7)
x/accounts/defaults/lockup/TUTORIAL.md (7)
1-15
: Improve title and table of contents
- Add an article to the title for better grammar:
-# Using lockup account on Cosmos sdk +# Using a Lockup Account on Cosmos SDK
- Remove the duplicate "Query" entry in the table of contents:
* [Query](#query) - * [Query](#query) * [Query account info](#query-account-info)
- Capitalize "SDK" in the reference to the README:
-To learn more about lockup account, please also check out [readme](./README.md) +To learn more about lockup accounts, please also check out the [README](./README.md)🧰 Tools
🪛 LanguageTool
[uncategorized] ~1-~1: You might be missing the article “a” here.
Context: # Using lockup account on Cosmos sdk * [Setup](#setup...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
17-24
: Enhance clarity in the Setup section
- Improve grammar and clarity:
-To create a lockup account we need 2 wallets (newly created or use any of the existing wallet that you have) one for the creator and one for the owner of the lockup account. +To create a lockup account, we need two wallets: one for the creator and one for the owner of the lockup account. You can create new wallets or use existing ones.
- Add context to the command examples:
```bash +# Create a wallet for the creator simd keys add creator +# Create a wallet for the owner simd keys add owner<details> <summary>🧰 Tools</summary> <details> <summary>🪛 LanguageTool</summary><blockquote> [typographical] ~19-~19: It seems that a comma is missing. Context: ...ADME.md) ## Setup To create a lockup account we need 2 wallets (newly created or use... (IN_ORDER_TO_VB_COMMA) </blockquote></details> </details> --- `26-43`: **Improve clarity and consistency in the Init section** 1. Enhance grammar and clarity: ```diff -Normally the creator must have enough token to grant to the lockup account during the lockup account init process. The owner wallet should be associated with the individual that the creator want to grant the fund to. +The creator must have sufficient tokens to initialize the lockup account. The owner wallet should be associated with the individual to whom the creator wants to grant the funds. -Now, the creator can craft the lockup account init messages. This message depend on what type of lockup account the creator want to create. +Now, the creator can craft the lockup account initialization messages. The message structure depends on the type of lockup account the creator wants to create.
- Use consistent JSON formatting and improve the example:
-```go +```json { "owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", - "end_time": 1495793860 + "end_time": 1495793860, "start_time": 1465793854 }3. Improve the note about `start_time`: ```diff -:::info -`start_time` is only needed for continous locking account init process. For the other two, you dont have to set it in. Error will returned if `start_time` is not provided when creating continous locking account* -::: +> **Note:** `start_time` is only required for continuous locking account initialization. For other account types, it's optional. An error will be returned if `start_time` is not provided when creating a continuous locking account.
🧰 Tools
🪛 LanguageTool
[typographical] ~27-~27: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...ator simd keys add owner ``` ## Init Normally the creator must have enough token to g...(RB_LY_COMMA)
[grammar] ~30-~30: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the crea...(PLURAL_VERB_AFTER_THIS)
[uncategorized] ~30-~30: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...what type of lockup account the creator want to create. For continous, delayed, perm...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~42-~42: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~42-~42: You might be missing the article “a” here.
Context: ...art_time` is not provided when creating continous locking account* ::: For periodic loc...(AI_EN_LECTOR_MISSING_DETERMINER_A)
45-72
: Improve JSON example and explanations for periodic locking accounts
- Use consistent JSON formatting and improve the example:
-```go +```json { "owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "locking_periods": [ { - "length": 84600 + "length": 84600, "amount": { "denom": "stake", "amount": 2000 } }, { - "length": 84600 + "length": 84600, "amount": { "denom": "stake", "amount": 1500 } } - ] - "start_time": 1465793854 + ], + "start_time": 1465793854 }2. Improve the explanation of periodic locking accounts: ```diff -Periodic locking account locking duration is the combines of all the period length from `locking_periods`. +The total locking duration for a periodic locking account is the sum of all period lengths from `locking_periods`. -The `owner` field takes a string while `start_time` and `end_time` takes a timestamp as value. `locking_periods` are an array of `period`s which consist of 2 field: `length` for the duration of that period and the `amount` that will be release after such duration. +The `owner` field takes a string, while `start_time` and `end_time` take timestamps as values. `locking_periods` is an array of `period` objects, each consisting of two fields: `length` for the duration of that period and `amount` for the tokens that will be released after such duration.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~72-~72: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...n array ofperiod
s which consist of 2 field:length
for the duration of that peri...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~72-~72: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...at period and theamount
that will be release after such duration. To initialize the...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
74-91
: Improve initialization command explanation and formatting
- Enhance the explanation of the initialization command:
-To initialize the account, we have to run the accounts init command passing the account type and the json string for the init message. +To initialize the account, run the accounts init command, passing the account type and the JSON string for the initialization message:
- Improve the command example:
```bash initcontents=$(cat init.json) -simd tx accounts init <lockup_type> $initcontents --from creator +simd tx accounts init <lockup_type> "$initcontents" --from creator3. Format the list of available `lockup_type` options consistently: ```diff Whereas the available `lockup_type` options are: -* continuous-locking-account - -* delayed-locking-account - -* periodic-locking-account - -* permanent-locking-account +- continuous-locking-account +- delayed-locking-account +- periodic-locking-account +- permanent-locking-account
- Improve the success message:
-If success, we'll check the tx result for the lockup account address. You can send token to it like a normal account. +If successful, check the transaction result for the lockup account address. You can send tokens to it like a normal account.🧰 Tools
🪛 LanguageTool
[uncategorized] ~91-~91: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...he lockup account address. You can send token to it like a normal account. ## Execu...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
93-202
: Improve consistency and clarity in the Execution section
- Consolidate the warnings about the
sender
field at the beginning of the section:> **Important:** For all execution operations, the `sender` field must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.
- Use consistent formatting for JSON examples and improve their structure. For example:
-```go +```json { "sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "validator_address": "cosmosvaloper1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "amount": { - "amount": 100 + "amount": "100", "denom": "stake" } }3. Use consistent formatting for command examples: ```bash msgcontents=$(cat msg.json) simd tx accounts execute <account_address> <execute-msg-type-url> "$msgcontents" --from owner
- Improve the explanations for each execution type. For example:
-The execute message type url for this execution is `cosmos.accounts.defaults.lockup.MsgDelegate`. +The execute message type URL for the delegate operation is `cosmos.accounts.defaults.lockup.MsgDelegate`.
- Remove the repetitive warnings about the
sender
field from each execution type.🧰 Tools
🪛 LanguageTool
[uncategorized] ~102-~102: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...xecute-msg-type-urland
msgcontents` corresponds to lockup account available executions,...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[grammar] ~105-~105: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~122-~122: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~122-~122: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~126-~126: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~143-~143: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~143-~143: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~147-~147: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~160-~160: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~160-~160: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~164-~164: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~180-~180: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~180-~180: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~184-~184: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~201-~201: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~201-~201: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
204-243
: Enhance clarity and consistency in the Query section
- Improve the explanation of the query command:
-To query a lockup account state, we can use the command below: +To query a lockup account state, use the following command: ```bash querycontents=$(cat query.json) -simd tx accounts query <account_address> <query-request-type-url> $querycontents --from owner +simd query accounts <account_address> <query-request-type-url> "$querycontents" --from owner2. Correct grammatical issues and improve clarity: ```diff -The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. And query json file can be an empty object since `QueryLockupAccountInfoRequest` does not required an input. +The query request type URL for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. The query JSON file can be an empty object since `QueryLockupAccountInfoRequest` does not require any input.
- Use consistent formatting for lists. For example:
Account information includes: - Original locked amount - Delegated amount that is locked - Delegated amount that is free - Start and end time - Owner address - Current locked and unlocked amount
- Improve the explanation for querying periodic lockup account locking periods:
-:::info -Note, can only be queried from a periodic lockup account -::: +> **Note:** This query can only be performed on a periodic lockup account. -The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. And query json file can be an empty object since `QueryLockingPeriodsRequest` does not required an input. +The query request type URL for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. The query JSON file can be an empty object since `QueryLockingPeriodsRequest` does not require any input. -Locking periods including: +Locking periods information includes: -* List of period with its duration and amount +- List of periods with their duration and amount🧰 Tools
🪛 LanguageTool
[grammar] ~215-~215: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~217-~217: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~237-~237: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
📜 Review details
Configuration used: .coderabbit.yml
Review profile: CHILL
📒 Files selected for processing (1)
- x/accounts/defaults/lockup/TUTORIAL.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
x/accounts/defaults/lockup/TUTORIAL.md (1)
Pattern
**/*.md
: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"
🪛 LanguageTool
x/accounts/defaults/lockup/TUTORIAL.md
[uncategorized] ~1-~1: You might be missing the article “a” here.
Context: # Using lockup account on Cosmos sdk * [Setup](#setup...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~19-~19: It seems that a comma is missing.
Context: ...ADME.md) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~27-~27: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...ator simd keys add owner ``` ## Init Normally the creator must have enough token to g...(RB_LY_COMMA)
[grammar] ~30-~30: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the crea...(PLURAL_VERB_AFTER_THIS)
[uncategorized] ~30-~30: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...what type of lockup account the creator want to create. For continous, delayed, perm...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~42-~42: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~42-~42: You might be missing the article “a” here.
Context: ...art_time` is not provided when creating continous locking account* ::: For periodic loc...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~72-~72: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...n array ofperiod
s which consist of 2 field:length
for the duration of that peri...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~72-~72: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...at period and theamount
that will be release after such duration. To initialize the...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~91-~91: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...he lockup account address. You can send token to it like a normal account. ## Execu...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~102-~102: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...xecute-msg-type-urland
msgcontents` corresponds to lockup account available executions,...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[grammar] ~105-~105: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~122-~122: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~122-~122: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~126-~126: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~143-~143: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~143-~143: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~147-~147: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~160-~160: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~160-~160: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~164-~164: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~180-~180: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~180-~180: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~184-~184: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~201-~201: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~201-~201: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~215-~215: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~217-~217: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~237-~237: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
🔇 Additional comments (1)
x/accounts/defaults/lockup/TUTORIAL.md (1)
1-243
: Overall assessment of the TUTORIAL.md documentThis tutorial provides valuable information on using lockup accounts in Cosmos SDK. The structure and content are generally good, covering essential aspects such as setup, initialization, execution, and querying. However, there are several areas where improvements can be made:
- Consistency: Ensure consistent formatting throughout the document, especially in code blocks and lists.
- Grammar and clarity: Address grammatical issues and improve sentence structures for better readability.
- Technical precision: Refine explanations of certain concepts, such as the
start_time
requirement for different account types.- Formatting: Use Markdown features more effectively, such as proper code block language identifiers and blockquotes for notes.
By implementing the suggested changes, this tutorial will become more user-friendly and easier to follow for developers working with lockup accounts in Cosmos SDK.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~1-~1: You might be missing the article “a” here.
Context: # Using lockup account on Cosmos sdk * [Setup](#setup...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~19-~19: It seems that a comma is missing.
Context: ...ADME.md) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~27-~27: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...ator simd keys add owner ``` ## Init Normally the creator must have enough token to g...(RB_LY_COMMA)
[grammar] ~30-~30: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the crea...(PLURAL_VERB_AFTER_THIS)
[uncategorized] ~30-~30: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...what type of lockup account the creator want to create. For continous, delayed, perm...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~42-~42: This verb may not be in the correct form. Consider using a different form for this context.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~42-~42: You might be missing the article “a” here.
Context: ...art_time` is not provided when creating continous locking account* ::: For periodic loc...(AI_EN_LECTOR_MISSING_DETERMINER_A)
[uncategorized] ~72-~72: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...n array ofperiod
s which consist of 2 field:length
for the duration of that peri...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~72-~72: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...at period and theamount
that will be release after such duration. To initialize the...(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)
[uncategorized] ~91-~91: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...he lockup account address. You can send token to it like a normal account. ## Execu...(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
[uncategorized] ~102-~102: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...xecute-msg-type-urland
msgcontents` corresponds to lockup account available executions,...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[grammar] ~105-~105: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~122-~122: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~122-~122: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~126-~126: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~143-~143: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~143-~143: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~147-~147: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~160-~160: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~160-~160: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~164-~164: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~180-~180: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~180-~180: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~184-~184: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~201-~201: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[uncategorized] ~201-~201: A comma might be missing here.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
[grammar] ~215-~215: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~217-~217: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~237-~237: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
Co-authored-by: beep <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (11)
x/accounts/defaults/lockup/TUTORIAL.md (11)
1-15
: Add an introduction and fix table of contentsConsider adding a brief introduction at the beginning of the document to provide context for the tutorial. This will help users understand the purpose and scope of lockup accounts before diving into the details.
Also, there's a duplicate entry in the table of contents:
- * [Query](#query) - * [Query account info](#query-account-info) + * [Query](#query) + * [Query account info](#query-account-info) + * [Query periodic lockup account locking periods](#query-periodic-lockup-account-locking-periods)Remove the duplicate "Query" entry and ensure all subsections are properly indented.
🧰 Tools
🪛 LanguageTool
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
17-24
: Improve clarity and grammar in the Setup sectionConsider revising the explanation for better clarity and grammar:
- To create a lockup account we need 2 wallets (newly created or use any of the existing wallet that you have) one for the creator and one for the owner of the lockup account. + To create a lockup account, we need two wallets: one for the creator and one for the owner of the lockup account. You can either create new wallets or use existing ones.This revision improves readability and corrects grammatical issues.
🧰 Tools
🪛 LanguageTool
[typographical] ~19-~19: It seems that a comma is missing.
Context: ...ADME.md) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
26-30
: Improve clarity and consistency in the Init section introductionConsider revising the introduction for better clarity and consistency:
- Normally the creator must have enough token to grant to the lockup account during the lockup account init process. The owner wallet should be associated with the individual that the creator want to grant the fund to. + The creator must have sufficient tokens to initialize the lockup account. The owner wallet should be associated with the individual to whom the creator wants to grant the funds. - Now, the creator can craft the lockup account init messages. This message depend on what type of lockup account the creator want to create. + Now, the creator can craft the lockup account initialization messages. The message structure depends on the type of lockup account the creator wants to create.This revision improves clarity, corrects grammatical issues, and maintains consistency in terminology.
🧰 Tools
🪛 LanguageTool
[typographical] ~27-~27: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...ator simd keys add owner ``` ## Init Normally the creator must have enough token to g...(RB_LY_COMMA)
[grammar] ~30-~30: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the crea...(PLURAL_VERB_AFTER_THIS)
[style] ~30-~30: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...what type of lockup account the creator want to create. For continous, delayed, permane...(REP_WANT_TO_VB)
31-43
: Improve JSON formatting and clarifystart_time
usage
- Format the JSON example properly:
```json { "owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", - "end_time": 1495793860 + "end_time": 1495793860, "start_time": 1465793854 }2. Clarify the explanation about `start_time`: ```diff - `start_time` is only needed for continous locking account init process. For the other two, you dont have to set it in. Error will returned if `start_time` is not provided when creating continous locking account* + `start_time` is only required for continuous locking account initialization. For other account types, it's optional. An error will be returned if `start_time` is not provided when creating a continuous locking account.
These changes improve readability and correct grammatical issues.
🧰 Tools
🪛 LanguageTool
[grammar] ~42-~42: The modal verb ‘will’ requires the verb’s base form.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(MD_BASEFORM)
45-72
: Improve JSON formatting and clarify periodic locking account explanation
- Format the JSON example properly:
```json { "owner": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx45", "locking_periods": [ { - "length": 84600 + "length": 84600, "amount": { "denom": "stake", "amount": 2000 } }, { - "length": 84600 + "length": 84600, "amount": { "denom": "stake", "amount": 1500 } } ], - "start_time": 1465793854 + "start_time": 1465793854 }2. Clarify the explanation of periodic locking accounts: ```diff - Periodic locking account locking duration is the combines of all the period length from `locking_periods`. + The total locking duration for a periodic locking account is the sum of all period lengths specified in `locking_periods`. - The `owner` field takes a string while `start_time` and `end_time` takes a timestamp as value. `locking_periods` are an array of `period`s which consist of 2 field: `length` for the duration of that period and the `amount` that will be release after such duration. + The `owner` field takes a string value, while `start_time` and `end_time` take timestamp values. `locking_periods` is an array of `period` objects, each consisting of two fields: `length` for the duration of that period, and `amount` specifying the tokens to be released after that duration.
These changes improve readability and correct grammatical issues.
74-91
: Improve clarity and formatting in the account initialization explanation
- Clarify the initialization command:
- To initialize the account, we have to run the accounts init command passing the account type and the json string for the init message. + To initialize the account, run the following command, passing the account type and the JSON string for the initialization message:
- Format the command example properly:
```bash initcontents=$(cat init.json) -simd tx accounts init <lockup_type> $initcontents --from creator +simd tx accounts init <lockup_type> "$initcontents" --from creator3. Format the list of available `lockup_type` options: ```diff - Whereas the available `lockup_type` options are: + The available `lockup_type` options are: - * continuous-locking-account - * delayed-locking-account - * periodic-locking-account - * permanent-locking-account + - continuous-locking-account + - delayed-locking-account + - periodic-locking-account + - permanent-locking-account
These changes improve clarity and formatting consistency.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~74-~74: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...tialize the account, we have to run the accounts init command passing the account type a...(AI_HYDRA_LEO_APOSTROPHE_S_XS)
[uncategorized] ~74-~74: Possible missing comma found.
Context: ...count, we have to run the accounts init command passing the account type and the json s...(AI_HYDRA_LEO_MISSING_COMMA)
93-102
: Improve clarity and formatting in the Execution section introduction
- Clarify the execution command explanation:
- To execute a message, we can use the command below: + To execute a message on a lockup account, use the following command:
- Format the command example properly:
```bash msgcontents=$(cat msg.json) -simd tx accounts execute <account_address> <execute-msg-type-url> $msgcontents --from owner +simd tx accounts execute <account_address> <execute-msg-type-url> "$msgcontents" --from owner3. Clarify the explanation of `execute-msg-type-url` and `msgcontents`: ```diff - Whereas `execute-msg-type-url` and `msgcontents` corresponds to lockup account available executions, which are: + The `execute-msg-type-url` and `msgcontents` correspond to the available lockup account executions, which are:
These changes improve clarity and formatting consistency.
103-202
: Improve formatting and consolidate repetitive information in execution examples
Format JSON examples consistently for all execution types (Delegate, Undelegate, Withdraw reward, Withdraw unlocked token, Send coins).
Consolidate the repetitive warning about the
sender
field. Add a note at the beginning of the Execution section:> **Note:** For all execution operations, the `sender` field must be the address of the owner of the lockup account. If the sender is not the owner, an error will be returned.
Remove the individual warnings from each execution type.
For the "Withdraw unlocked token" execution, update the JSON example to use consistent field names:
{ - // lockup account owner address - "withdrawer": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", + "sender": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx46", // withdraw to an account of choice "to_address": "cosmos1vaqh39cdex9sgr69ef0tdln5cn0hdyd3s0lx47", "denoms": ["stake"] }These changes improve consistency and reduce redundancy in the document.
🧰 Tools
🪛 LanguageTool
[grammar] ~105-~105: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~122-~122: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~122-~122: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~126-~126: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~143-~143: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~143-~143: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~147-~147: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~160-~160: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~160-~160: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~164-~164: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~180-~180: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~180-~180: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~184-~184: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~201-~201: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~201-~201: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_HYDRA_LEO_MISSING_COMMA)
204-211
: Improve clarity and formatting in the Query section introduction
- Clarify the query command explanation:
- To query a lockup account state, we can use the command below: + To query a lockup account state, use the following command:
- Format the command example properly:
```bash querycontents=$(cat query.json) -simd tx accounts query <account_address> <query-request-type-url> $querycontents --from owner +simd query accounts <account_address> <query-request-type-url> "$querycontents" --from ownerNote: Changed `tx` to `query` in the command, as this is a query operation, not a transaction. These changes improve clarity and formatting consistency. --- `213-230`: **Improve clarity and formatting in the Query account info section** 1. Clarify the explanation of the query request: ```diff - The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. And query json file can be an empty object since `QueryLockupAccountInfoRequest` does not required an input. + The query request type URL for this query is `cosmos.accounts.defaults.lockup.QueryLockupAccountInfoRequest`. The query JSON file can be an empty object since `QueryLockupAccountInfoRequest` does not require any input.
- Correct the formatting and grammar of the account information list:
- Account informations including: + Account information includes: - * original locked amount - * delegated amount that are locked - * delegated amount that are free - * start and end time - * owner address - * current locked and unlocked amount + - Original locked amount + - Delegated amount that is locked + - Delegated amount that is free + - Start and end time + - Owner address + - Current locked and unlocked amountThese changes improve clarity, correct grammatical issues, and enhance formatting consistency.
🧰 Tools
🪛 LanguageTool
[grammar] ~215-~215: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~217-~217: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
231-243
: Improve clarity and formatting in the Query periodic lockup account locking periods section
- Format the note about periodic lockup accounts:
-:::info -Note, can only be queried from a periodic lockup account -::: +> **Note:** This query can only be performed on a periodic lockup account.
- Clarify the explanation of the query request:
- The query request type url for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. And query json file can be an empty object since `QueryLockingPeriodsRequest` does not required an input. + The query request type URL for this query is `cosmos.accounts.defaults.lockup.QueryLockingPeriodsRequest`. The query JSON file can be an empty object since `QueryLockingPeriodsRequest` does not require any input.
- Correct the formatting and grammar of the locking periods information:
- Locking periods including: + Locking periods information includes: - * List of period with its duration and amount + - List of periods with their duration and amountThese changes improve clarity, correct grammatical issues, and enhance formatting consistency.
🧰 Tools
🪛 LanguageTool
[grammar] ~237-~237: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
📜 Review details
Configuration used: .coderabbit.yml
Review profile: CHILL
📒 Files selected for processing (1)
- x/accounts/defaults/lockup/TUTORIAL.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
x/accounts/defaults/lockup/TUTORIAL.md (1)
Pattern
**/*.md
: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"
🪛 LanguageTool
x/accounts/defaults/lockup/TUTORIAL.md
[duplication] ~11-~11: Possible typo: you repeated a word
Context: ...ken) * Send coins * Query * Query account info ...(ENGLISH_WORD_REPEAT_RULE)
[typographical] ~19-~19: It seems that a comma is missing.
Context: ...ADME.md) ## Setup To create a lockup account we need 2 wallets (newly created or use...(IN_ORDER_TO_VB_COMMA)
[typographical] ~27-~27: Consider adding a comma after ‘Normally’ for more clarity.
Context: ...ator simd keys add owner ``` ## Init Normally the creator must have enough token to g...(RB_LY_COMMA)
[grammar] ~30-~30: The verb ‘depend’ is plural. Did you mean: “depends”? Did you use a verb instead of a noun?
Context: ...kup account init messages. This message depend on what type of lockup account the crea...(PLURAL_VERB_AFTER_THIS)
[style] ~30-~30: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...what type of lockup account the creator want to create. For continous, delayed, permane...(REP_WANT_TO_VB)
[grammar] ~42-~42: The modal verb ‘will’ requires the verb’s base form.
Context: ... you dont have to set it in. Error will returned ifstart_time
is not provided when cr...(MD_BASEFORM)
[uncategorized] ~74-~74: It seems likely that a singular genitive (’s) apostrophe is missing.
Context: ...tialize the account, we have to run the accounts init command passing the account type a...(AI_HYDRA_LEO_APOSTROPHE_S_XS)
[uncategorized] ~74-~74: Possible missing comma found.
Context: ...count, we have to run the accounts init command passing the account type and the json s...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~105-~105: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...e executions, which are: ### Delegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~122-~122: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~122-~122: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Und...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~126-~126: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Undelegate The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~143-~143: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~143-~143: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~147-~147: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...be returned. ::: ### Withdraw reward The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~160-~160: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...", } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~160-~160: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Wit...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~164-~164: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ...rned. ::: ### Withdraw unlocked token The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~180-~180: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...``` :::warning Thewithdrawer
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~180-~180: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ### Sen...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~184-~184: The verb ‘execute’ does not usually follow articles like ‘The’. Check that ‘execute’ is spelled correctly; using ‘execute’ as a noun may be non-standard.
Context: ... will be returned. ::: ### Send coins The execute message type url for this execution is ...(A_INFINITIVE)
[uncategorized] ~201-~201: The verb “are” doesn’t seem to fit in this context, “is” is probably more formally correct.
Context: ...} } ``` :::warning Thesender
field are the address of the owner of the lockup ...(AI_HYDRA_LEO_CPT_ARE_IS)
[uncategorized] ~201-~201: Possible missing comma found.
Context: ...ockup account. If the sender is not the owner an error will be returned. ::: ## Quer...(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~215-~215: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...QueryLockupAccountInfoRequest` does not required an input. Account informations includi...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
[misspelling] ~217-~217: The word ‘informations’ is a legal term. In standard English, the word ‘information’ is a non-count noun.
Context: ...t` does not required an input. Account informations including: * original locked amount *...(INFORMATIONS)
[grammar] ~237-~237: After the auxiliary verb ‘do’, use the base form of a verb. Did you mean “require”?
Context: ...eQueryLockingPeriodsRequest
does not required an input. Locking periods including: ...(AUXILIARY_DO_WITH_INCORRECT_VERB_FORM)
Co-authored-by: Marko <[email protected]> Co-authored-by: Julien Robert <[email protected]> Co-authored-by: beep <[email protected]> (cherry picked from commit 3220aab)
) (#22187) Co-authored-by: son trinh <[email protected]>
Description
Closes: #XXXX
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...
!
in the type prefix if API or client breaking changeCHANGELOG.md
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...
Summary by CodeRabbit