-
Notifications
You must be signed in to change notification settings - Fork 4
[feat] chain upgrade v1 16 #179
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
Conversation
…gnerate the JSON definitions for the proto types tables
… from the proto files on the original repositories
WalkthroughThis update introduces extensive improvements to documentation automation, error code coverage, and example code modernization. It adds new scripts and Makefile targets for extracting and generating documentation artifacts from multiple repositories, replaces static error tables with comprehensive auto-generated module-based error tables, and updates all Python and Go code examples to use the latest SDK client versions. New documentation for the ERC20 and EVM modules is included, and JSON schema tables are expanded and standardized to reflect current Cosmos SDK and Injective structures. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Makefile
participant Scripts
participant Repos
participant Docs
User->>Makefile: make update-all-proto-related-files
Makefile->>Repos: Clone cosmos-sdk, injective-core, indexer
Makefile->>Scripts: Run extract_errors.sh
Scripts->>Repos: Scan Go files for errors
Scripts->>Docs: Output JSON error tables
Makefile->>Scripts: Run generate_proto_json_files.sh
Scripts->>Repos: Scan proto and pb.go files
Scripts->>Docs: Output JSON proto tables
Makefile->>Repos: Clean up temp directories
Makefile->>Docs: Print success message
Estimated code review effort🎯 4 (Complex) | ⏱️ ~40 minutes Poem
Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. ✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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
CodeRabbit Configuration File (
|
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: 26
🔭 Outside diff range comments (3)
source/includes/_tokenfactory.md (3)
642-642: Broadcast abstraction mismatchThe example still uses
MsgBroadcasterWithPk.new_using_simulation. It should be updated tonew_using_gas_heuristicsto align with the new broadcasting abstraction introduced across modules.
857-857: Broadcast abstraction mismatchThis example still uses
new_using_simulation; update tonew_using_gas_heuristicsto follow the unified broadcasting interface.
1080-1080: Broadcast abstraction mismatchUpdate
new_using_simulationtonew_using_gas_heuristicsin the MsgBurn example to match the new broadcaster API.
♻️ Duplicate comments (22)
source/includes/_tendermint.md (21)
36-37: Duplicate: snippet URL branch update
Same update applied to the Go exampleMARKDOWN-AUTO-DOCS:STARTURL.
235-236: Duplicate: snippet URL branch update
GetSyncing Python example now points toraw/dev.
239-239: Duplicate: AsyncClient v2 import
Reusespyinjective.async_client_v2in the GetSyncing example.
277-279: Duplicate: Go RPC client initialization
GetSyncing Go example follows the simplifiedrpchttp.Newpattern.
307-310: Duplicate:NewChainClientV2usage
GetSyncing Go snippet also instantiatesNewChainClientV2.
324-324: Duplicate: tab indentation for JSON
Streaming the GetSyncing response with a tab-indented JSON.
357-358: Duplicate: snippet URL branch update
GetLatestBlock Python example uses thedevbranch URL.
363-363: Duplicate: AsyncClient v2 import
Consistent update to usepyinjective.async_client_v2.
431-431: Duplicate:NewChainClientV2in GetLatestBlock
Applied the updated chain client version pattern.
448-448: Duplicate: Go JSON indent tabs
Standard tab indentation reused for the latest block output.
764-764: Duplicate: snippet URL branch update
GetBlockByHeight Python snippet updated to point toraw/dev.
769-769: Duplicate: AsyncClient v2 import
Reflects the v2 client import in GetBlockByHeight.
806-806: Duplicate: Go RPC initialization
Reuses therpchttp.Newpattern for GetBlockByHeight.
837-837: Duplicate:NewChainClientV2usage
Consistently updated in GetBlockByHeight Go code.
855-855: Duplicate: JSON indent with tabs
Maintain consistent formatting for block-by-height responses.
1205-1205: Duplicate: AsyncClient v2 import
LatestValidatorSet Python example updated accordingly.
1242-1242: Duplicate: Go RPC initialization
RPC client instantiation aligned in the validator set example.
1273-1273: Duplicate:NewChainClientV2usage
Reflects new client version across all Go examples.
1393-1393: Duplicate: AsyncClient v2 import
ValidatorSetByHeight Python example follows the v2 import convention.
1435-1435: Duplicate: Go RPC initialization
ValidatorSetByHeight example uses the same RPC client setup.
1466-1466: Duplicate:NewChainClientV2usage
Final application of the new chain client version in Go.source/includes/_wasm.md (1)
1968-1969: Use proper markdown headings instead of emphasis
Same recommendation as above: use heading levels instead of bold for section titles.Also applies to: 1988-1989
🧹 Nitpick comments (125)
source/json_tables/chain/exchange/perpetualMarketFunding.json (1)
3-3: Fix typo in description.The word “redable” is misspelled; update to “readable” for clarity in the user-facing docs.
- {"Parameter": "cumulative_price", "Type": "Decimal", "Description": "The cumulative price for the current hour up to the last timestamp (in human redable format)"}, + {"Parameter": "cumulative_price", "Type": "Decimal", "Description": "The cumulative price for the current hour up to the last timestamp (in human readable format)"},source/json_tables/chain/exchange/expiryFuturesMarketInfo.json (1)
5-6: Fix typos in parameter descriptions.Replace “redable” with “readable” to maintain consistency and prevent confusion.
- {"Parameter": "expiration_twap_start_price_cumulative", "Type": "Decimal", "Description": "Defines the cumulative price for the start of the TWAP window (in human redable format)"}, - {"Parameter": "settlement_price", "Type": "Decimal", "Description": "The settlement price (in human redable format)"} + {"Parameter": "expiration_twap_start_price_cumulative", "Type": "Decimal", "Description": "Defines the cumulative price for the start of the TWAP window (in human readable format)"}, + {"Parameter": "settlement_price", "Type": "Decimal", "Description": "The settlement price (in human readable format)"}source/json_tables/chain/exchange/level.json (1)
2-3: Correct typos in parameter descriptions.Change “redable” to “readable” for both
pandq.- {"Parameter": "p", "Type": "Decimal", "Description": "Price (in human redable format)"}, - {"Parameter": "q", "Type": "Decimal", "Description": "Quantity (in human redable format)"} + {"Parameter": "p", "Type": "Decimal", "Description": "Price (in human readable format)"}, + {"Parameter": "q", "Type": "Decimal", "Description": "Quantity (in human readable format)"}source/json_tables/cosmos/auth/Bech32PrefixResponse.json (1)
1-7: Add missing Description forbech32_prefix.The
Descriptionfield is empty, leaving consumers without context. Please populate it (e.g., “The Bech32 prefix used for addresses in this chain”).source/json_tables/chain/exchange/querySpotOrderbookRequest.json (1)
5-6: Fix spelling in description.The phrase "human redable format" contains a typo and inconsistent hyphenation. Update both entries to "human-readable format" for clarity and correctness.
- "Description": "Limit the number of entries to return per side based on the cumulative notional (in human redable format)" + "Description": "Limit the number of entries to return per side based on the cumulative notional (in human-readable format)" - "Description": "Limit the number of entries to return per side based on the cumulative quantity (in human redable format)" + "Description": "Limit the number of entries to return per side based on the cumulative quantity (in human-readable format)"source/json_tables/cosmos/auth/AddressBytesToStringRequest.json (1)
5-5: Add missing parameter description.The
Descriptionfield is empty, which reduces schema clarity. Consider adding a meaningful description, for example:"Description": "The address in byte-array format to be converted into a human-readable string."source/json_tables/cosmos/auth/ModuleAccount.json (2)
5-5: Add missing description forname.Provide a concise description, e.g.:
"Description": "The identifier of the module account."
10-10: Add missing description forpermissions.Provide a concise description, e.g.:
"Description": "A list of permissions granted to this module account."source/json_tables/cosmos/auth/AddressStringToBytesRequest.json (1)
5-5: Add missing parameter description.The
Descriptionfield is empty; consider clarifying the purpose, e.g.:"Description": "The Bech32-encoded address string to convert into its byte-array representation."source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringRequest.json (1)
5-5: Refine description to improve clarity.The current description is redundant and starts with a lowercase. Update to:
-"Description": "denom is the coin denom to query the metadata for." +"Description": "The coin denomination to query metadata for."source/json_tables/cosmos/auth/QueryAccountResponse.json (1)
3-6: Add aRequiredfield for consistency in JSON tables.
To align with other schema entries (e.g.,QueryAccountsRequest.json), explicitly mark whetheraccountis required. Also verify that theType(types.Any) matches the protobuf naming in the generated JSON artifacts.source/json_tables/cosmos/auth/QueryAccountsRequest.json (1)
3-6: StandardizeRequiredusage across JSON schema entries.
This file includes aRequiredproperty, but others do not. To maintain consistency, either includeRequiredin all new schema files or remove it here and drive requirement enforcement elsewhere.source/json_tables/cosmos/bank/MsgMultiSend.json (2)
9-12: Provide a description foroutputs. Theoutputsfield has an empty"Description". Please add a concise explanation (for example, "List of recipient outputs for distribution of funds").
3-6: Clarify theTypefield forinputs. Consider specifying"array of Input"or"List<Input>"instead of the generic"Input array"to align with other schema conventions.source/json_tables/cosmos/bank/Output.json (1)
1-12: Add missingRequiredflags and meaningful descriptionsThis schema omits the
"Required"field for each parameter and leaves descriptions blank. To align with other module schemas, add"Required": "Yes"(or"No"where appropriate) and supply concise descriptions foraddressandcoins.source/json_tables/cosmos/bank/MsgSetSendEnabled.json (1)
1-21: Use consistent Go-style array notation for typesTo align with Go import paths and other schemas, replace
"SendEnabled array"and"string array"with[]SendEnabled(or fully qualified path) and[]string, respectively:-"Type": "SendEnabled array" +"Type": "[]SendEnabled" -"Type": "string array" +"Type": "[]string"source/json_tables/cosmos/auth/Params.json (1)
1-28: Provide descriptions for auth module parametersAll five parameters currently have empty
"Description"fields. Please add concise descriptions for each (max_memo_characters,tx_sig_limit, etc.) to improve clarity in generated docs.source/json_tables/chain/exchange/trimmedLimitOrder.json (1)
2-3: Fix typo in “readable” within descriptions.The word “redable” is misspelled in both descriptions. It should read “human readable format” (or “human-readable format” for consistency).
Diff:
--- a/source/json_tables/chain/exchange/trimmedLimitOrder.json +++ b/source/json_tables/chain/exchange/trimmedLimitOrder.json @@ 2,3c2,3 - {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human redable format)"}, - {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human redable format)"}, + {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human readable format)"}, + {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human readable format)"},source/json_tables/chain/exchange/trimmedSpotLimitOrder.json (1)
2-4: Correct spelling and hyphenation in parameter descriptions.“redable” should be “readable,” and you may consider using “human-readable format” (with a hyphen) to match common style guidelines.
Diff:
--- a/source/json_tables/chain/exchange/trimmedSpotLimitOrder.json +++ b/source/json_tables/chain/exchange/trimmedSpotLimitOrder.json @@ 2,4c2,4 - {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human redable format)"}, - {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human redable format)"}, - {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human redable format)"}, + {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human-readable format)"}, + {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human-readable format)"}, + {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human-readable format)"},source/json_tables/chain/exchange/effectivePosition.json (1)
3-5: Fix typo and standardize hyphenation in descriptions.Replace “redable” with “readable” and consider “human-readable format” for consistency across schemas.
Diff:
--- a/source/json_tables/chain/exchange/effectivePosition.json +++ b/source/json_tables/chain/exchange/effectivePosition.json @@ 3,5c3,5 - {"Parameter": "quantity", "Type": "Decimal", "Description": "The position's amount (in human redable format)"}, - {"Parameter": "entry_price", "Type": "Decimal", "Description": "The order execution price when the position was created (in human redable format)"}, - {"Parameter": "effective_margin", "Type": "Decimal", "Description": "The position's current margin amount (in human redable format)"} + {"Parameter": "quantity", "Type": "Decimal", "Description": "The position's amount (in human-readable format)"}, + {"Parameter": "entry_price", "Type": "Decimal", "Description": "The order execution price when the position was created (in human-readable format)"}, + {"Parameter": "effective_margin", "Type": "Decimal", "Description": "The position's current margin amount (in human-readable format)"}source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json (1)
2-5: Correct spelling and improve consistency in format description.Change “redable” to “readable” and hyphenate “human-readable format” to align with other schema entries.
Diff:
--- a/source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json +++ b/source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json @@ 2,5c2,5 - {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human redable format)"}, - {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human redable format)"}, - {"Parameter": "margin", "Type": "Decimal", "Description": "Order margin (in human redable format)"}, - {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human redable format)"}, + {"Parameter": "price", "Type": "Decimal", "Description": "Order price (in human-readable format)"}, + {"Parameter": "quantity", "Type": "Decimal", "Description": "Order quantity (in human-readable format)"}, + {"Parameter": "margin", "Type": "Decimal", "Description": "Order margin (in human-readable format)"}, + {"Parameter": "fillable", "Type": "Decimal", "Description": "The remaining fillable amount of the order (in human-readable format)"},source/json_tables/chain/exchange/volumeRecord.json (1)
2-3: Fix typo in description: "redable" → "readable".Update both parameter descriptions to correct the spelling and add a hyphen for clarity:
- "The maker volume (in human redable format)" + "The maker volume (in human-readable format)" - "The taker volume (in human redable format)" + "The taker volume (in human-readable format)"source/json_tables/chain/exchange/fullDerivativeMarket.json (1)
4-4: Fix typo in description: "redable" → "readable".Correct the spelling for
mark_priceto:- "The market mark price (in human redable format)" + "The market mark price (in human-readable format)"source/json_tables/chain/exchange/midPriceAndTOB.json (1)
2-4: Fix typo in descriptions: "redable" → "readable".Apply these corrections:
- "Market's mid price (in human redable format)" + "Market's mid price (in human-readable format)" - "Market's best buy price (in human redable format)" + "Market's best buy price (in human-readable format)" - "Market's best sell price (in human redable format)" + "Market's best sell price (in human-readable format)"source/json_tables/chain/exchange/derivativeMarket.json (1)
16-18: Fix typo in descriptions: "redable" → "readable".Correct the spelling and format for these fields:
- "Minimum tick size that the price required for orders in the market (in human redable format)" + "Minimum tick size for order prices in the market (in human-readable format)" - "Minimum tick size of the quantity required for orders in the market (in human redable format)" + "Minimum tick size for order quantities in the market (in human-readable format)" - "Minimum notional (in quote asset) required for orders in the market (in human redable format)" + "Minimum notional (in quote asset) required for orders in the market (in human-readable format)"source/json_tables/cosmos/auth/QueryParamsResponse.json (1)
1-7: Enhance description clarity. Consider specifying the module (e.g., “Params for the auth module”) and adjusting capitalization:
- Change to
"Description": "Params for the auth module."
This will align with other schema entries.source/json_tables/cosmos/auth/AddressStringToBytesResponse.json (1)
3-5: Missing description foraddress_bytes
TheDescriptionfield is empty—please add a concise explanation (for example, “The account address encoded as a byte array.”).source/json_tables/cosmos/auth/QueryAccountInfoResponse.json (1)
3-5: Refine description style forinfo
The description uses a lowercase start and could be clearer. Consider updating to something like:
“Info contains the account details represented by a BaseAccount.”source/json_tables/cosmos/StringEvent.json (2)
3-5: Add description fortypeparameter
TheDescriptionis empty—please specify that this is the event’s type identifier (e.g., “The event type as a string.”).
8-10: Add description forattributesparameter
TheDescriptionfield is blank—consider: “An array of attributes associated with the event.”source/json_tables/cosmos/auth/QueryAccountAddressByIDResponse.json (1)
3-5: Provide description foraccount_address
TheDescriptionfield is empty—please clarify its purpose (e.g., “The Bech32-encoded account address returned by ID lookup.”).source/json_tables/chain/errors/auction.json (1)
3-5: Normalize error description formatting
Current descriptions are lowercase and lack punctuation consistency. Recommend capitalizing and adding periods, for example:
- “Invalid bid denom.”
- “Invalid bid round.”
Also applies to: 7-9
source/json_tables/cosmos/SimulationResponse.json (1)
1-12: Add descriptive descriptions for schema parameters.Both
gas_infoandresultfields have empty descriptions. Please provide meaningful descriptions for clarity. For example:- "Description": "" + "Description": "gas_info provides details about gas limits and usage in the simulation." - "Description": "" + "Description": "result contains the outcome of the simulation, including events and return data."source/includes/_changelog.md (1)
12-12: Fix module grammar in 2025-04-21 entry.The phrase “
TXFeesmodules endpoints” implies multiple modules. Update to the singular form:- Added documentation for `TXFees` modules endpoints + Added documentation for `TXFees` module endpointssource/json_tables/cosmos/Coin.json (2)
3-6: Missing description fordenom.Provide a concise description for the
denomfield (e.g., “The coin denomination identifier.”).
8-11: Missing description foramount.Provide a concise description for the
amountfield (e.g., “The integer amount of coins.”).source/json_tables/cosmos/TxMsgData.json (2)
3-6: Align array type notation fordata.Consider using a standard pattern (e.g.,
"MsgData[]"or"array of MsgData") to match other JSON schema conventions.
8-11: Align array type notation formsg_responses.Consider using
"types.Any[]"or"array of types.Any"for clarity and consistency across schemas.source/json_tables/cosmos/bank/Params.json (1)
8-11: Provide description fordefault_send_enabled.Add a clear description (e.g., “Flag indicating the default send-enabled status for new denominations.”).
source/json_tables/cosmos/ABCIMessageLog.json (2)
3-6: Provide a description formsg_index.
Themsg_indexfield lacks a description. Please add a concise explanation (e.g., “Zero-based index of this message within the transaction”).
8-11: Provide a description forlog.
Thelogfield is undocumented—add details such as “The ABCI response log for this message.”source/json_tables/cosmos/bank/QueryAllBalancesResponse.json (2)
3-6: Refine thebalancesdescription.
Current text (“balances is the balances of all the coins.”) is redundant—consider “Balances of all coins held by the account.”
8-11: Refine thepaginationdescription.
Consider “Pagination details for the response, including next key and total count.” for clarity.source/json_tables/chain/errors/insurance.json (1)
1-51: Standardize error field naming.
To align with other chain modules, consider renaming the"Error Code"key to"code"and"Description"to"description".source/json_tables/cosmos/bank/MsgSend.json (1)
1-21: Missing descriptions for required fields.
TheDescriptionentries forfrom_address,to_address, andamountare empty, which will lead to gaps in generated docs.Populate them to improve documentation, for example:
[ { "Parameter": "from_address", "Type": "string", - "Description": "", + "Description": "address of the account sending tokens.", "Required": "Yes" }, { "Parameter": "to_address", "Type": "string", - "Description": "", + "Description": "address of the account receiving tokens.", "Required": "Yes" }, { "Parameter": "amount", "Type": "github_com_cosmos_cosmos_sdk_types.Coins", - "Description": "", + "Description": "amount of coins to transfer.", "Required": "Yes" } ]source/json_tables/cosmos/bank/QueryAllBalancesRequest.json (1)
1-20: Request schema is accurate; consider grouping required and optional fields.
Fieldsaddressandresolve_denom(required) andpagination(optional) are defined correctly. For readability, you may want to group required parameters first, followed by optional ones.source/includes/_insurancerpc.md (1)
67-67: Remove hard tabs for markdown formatting
Replace the hard tab characters at the start of this line with spaces to satisfy markdownlint (MD010).source/includes/_auctionsrpc.md (3)
458-465: Inconsistent JSON indentation in GoInjBurntEndpointexample
This snippet still uses two spaces (" ") instead of a tab. For consistency, change tojson.MarshalIndent(injBurntResponse, "", "\t").
242-242: Remove hard tabs for markdown formatting
There’s a hard tab at the start of this line—please replace it with spaces to comply with markdownlint MD010.
580-580: Remove hard tabs for markdown formatting
Replace the hard tab character here with spaces to satisfy markdownlint (MD010).source/json_tables/cosmos/bank/BalanceUpdate.json (1)
1-17: Enhance JSON schema consistency
- Rename
addr→addressandamt→amountto match existing schemas.- Use
"String"(not"byte array") for bothaddressanddenom.- Add meaningful
"Description"values foraddressanddenom.source/includes/_broadcaster.md (1)
490-494: Fix typographical errors in notice aside
- Change “There an important consideration” → “There is an important consideration”
- Correct “correclty” → “correctly”
- <aside class="notice"> - There an important consideration when using the Transaction Broadcaster calculating the gas cost without simulation to send a _MsgBatchUpdateOrders_ message. + <aside class="notice"> + There is an important consideration when using the Transaction Broadcaster to calculate gas cost without simulation for _MsgBatchUpdateOrders_ messages. ... - The logic that estimates the gas cost for the _MsgBatchUpdateOrders_ correclty calculates... + The logic that estimates the gas cost for the _MsgBatchUpdateOrders_ correctly calculates...source/json_tables/chain/errors/ocr.json (2)
71-73: Fix typo in description
Change"feed doesnt exists"→"feed doesn't exist".- "Description": "feed doesnt exists" + "Description": "feed doesn't exist"
1-94: Consider unifying description casing
Some descriptions start lowercase (e.g.,"stale report"), others uppercase. For consistency, choose sentence- or title-case across all entries.source/json_tables/chain/errors/oracle.json (1)
171-173: Standardize abbreviation casing
Change"asset id"→"asset ID"for consistency with other entries (e.g., IBC, RPC).- "Description": "stork asset id not unique" + "Description": "stork asset ID not unique"source/json_tables/cosmos/SearchTxsResult.json (2)
1-32: Nitpick: Grammar and clarity in descriptions
- For
page_number(lines 13–15), change "start from 1" to "starts from 1".- For
limit(lines 23–25), change "Max count txs per page" to "Maximum number of transactions per page".
27-30: Nitpick: QualifyTxResponsearray type
Consider using the fully qualified type (e.g.,cosmos.tx.v1beta1.TxResponse array) to align with other schema definitions.source/includes/_portfoliorpc.md (2)
15-36: Suggest usingasyncio.runfor Python example
Instead ofasyncio.get_event_loop().run_until_complete(main()), useasyncio.run(main())for a cleaner, more idiomatic approach on Python 3.7+.
295-339: Suggest usingasyncio.runin stream example
Consider replacingasyncio.get_event_loop().run_until_complete(main())withasyncio.run(main())to follow modern Python async best practices.source/json_tables/chain/errors/exchange.json (1)
3-6: Inconsistent description capitalization
Some descriptions start lowercase (e.g., "failed to validate order") while others are sentence-capitalized (e.g., "An equivalent market launch proposal already exists."). Standardize capitalization across all entries.Also applies to: 159-160
source/json_tables/chain/errors/permissions.json (1)
47-49: Nitpick: Simplify description
For Error Code 13, change "voucher was not found" to "voucher not found" to align with other entries.source/json_tables/cosmos/TxResponse.json (2)
53-56: Nitpick: Clarify Type fortx
Consider using the fully qualifiedgoogle.protobuf.Anyrather thantypes.Anyto match official Cosmos JSON schema conventions.
59-61: Nitpick: Add missing space in description
Insert a space after the period in "block.LastCommit" → "block. LastCommit" for readability.source/json_tables/cosmos/bank/GenesisState.json (1)
1-27: Ensure consistent punctuation in descriptions.Some descriptions lack a trailing period, and capitalization varies. For example,
"balances is an array containing the balances of all the accounts"should end with a period. Harmonize description formatting across all entries for consistency.source/json_tables/cosmos/bank/Metadata.json (1)
43-46: Fix grammar in thedecimalsdescription.Change
"Decimals represent the number of decimals use to represent token amount on chain"to"Decimals represent the number of decimals used to represent token amounts on chain."scripts/generate_errors_md.sh (1)
13-18: Separate declaration and assignment to avoid masking return values.Per ShellCheck SC2155, split lines like
local module_name=$(basename ...)andlocal capitalized_name=$(...)into two statements each for clarity and to avoid masking errors.source/includes/_derivativesrpc.md (12)
14-35: StandardizeIndexerClientinstantiation
The Python Market example usesIndexerClient(network)here, while other snippets use keyword arguments (IndexerClient(network=network)). Picking one consistent invocation style will make examples clearer.
246-264: Consistent client instantiation in Markets example
The Python Markets snippet again mixes positional and keyword forms ofIndexerClient. Unify this call to maintain consistency across all Python examples.
558-602: Consistent client instantiation in StreamMarkets
In the Python StreamMarkets example, the instantiationclient = IndexerClient(network)should follow the same style chosen elsewhere.
834-864: Consistent client instantiation in HistoricalOrders
The Python HistoricalOrders example should use the sameIndexerClientinvocation style (positional vs keyword) as the other code snippets.
1175-1221: Consistent client instantiation in StreamHistoricalOrders
Please align theIndexerClientcall here with the style used in other Python examples.
1432-1460: Consistent client instantiation in Trades
Align theIndexerClientinvocation here with the chosen standard (either always positional or always keyword).
2162-2199: Consistent client instantiation in Positions
Unify theIndexerClientinstantiation style in the Python Positions example to match other code samples.
2706-2733: Consistent client instantiation in LiquidablePositions
Please conform this example’sIndexerClientusage to the chosen standard (positional vs keyword) used elsewhere.
3020-3044: Align defaultdepthvalues across examples
The Python OrderbooksV2 example setsdepth = 1, while the Go version usesdepth := 10. Consider using the same default depth in both languages to avoid confusion.
3047-3080: Go OrderbooksV2 consistentdepthparameter
Ensure the Go snippet’sdepthvalue matches the Python example or document why they differ.
3269-3313: Consistent client instantiation in StreamOrderbooks
Standardize the PythonIndexerClientcall here to the established convention for instantiation.
3435-3520: Standardize snapshot & streaming client usage
In the load/stream example:
- Keep
IndexerClientinstantiation consistent.- The code correctly switches to
fetch_derivative_orderbooks_v2andlisten_derivative_orderbook_updates.
These updates look good; just unify instantiation style.source/includes/_wasmx.md (1)
104-104: Replace hard tabs with spaces in code blocks.Leading hard tabs in the Go snippet cause markdownlint MD010 warnings. Convert indentation to spaces for consistency.
Also applies to: 134-134, 178-178
source/includes/_evm.md (1)
299-301: Grammar: Fix wording inValidatorAccountdescription.The phrase "Queries an Ethereum account's from a validator consensus Address" is unclear. Rephrase to "Queries an Ethereum account from a validator consensus address" or similar.
source/includes/_ibccoreclient.md (1)
61-61: Nitpick: Replace hard tabs with spaces.MarkdownLint flagged hard tabs at multiple lines. Converting tabs to spaces will improve consistency and prevent lint errors (MD010).
Also applies to: 92-92, 281-281, 312-312, 961-961, 992-992, 1124-1124, 1155-1155, 1339-1339, 1370-1370, 1502-1502, 1533-1533, 1551-1551, 1631-1631, 1662-1662, 1679-1679, 1770-1770, 1801-1801, 1818-1818, 1894-1894, 1925-1925, 1942-1942
source/includes/_chainstream.md (2)
142-142: Align bank balance filter semantics
The Go example uses a wildcard (Accounts: []string{"*"}) while the Python example filters a specific account. Consider harmonizing these for consistency or adding a note explaining the difference.
268-268: Add missing comma in sentence
A comma before “and” improves readability:
“filtered by the request parameters**, and** it's identified by the block height.”source/includes/_insurance.md (1)
29-29: Validate environment variable.
Consider adding a check to ensureINJECTIVE_PRIVATE_KEYis set before using it, e.g.:if not private_key_in_hexa: raise EnvironmentError("INJECTIVE_PRIVATE_KEY not found")scripts/extract_errors.sh (1)
41-64: Error extraction logic.
Theextract_errorsfunction captureserrors.Registercalls into JSON. Consider enhancing the regex to support multiline or extra whitespace variations around arguments for increased robustness.source/includes/_clients.md (2)
74-74: Add missing comma for better readability.-Both clients provide similar interfaces but with different underlying implementations. Choose V2 for new projects unless you have specific requirements for V1 compatibility. +Both clients provide similar interfaces but with different underlying implementations. Choose V2 for new projects, unless you have specific requirements for V1 compatibility.
85-85: Fix colon usage before prepositional phrase.Remove the colon as it's not needed when introducing a list after a preposition.
- - Human-readable format for: amounts, prices, margins, and notionals + - Human-readable format for amounts, prices, margins, and notionalsscripts/generate_proto_json_files.sh (2)
459-459: Avoid masking return values in variable assignments
ShellCheck SC2155 flagged the use oflocal subdir_name=$(basename "$subdir"). Split declaration and assignment to prevent return code masking.Apply:
- local subdir_name=$(basename "$subdir") + local subdir_name + subdir_name=$(basename "$subdir")
480-480: Avoid masking return values in variable assignments
ShellCheck SC2155 flaggedlocal module_name=$(basename "$module_dir"). Split the declaration and assignment.Apply:
- local module_name=$(basename "$module_dir") + local module_name + module_name=$(basename "$module_dir")source/includes/_wasm.md (31)
57-57: Replace hard tab with spaces & confirm removal
Therpchttp.Newcall correctly omits the"/websocket"argument for v1.16. Please replace the leading hard tab with spaces to comply with MD010 (no-hard-tabs).
88-91: Replace hard tabs in Go code
Use spaces instead of hard tabs for indentation in thechainclient.NewChainClientV2block to satisfy MD010.
106-107: Use tab for JSON output indent and fix tabs in markdown
Switching to"\t"forjson.MarshalIndentis correct; please remove leading hard tabs in these lines to satisfy MD010.
231-231: Replace hard tab with spaces & confirm removal
Therpchttp.Newcall now omits"/websocket"; please replace the hard tab with spaces per MD010.
262-266: Replace hard tabs in Go code
Use spaces for indentation in thechainclient.NewChainClientV2invocation to comply with MD010.
281-283: Use tab for JSON output indent and fix tabs in markdown
Changingjson.MarshalIndentto use"\t"is intentional; please remove the hard tabs on these lines to satisfy MD010.
482-483: Replace hard tab with spaces & confirm removal
Therpchttp.Newcall correctly omits"/websocket"; replace the hard tab with spaces to comply with MD010.
513-516: Replace hard tabs in Go code
Convert hard tabs to spaces in theNewChainClientV2call block to satisfy MD010.
532-533: Use tab JSON indent & fix tabs in markdown
Updatingjson.MarshalIndentto use"\t"is appropriate; please remove leading hard tabs per MD010.
638-639: Replace hard tab with spaces & confirm removal
Removed the"/websocket"suffix; replace the hard tab with spaces per MD010.
669-672: Replace hard tabs in Go code
Use spaces for indentation around theNewChainClientV2invocation to comply with MD010.
688-690: Use tab JSON indent & fix tabs in markdown
Switching to"\t"for indentation is correct; please remove hard tabs on these lines per MD010.
803-804: Replace hard tab with spaces & confirm removal
Therpchttp.Newcall no longer includes"/websocket"; replace the hard tab with spaces to satisfy MD010.
834-837: Replace hard tabs in Go code
Convert hard tabs to spaces in theNewChainClientV2block to comply with MD010.
853-856: Use tab JSON indent & fix tabs in markdown
Updating to"\t"is correct; please remove hard tabs per MD010.
930-933: Replace hard tab with spaces & confirm removal
Removed"/websocket"from the client instantiation; replace the hard tab with spaces per MD010.
961-964: Replace hard tabs in Go code
Use spaces for indentation in theNewChainClientV2call to satisfy MD010.
980-982: Use tab JSON indent & fix tabs in markdown
Switching to"\t"for JSON indent is correct; please remove hard tabs on these lines per MD010.
1066-1069: Replace hard tab with spaces & confirm removal
Removed"/websocket"argument; replace the hard tab with spaces to comply with MD010.
1097-1100: Replace hard tabs in Go code
Convert hard tabs to spaces in theNewChainClientV2section to satisfy MD010.
1115-1116: Use tab JSON indent & fix tabs in markdown
Updating to"\t"is correct; please remove hard tabs per MD010.
1247-1250: Replace hard tab with spaces & confirm removal
Removed"/websocket"from the RPC client call; replace the hard tab with spaces per MD010.
1278-1281: Replace hard tabs in Go code
Use spaces for indentation in theNewChainClientV2block to satisfy MD010.
1296-1297: Use tab JSON indent & fix tabs in markdown
Switching the indent string to"\t"is correct; please remove hard tabs per MD010.
1457-1460: Replace hard tab with spaces & confirm removal
Removed"/websocket"from the Tendermint client initialization; replace the hard tab with spaces per MD010.
1488-1491: Replace hard tabs in Go code
Convert hard tabs to spaces in theNewChainClientV2call to comply with MD010.
1506-1507: Use tab JSON indent & fix tabs in markdown
Updating to"\t"is correct; please remove hard tabs per MD010.
1611-1614: Replace hard tab with spaces & confirm removal
Removed"/websocket"argument fromrpchttp.New; replace the hard tab with spaces per MD010.
1642-1645: Replace hard tabs in Go code
Use spaces for indentation in theNewChainClientV2section to satisfy MD010.
1661-1663: Use tab JSON indent & fix tabs in markdown
Switching to"\t"forjson.MarshalIndentis correct; please remove hard tabs to comply with MD010.
1822-1823: Use proper markdown headings instead of emphasis
Replace**TxResponse**and**ABCIMessageLog**with appropriate heading syntax (e.g.,## TxResponse) to comply with MD036.Also applies to: 1842-1843
Makefile (5)
2-9: Pin repository versions explicitly for reproducibility
DefiningCOSMOS_SDK_VERSION,INJECTIVE_CORE_VERSION, andINDEXER_VERSIONensures consistent document generations. Consider allowing overrides via environment variables (e.g.,COSMOS_SDK_VERSION ?= …) so CI pipelines can bump versions without editing the Makefile.
12-15: Use a unique temporary directory per invocation
Hard-coding/tmp/injective-docs-reposmay collide if multiple workflows run in parallel. Consider generating a unique temp dir withmktemp -d, for example:TEMP_DIR := $(shell mktemp -d injective-docs-XXXXXX)
36-40: Sequence clone, update, cleanup for errors
update-errors-documentationcleanly wraps repository management around the error-doc pipeline. If desired, you could addset -ein your scripts to halt on the first failure.
47-54: Provide a concise alias for the combined update
update-all-proto-related-filesis comprehensive but verbose. For ergonomics, add a short alias (e.g.,all) or rename this toupdate-all-docs.
64-66: Guard cleanup to avoid accidental deletion
To ensure you never delete/or an empty variable, you could add a safety check:clean-repos: @test -n "$(TEMP_DIR)" && test "$(TEMP_DIR)" != "/" && rm -rf "$(TEMP_DIR)"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (127)
Makefile(1 hunks)scripts/extract_errors.sh(1 hunks)scripts/generate_errors_md.sh(1 hunks)scripts/generate_proto_json_files.sh(1 hunks)source/includes/_accountsrpc.md(21 hunks)source/includes/_auction.md(5 hunks)source/includes/_auctionsrpc.md(10 hunks)source/includes/_authz.md(23 hunks)source/includes/_bank.md(55 hunks)source/includes/_broadcaster.md(10 hunks)source/includes/_chainstream.md(7 hunks)source/includes/_changelog.md(1 hunks)source/includes/_clients.md(1 hunks)source/includes/_derivativesrpc.md(58 hunks)source/includes/_erc20.md(1 hunks)source/includes/_errors.md(1 hunks)source/includes/_evm.md(1 hunks)source/includes/_explorerrpc.md(67 hunks)source/includes/_ibccorechannel.md(63 hunks)source/includes/_ibccoreclient.md(40 hunks)source/includes/_ibccoreconnection.md(28 hunks)source/includes/_ibctransfer.md(35 hunks)source/includes/_insurance.md(9 hunks)source/includes/_insurancerpc.md(4 hunks)source/includes/_metarpc.md(11 hunks)source/includes/_oracle.md(6 hunks)source/includes/_oraclerpc.md(15 hunks)source/includes/_overview.md(1 hunks)source/includes/_permissions.md(87 hunks)source/includes/_portfoliorpc.md(6 hunks)source/includes/_spotrpc.md(41 hunks)source/includes/_tendermint.md(28 hunks)source/includes/_tokenfactory.md(50 hunks)source/includes/_txfees.md(4 hunks)source/includes/_wasm.md(55 hunks)source/includes/_wasmx.md(6 hunks)source/index.html.md(1 hunks)source/json_tables/chain/abciMessageLog.json(0 hunks)source/json_tables/chain/attribute.json(0 hunks)source/json_tables/chain/errors/auction.json(1 hunks)source/json_tables/chain/errors/erc20.json(1 hunks)source/json_tables/chain/errors/exchange.json(1 hunks)source/json_tables/chain/errors/insurance.json(1 hunks)source/json_tables/chain/errors/ocr.json(1 hunks)source/json_tables/chain/errors/oracle.json(1 hunks)source/json_tables/chain/errors/peggy.json(1 hunks)source/json_tables/chain/errors/permissions.json(1 hunks)source/json_tables/chain/errors/tokenfactory.json(1 hunks)source/json_tables/chain/errors/wasmx.json(1 hunks)source/json_tables/chain/event.json(0 hunks)source/json_tables/chain/eventAttribute.json(0 hunks)source/json_tables/chain/exchange/derivativeMarket.json(1 hunks)source/json_tables/chain/exchange/effectivePosition.json(1 hunks)source/json_tables/chain/exchange/expiryFuturesMarketInfo.json(1 hunks)source/json_tables/chain/exchange/fullDerivativeMarket.json(1 hunks)source/json_tables/chain/exchange/level.json(1 hunks)source/json_tables/chain/exchange/marketStatus.json(0 hunks)source/json_tables/chain/exchange/midPriceAndTOB.json(1 hunks)source/json_tables/chain/exchange/perpetualMarketFunding.json(1 hunks)source/json_tables/chain/exchange/queryDerivativeOrderbookResponse.json(1 hunks)source/json_tables/chain/exchange/querySpotMidPriceAndTOBResponse.json(1 hunks)source/json_tables/chain/exchange/querySpotOrderbookRequest.json(1 hunks)source/json_tables/chain/exchange/spotMarket.json(1 hunks)source/json_tables/chain/exchange/trimmedDerivativeLimitOrder.json(1 hunks)source/json_tables/chain/exchange/trimmedLimitOrder.json(1 hunks)source/json_tables/chain/exchange/trimmedSpotLimitOrder.json(1 hunks)source/json_tables/chain/exchange/volumeRecord.json(1 hunks)source/json_tables/chain/stringEvent.json(0 hunks)source/json_tables/chain/tx/broadcastTxResponse.json(0 hunks)source/json_tables/chain/txResponse.json(0 hunks)source/json_tables/cosmos/ABCIMessageLog.json(1 hunks)source/json_tables/cosmos/Attribute.json(1 hunks)source/json_tables/cosmos/Coin.json(1 hunks)source/json_tables/cosmos/DecCoin.json(1 hunks)source/json_tables/cosmos/DecProto.json(1 hunks)source/json_tables/cosmos/GasInfo.json(1 hunks)source/json_tables/cosmos/IntProto.json(1 hunks)source/json_tables/cosmos/MsgData.json(1 hunks)source/json_tables/cosmos/Result.json(1 hunks)source/json_tables/cosmos/SearchBlocksResult.json(1 hunks)source/json_tables/cosmos/SearchTxsResult.json(1 hunks)source/json_tables/cosmos/SimulationResponse.json(1 hunks)source/json_tables/cosmos/StringEvent.json(1 hunks)source/json_tables/cosmos/TxMsgData.json(1 hunks)source/json_tables/cosmos/TxResponse.json(1 hunks)source/json_tables/cosmos/auth/AddressBytesToStringRequest.json(1 hunks)source/json_tables/cosmos/auth/AddressBytesToStringResponse.json(1 hunks)source/json_tables/cosmos/auth/AddressStringToBytesRequest.json(1 hunks)source/json_tables/cosmos/auth/AddressStringToBytesResponse.json(1 hunks)source/json_tables/cosmos/auth/BaseAccount.json(1 hunks)source/json_tables/cosmos/auth/Bech32PrefixResponse.json(1 hunks)source/json_tables/cosmos/auth/GenesisState.json(1 hunks)source/json_tables/cosmos/auth/ModuleAccount.json(1 hunks)source/json_tables/cosmos/auth/ModuleCredential.json(1 hunks)source/json_tables/cosmos/auth/MsgUpdateParams.json(1 hunks)source/json_tables/cosmos/auth/Params.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountAddressByIDRequest.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountAddressByIDResponse.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountInfoRequest.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountInfoResponse.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountRequest.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountResponse.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountsRequest.json(1 hunks)source/json_tables/cosmos/auth/QueryAccountsResponse.json(1 hunks)source/json_tables/cosmos/auth/QueryModuleAccountByNameRequest.json(1 hunks)source/json_tables/cosmos/auth/QueryModuleAccountByNameResponse.json(1 hunks)source/json_tables/cosmos/auth/QueryModuleAccountsResponse.json(1 hunks)source/json_tables/cosmos/auth/QueryParamsResponse.json(1 hunks)source/json_tables/cosmos/bank/Balance.json(1 hunks)source/json_tables/cosmos/bank/BalanceUpdate.json(1 hunks)source/json_tables/cosmos/bank/DenomOwner.json(1 hunks)source/json_tables/cosmos/bank/DenomUnit.json(1 hunks)source/json_tables/cosmos/bank/GenesisState.json(1 hunks)source/json_tables/cosmos/bank/Input.json(1 hunks)source/json_tables/cosmos/bank/Metadata.json(1 hunks)source/json_tables/cosmos/bank/MsgMultiSend.json(1 hunks)source/json_tables/cosmos/bank/MsgSend.json(1 hunks)source/json_tables/cosmos/bank/MsgSetSendEnabled.json(1 hunks)source/json_tables/cosmos/bank/MsgUpdateParams.json(1 hunks)source/json_tables/cosmos/bank/Output.json(1 hunks)source/json_tables/cosmos/bank/Params.json(1 hunks)source/json_tables/cosmos/bank/QueryAllBalancesRequest.json(1 hunks)source/json_tables/cosmos/bank/QueryAllBalancesResponse.json(1 hunks)source/json_tables/cosmos/bank/QueryBalanceRequest.json(1 hunks)source/json_tables/cosmos/bank/QueryBalanceResponse.json(1 hunks)source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringRequest.json(1 hunks)source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringResponse.json(1 hunks)
💤 Files with no reviewable changes (8)
- source/json_tables/chain/abciMessageLog.json
- source/json_tables/chain/tx/broadcastTxResponse.json
- source/json_tables/chain/exchange/marketStatus.json
- source/json_tables/chain/event.json
- source/json_tables/chain/stringEvent.json
- source/json_tables/chain/attribute.json
- source/json_tables/chain/eventAttribute.json
- source/json_tables/chain/txResponse.json
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
source/includes/_oraclerpc.md
64-64: Hard tabs
Column: 1
(MD010, no-hard-tabs)
228-228: Hard tabs
Column: 1
(MD010, no-hard-tabs)
229-229: Hard tabs
Column: 1
(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1
(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1
(MD010, no-hard-tabs)
266-266: Hard tabs
Column: 1
(MD010, no-hard-tabs)
278-278: Hard tabs
Column: 1
(MD010, no-hard-tabs)
289-289: Hard tabs
Column: 1
(MD010, no-hard-tabs)
290-290: Hard tabs
Column: 1
(MD010, no-hard-tabs)
291-291: Hard tabs
Column: 1
(MD010, no-hard-tabs)
292-292: Hard tabs
Column: 1
(MD010, no-hard-tabs)
294-294: Hard tabs
Column: 1
(MD010, no-hard-tabs)
295-295: Hard tabs
Column: 1
(MD010, no-hard-tabs)
296-296: Hard tabs
Column: 1
(MD010, no-hard-tabs)
297-297: Hard tabs
Column: 1
(MD010, no-hard-tabs)
298-298: Hard tabs
Column: 1
(MD010, no-hard-tabs)
299-299: Hard tabs
Column: 1
(MD010, no-hard-tabs)
300-300: Hard tabs
Column: 1
(MD010, no-hard-tabs)
301-301: Hard tabs
Column: 1
(MD010, no-hard-tabs)
303-303: Hard tabs
Column: 1
(MD010, no-hard-tabs)
418-418: Hard tabs
Column: 1
(MD010, no-hard-tabs)
419-419: Hard tabs
Column: 1
(MD010, no-hard-tabs)
423-423: Hard tabs
Column: 1
(MD010, no-hard-tabs)
424-424: Hard tabs
Column: 1
(MD010, no-hard-tabs)
456-456: Hard tabs
Column: 1
(MD010, no-hard-tabs)
468-468: Hard tabs
Column: 1
(MD010, no-hard-tabs)
469-469: Hard tabs
Column: 1
(MD010, no-hard-tabs)
470-470: Hard tabs
Column: 1
(MD010, no-hard-tabs)
471-471: Hard tabs
Column: 1
(MD010, no-hard-tabs)
473-473: Hard tabs
Column: 1
(MD010, no-hard-tabs)
474-474: Hard tabs
Column: 1
(MD010, no-hard-tabs)
475-475: Hard tabs
Column: 1
(MD010, no-hard-tabs)
476-476: Hard tabs
Column: 1
(MD010, no-hard-tabs)
477-477: Hard tabs
Column: 1
(MD010, no-hard-tabs)
479-479: Hard tabs
Column: 1
(MD010, no-hard-tabs)
480-480: Hard tabs
Column: 1
(MD010, no-hard-tabs)
481-481: Hard tabs
Column: 1
(MD010, no-hard-tabs)
482-482: Hard tabs
Column: 1
(MD010, no-hard-tabs)
484-484: Hard tabs
Column: 1
(MD010, no-hard-tabs)
485-485: Hard tabs
Column: 1
(MD010, no-hard-tabs)
486-486: Hard tabs
Column: 1
(MD010, no-hard-tabs)
503-503: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_metarpc.md
68-68: Hard tabs
Column: 1
(MD010, no-hard-tabs)
148-148: Hard tabs
Column: 1
(MD010, no-hard-tabs)
262-262: Hard tabs
Column: 1
(MD010, no-hard-tabs)
418-418: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_auctionsrpc.md
67-67: Hard tabs
Column: 1
(MD010, no-hard-tabs)
242-242: Hard tabs
Column: 1
(MD010, no-hard-tabs)
580-580: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_wasmx.md
104-104: Hard tabs
Column: 1
(MD010, no-hard-tabs)
134-134: Hard tabs
Column: 1
(MD010, no-hard-tabs)
178-178: Hard tabs
Column: 1
(MD010, no-hard-tabs)
211-211: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
231-231: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
source/includes/_ibccoreclient.md
61-61: Hard tabs
Column: 1
(MD010, no-hard-tabs)
92-92: Hard tabs
Column: 1
(MD010, no-hard-tabs)
281-281: Hard tabs
Column: 1
(MD010, no-hard-tabs)
312-312: Hard tabs
Column: 1
(MD010, no-hard-tabs)
961-961: Hard tabs
Column: 1
(MD010, no-hard-tabs)
992-992: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1124-1124: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1155-1155: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1339-1339: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1370-1370: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1502-1502: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1533-1533: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1551-1551: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1631-1631: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1662-1662: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1679-1679: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1770-1770: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1801-1801: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1818-1818: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1894-1894: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1925-1925: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1942-1942: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_tokenfactory.md
58-58: Hard tabs
Column: 1
(MD010, no-hard-tabs)
89-89: Hard tabs
Column: 1
(MD010, no-hard-tabs)
108-108: Hard tabs
Column: 1
(MD010, no-hard-tabs)
201-201: Hard tabs
Column: 1
(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1
(MD010, no-hard-tabs)
250-250: Hard tabs
Column: 1
(MD010, no-hard-tabs)
410-410: Hard tabs
Column: 1
(MD010, no-hard-tabs)
441-441: Hard tabs
Column: 1
(MD010, no-hard-tabs)
458-458: Hard tabs
Column: 1
(MD010, no-hard-tabs)
697-697: Hard tabs
Column: 1
(MD010, no-hard-tabs)
727-727: Hard tabs
Column: 1
(MD010, no-hard-tabs)
755-755: Hard tabs
Column: 1
(MD010, no-hard-tabs)
789-789: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
809-809: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
914-914: Hard tabs
Column: 1
(MD010, no-hard-tabs)
944-944: Hard tabs
Column: 1
(MD010, no-hard-tabs)
972-972: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1012-1012: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1032-1032: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1137-1137: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1167-1167: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1195-1195: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1235-1235: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1255-1255: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1373-1373: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1403-1403: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1455-1455: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1513-1513: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1533-1533: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1634-1634: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1664-1664: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1691-1691: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1722-1722: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1742-1742: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
source/includes/_ibccorechannel.md
63-63: Hard tabs
Column: 1
(MD010, no-hard-tabs)
94-94: Hard tabs
Column: 1
(MD010, no-hard-tabs)
113-113: Hard tabs
Column: 1
(MD010, no-hard-tabs)
270-270: Hard tabs
Column: 1
(MD010, no-hard-tabs)
301-301: Hard tabs
Column: 1
(MD010, no-hard-tabs)
319-319: Hard tabs
Column: 1
(MD010, no-hard-tabs)
548-548: Hard tabs
Column: 1
(MD010, no-hard-tabs)
579-579: Hard tabs
Column: 1
(MD010, no-hard-tabs)
598-598: Hard tabs
Column: 1
(MD010, no-hard-tabs)
838-838: Hard tabs
Column: 1
(MD010, no-hard-tabs)
869-869: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1111-1111: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1142-1142: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1274-1274: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1305-1305: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1325-1325: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1434-1434: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1465-1465: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1485-1485: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1635-1635: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1666-1666: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1686-1686: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1790-1790: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1821-1821: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1841-1841: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1952-1952: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1983-1983: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2004-2004: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2151-2151: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2182-2182: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2202-2202: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2306-2306: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2337-2337: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2357-2357: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2461-2461: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2492-2492: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2511-2511: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_oracle.md
100-100: Hard tabs
Column: 1
(MD010, no-hard-tabs)
131-131: Hard tabs
Column: 1
(MD010, no-hard-tabs)
205-205: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
225-225: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
337-337: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
357-357: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
source/includes/_spotrpc.md
67-67: Hard tabs
Column: 1
(MD010, no-hard-tabs)
249-249: Hard tabs
Column: 1
(MD010, no-hard-tabs)
480-480: Hard tabs
Column: 1
(MD010, no-hard-tabs)
689-689: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1083-1083: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1287-1287: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1675-1675: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1882-1882: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1883-1883: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1884-1884: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1885-1885: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1886-1886: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1888-1888: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2420-2420: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2421-2421: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2506-2506: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2698-2698: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2928-2928: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_insurance.md
110-110: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
130-130: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
240-240: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
260-260: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
366-366: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
386-386: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
source/includes/_permissions.md
57-57: Hard tabs
Column: 1
(MD010, no-hard-tabs)
88-88: Hard tabs
Column: 1
(MD010, no-hard-tabs)
105-105: Hard tabs
Column: 1
(MD010, no-hard-tabs)
182-182: Hard tabs
Column: 1
(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 1
(MD010, no-hard-tabs)
230-230: Hard tabs
Column: 1
(MD010, no-hard-tabs)
703-703: Hard tabs
Column: 1
(MD010, no-hard-tabs)
734-734: Hard tabs
Column: 1
(MD010, no-hard-tabs)
753-753: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1226-1226: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1257-1257: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1277-1277: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1357-1357: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1388-1388: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1408-1408: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1487-1487: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1518-1518: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1537-1537: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1645-1645: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1676-1676: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1696-1696: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1802-1802: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1833-1833: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1852-1852: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1983-1983: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2014-2014: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2033-2033: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2166-2166: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2197-2197: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2216-2216: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2309-2309: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2340-2340: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2360-2360: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2444-2444: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2475-2475: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2492-2492: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3103-3103: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3134-3134: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3223-3223: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3331-3331: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
3351-3351: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
3492-3492: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3523-3523: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3590-3590: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3688-3688: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
3708-3708: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
3830-3830: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3861-3861: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3907-3907: Hard tabs
Column: 1
(MD010, no-hard-tabs)
3947-3947: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
3967-3967: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
4070-4070: Hard tabs
Column: 1
(MD010, no-hard-tabs)
4101-4101: Hard tabs
Column: 1
(MD010, no-hard-tabs)
4129-4129: Hard tabs
Column: 1
(MD010, no-hard-tabs)
4157-4157: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
4177-4177: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
source/includes/_bank.md
99-99: Hard tabs
Column: 1
(MD010, no-hard-tabs)
129-129: Hard tabs
Column: 1
(MD010, no-hard-tabs)
211-211: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
231-231: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
268-268: Hard tabs
Column: 1
(MD010, no-hard-tabs)
301-301: Hard tabs
Column: 1
(MD010, no-hard-tabs)
465-465: Hard tabs
Column: 1
(MD010, no-hard-tabs)
496-496: Hard tabs
Column: 1
(MD010, no-hard-tabs)
514-514: Hard tabs
Column: 1
(MD010, no-hard-tabs)
668-668: Hard tabs
Column: 1
(MD010, no-hard-tabs)
699-699: Hard tabs
Column: 1
(MD010, no-hard-tabs)
718-718: Hard tabs
Column: 1
(MD010, no-hard-tabs)
819-819: Hard tabs
Column: 1
(MD010, no-hard-tabs)
850-850: Hard tabs
Column: 1
(MD010, no-hard-tabs)
869-869: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1058-1058: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1089-1089: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1108-1108: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1212-1212: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1243-1243: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1261-1261: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1443-1443: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1474-1474: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1492-1492: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1586-1586: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1617-1617: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1635-1635: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1762-1762: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1793-1793: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1811-1811: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2183-2183: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2214-2214: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2233-2233: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2408-2408: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2409-2409: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2410-2410: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2411-2411: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2413-2413: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2414-2414: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2416-2416: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2417-2417: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2418-2418: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2422-2422: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2423-2423: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2454-2454: Hard tabs
Column: 1
(MD010, no-hard-tabs)
2473-2473: Hard tabs
Column: 1
(MD010, no-hard-tabs)
source/includes/_wasm.md
57-57: Hard tabs
Column: 1
(MD010, no-hard-tabs)
88-88: Hard tabs
Column: 1
(MD010, no-hard-tabs)
106-106: Hard tabs
Column: 1
(MD010, no-hard-tabs)
231-231: Hard tabs
Column: 1
(MD010, no-hard-tabs)
262-262: Hard tabs
Column: 1
(MD010, no-hard-tabs)
281-281: Hard tabs
Column: 1
(MD010, no-hard-tabs)
482-482: Hard tabs
Column: 1
(MD010, no-hard-tabs)
513-513: Hard tabs
Column: 1
(MD010, no-hard-tabs)
532-532: Hard tabs
Column: 1
(MD010, no-hard-tabs)
638-638: Hard tabs
Column: 1
(MD010, no-hard-tabs)
669-669: Hard tabs
Column: 1
(MD010, no-hard-tabs)
688-688: Hard tabs
Column: 1
(MD010, no-hard-tabs)
803-803: Hard tabs
Column: 1
(MD010, no-hard-tabs)
834-834: Hard tabs
Column: 1
(MD010, no-hard-tabs)
853-853: Hard tabs
Column: 1
(MD010, no-hard-tabs)
930-930: Hard tabs
Column: 1
(MD010, no-hard-tabs)
961-961: Hard tabs
Column: 1
(MD010, no-hard-tabs)
980-980: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1066-1066: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1097-1097: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1115-1115: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1247-1247: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1278-1278: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1296-1296: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1457-1457: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1488-1488: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1506-1506: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1611-1611: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1642-1642: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1661-1661: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1822-1822: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1842-1842: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1968-1968: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
1988-1988: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
🪛 LanguageTool
source/includes/_clients.md
[uncategorized] ~74-~74: Possible missing comma found.
Context: ...ying implementations. Choose V2 for new projects unless you have specific requirements f...
(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~85-~85: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...ge endpoints: - Human-readable format for: amounts, prices, margins, and notionals...
(RP_COLON)
[uncategorized] ~130-~130: Loose punctuation mark.
Context: ...wChainClientV2(...) ``` - ChainClient: Use this client if you need to interact...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~132-~132: Loose punctuation mark.
Context: ...should migrate to V2. - ChainClientV2: Use this client for all new application...
(UNLIKELY_OPENING_PUNCTUATION)
source/includes/_errors.md
[misspelling] ~1-~1: SDK en errors kunnen samen één (Nederlandstalig) begrip zijn. In dit geval past hier beter “SDK-errors”.
Context: # Cosmos SDK errors ## Authz module <!-- MARKDOWN-AUTO-DO...
(XXX_DING)
[uncategorized] ~360-~360: Als dit een samenstelling is (dus samen naar een enkel ding verwijst), hoort het aaneengeschreven.
Context: ...le> ## Oracle module <!-- MARKDOWN-AUTO-DOCS:START (JSON_TO...
(SAMENSTELLING_EIGENNAAM)
source/includes/_chainstream.md
[uncategorized] ~268-~268: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...t are filtered by the request parameters and it's identified by the block height. <...
(COMMA_COMPOUND_SENTENCE)
source/includes/_evm.md
[uncategorized] ~7-~7: Possible missing comma found.
Context: ...ative EVM implementation. ## Account Queries an Ethereum account **IP rate limit gr...
(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~153-~153: Possible missing comma found.
Context: ...N-AUTO-DOCS:END --> ## CosmosAccount Queries an Ethereum account's Cosmos Address *...
(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~872-~872: You might be missing the article “the” here.
Context: ...k of the current block, it's similar to feemarket module's method, but also checks london...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
🪛 Shellcheck (0.10.0)
scripts/generate_errors_md.sh
[warning] 13-13: prefix appears unused. Verify use (or export if used externally).
(SC2034)
[warning] 14-14: Declare and assign separately to avoid masking return values.
(SC2155)
[warning] 17-17: Declare and assign separately to avoid masking return values.
(SC2155)
scripts/generate_proto_json_files.sh
[warning] 459-459: Declare and assign separately to avoid masking return values.
(SC2155)
[warning] 480-480: Declare and assign separately to avoid masking return values.
(SC2155)
🪛 checkmake (0.2.2)
Makefile
[warning] 18-18: Missing required phony target "all"
(minphony)
[warning] 18-18: Missing required phony target "clean"
(minphony)
[warning] 18-18: Missing required phony target "test"
(minphony)
⏰ Context from checks skipped due to timeout of 90000ms (5)
- GitHub Check: Redirect rules - injective-docs
- GitHub Check: Header rules - injective-docs
- GitHub Check: Pages changed - injective-docs
- GitHub Check: test (2.7)
- GitHub Check: test (3.2)
🔇 Additional comments (296)
source/index.html.md (1)
39-40: Verify existence oferc20andevminclude files.Ensure that corresponding include files (e.g.
erc20.html.md,evm.html.mdor their partials) exist undersource/so the documentation build won’t break.source/json_tables/cosmos/auth/QueryAccountRequest.json (1)
3-6: Schema definition looks correct. Theaddressparameter is defined with typestring, a clear description, and marked as required.source/includes/_overview.md (1)
72-74: Appropriate use of warning aside. Wrapping the note in<aside class="warning">enhances visibility and matches the updated documentation style.source/json_tables/cosmos/auth/QueryAccountAddressByIDRequest.json (1)
1-15: Schema for account address query looks correctBoth
idandaccount_idare properly defined with types, deprecation notes, and"Required"flags. No issues found.source/json_tables/cosmos/bank/QueryBalanceResponse.json (1)
1-7: Approve new schema addition.The
QueryBalanceResponse.jsonschema correctly definesbalanceastypes.Coinand aligns with existingCoin.json. No issues detected.source/json_tables/chain/exchange/queryDerivativeOrderbookResponse.json (1)
2-3: Ensure referenced schema exists
The typeTrimmedLimitOrder Arraymust correspond to an existing JSON schema (TrimmedLimitOrder.json). Please verify that this schema file is present and correctly named.#!/bin/bash # Verify that the TrimmedLimitOrder schema file exists under json_tables fd TrimmedLimitOrder.json source/json_tablessource/json_tables/cosmos/auth/QueryAccountInfoRequest.json (1)
1-7: AddRequiredfield for consistency
Other request schemas include aRequiredflag. Please add"Required": "Yes"to the parameter object:{ "Parameter": "address", "Type": "string", "Description": "address is the account address string.", + "Required": "Yes" }Likely an incorrect or invalid review comment.
source/json_tables/cosmos/bank/QueryDenomMetadataByQueryStringResponse.json (1)
1-7: Schema looks good
The response schema defines themetadatafield with a clear description. No changes needed.source/json_tables/cosmos/auth/QueryAccountsResponse.json (1)
1-12: Approve new JSON schema for QueryAccountsResponse.The schema aligns with existing patterns and accurately documents the response parameters.
source/json_tables/cosmos/GasInfo.json (1)
1-12: Approve new JSON schema for GasInfo.This schema correctly defines
gas_wantedandgas_usedwith clear descriptions.source/json_tables/cosmos/auth/GenesisState.json (1)
1-12: Approve new JSON schema for GenesisState.The addition correctly outlines the
GenesisStatestructure with required parameters.source/includes/_changelog.md (1)
3-10: Approve 2025-07-10 changelog entry.The updates are clearly documented and follow existing formatting conventions.
source/json_tables/cosmos/bank/DenomOwner.json (2)
3-6: Looks good foraddress.
Theaddressparameter has a clear description and correct type.
8-11: Looks good forbalance.
Thebalanceparameter correctly referencestypes.Coinand includes a descriptive explanation.source/json_tables/chain/errors/tokenfactory.json (1)
1-34: Verify error schema conventions and coverage.Ensure that:
- The keys
"Error Code"and"Description"adhere to the project’s naming style (e.g., snake_case vs. title case).- All descriptions consistently end with a period.
- Error codes between 7 and 12 are intentionally omitted or add missing definitions if needed.
source/json_tables/cosmos/bank/Params.json (1)
3-6: Verifysend_enabledtype naming.Confirm that
"SendEnabled array"aligns with the canonical type naming used elsewhere (e.g.,"SendEnabled[]").source/json_tables/cosmos/ABCIMessageLog.json (1)
13-16: ```shell
#!/bin/bashList a few JSON schema files in source/json_tables/cosmos
echo "Sample JSON files:"
ls source/json_tables/cosmos | head -n 5Show custom (non-primitive) type references in these JSON tables
echo -e "\nCustom type references in JSON tables:"
rg -n '"Type": "[A-Z]' source/json_tables/cosmos | head -n 20</details> <details> <summary>source/json_tables/cosmos/bank/MsgUpdateParams.json (1)</summary> `3-13`: **Verify the `Params` type resolution.** The `params` field is typed as `Params`—ensure this matches the fully qualified protobuf-generated type in the bank module (e.g., `github_com_cosmos_cosmos_sdk_modules_bank_types.Params`). </details> <details> <summary>source/json_tables/cosmos/bank/Balance.json (1)</summary> `1-12`: **Looks good: JSON schema is well-formed and complete.** All parameters have clear types and descriptions, aligning with other Cosmos SDK bank module schemas. </details> <details> <summary>source/json_tables/chain/errors/wasmx.json (1)</summary> `1-47`: **OK: Error codes are sequential and descriptions are clear.** The list covers codes 1 through 11 in order, matching upstream definitions and providing unambiguous descriptions. </details> <details> <summary>source/json_tables/cosmos/bank/DenomUnit.json (1)</summary> `1-18`: **Good: DenomUnit schema is complete and descriptive.** Types and descriptions clearly explain all fields, consistent with other bank module definitions. </details> <details> <summary>source/json_tables/cosmos/bank/QueryBalanceRequest.json (1)</summary> `1-15`: **Schema for QueryBalanceRequest is accurate.** All required flags, types, and descriptions are present and concise. </details> <details> <summary>source/json_tables/cosmos/SearchBlocksResult.json (1)</summary> `1-32`: **JSON schema is well-structured and consistent.** All paginated result fields are documented with clear types and descriptions, matching similar schemas like `SearchTxsResult.json`. </details> <details> <summary>source/json_tables/chain/errors/erc20.json (1)</summary> `1-38`: **ERC20 error codes are comprehensive and well-documented.** Error codes are sorted and descriptions align with module operations. </details> <details> <summary>source/json_tables/cosmos/auth/MsgUpdateParams.json (1)</summary> `1-14`: **Authentication message schema is clear and complete.** Required fields `authority` and `params` are correctly specified with types and descriptions. </details> <details> <summary>source/json_tables/chain/errors/peggy.json (1)</summary> `1-62`: **Peggy error catalog is complete and well-ordered.** Error codes 1–15 are listed sequentially with clear descriptions. </details> <details> <summary>source/includes/_insurancerpc.md (2)</summary> `18-29`: **Upgrade Python example to `IndexerClient` with JSON pretty-printing** The Python snippet correctly imports `json`, switches to `IndexerClient`, and pretty-prints the fetched data. --- `68-71`: **Standardize JSON indentation in Go example** Switching to `json.MarshalIndent(res, "", "\t")` aligns with the tab-indent style used across Go examples. </details> <details> <summary>source/includes/_auctionsrpc.md (5)</summary> `19-31`: **Upgrade Python `Auction` example to `IndexerClient` with JSON pretty-printing** The snippet now imports `json`, uses `IndexerClient`, and wraps the output in `json.dumps(..., indent=2)`. --- `67-69`: **Use tab indentation in Go `Auction` example** Changing to `json.MarshalIndent(res, "", "\t")` ensures consistent JSON formatting. --- `196-208`: **Upgrade Python `Auctions` example to `IndexerClient` with JSON pretty-printing** Similar to the single‐auction example, this correctly imports `json`, switches to `IndexerClient`, and pretty-prints the list response. --- `242-243`: **Use tab indentation in Go `Auctions` example** Standardizing on `"\t"` for `json.MarshalIndent` keeps formatting uniform across modules. --- `400-416`: **Upgrade Python `InjBurntEndpoint` example to `IndexerClient` with JSON pretty-printing** Imports and client instantiation are updated correctly, and the output is pretty-printed via `json.dumps`. </details> <details> <summary>source/includes/_txfees.md (4)</summary> `21-29`: **Migrate Python example to `AsyncClient` v2** The import path and client instantiation are correctly updated to `pyinjective.async_client_v2.AsyncClient`. --- `48-57`: **Update Go RPC client initialization** Removing the `"/websocket"` argument and switching to `rpchttp.New(network.TmEndpoint)` aligns with other chain modules. --- `88-93`: **Use `NewChainClientV2` for Go chain client** Switching to `chainclient.NewChainClientV2` is correct for SDK v1.58.0 compatibility. --- `105-106`: **Standardize JSON output to tab indentation** Changing to `json.MarshalIndent(res, "", "\t")` ensures uniform formatting across Go examples. </details> <details> <summary>source/includes/_ibccoreconnection.md (24)</summary> `21-31`: **Upgrade Python `Connection` example to `AsyncClient` v2** The import path and client instantiation are correctly updated to `pyinjective.async_client_v2.AsyncClient`. --- `62-63`: **Update Go RPC client initialization for IBC Connection** Using `rpchttp.New(network.TmEndpoint)` without `"/websocket"` matches the new RPC pattern. --- `93-97`: **Use `NewChainClientV2` in Go IBC Connection example** Replacing `NewChainClient` with `NewChainClientV2` is correct for the updated SDK. --- `111-112`: **Standardize JSON output to tab indentation** Switching to `json.MarshalIndent(res, "", "\t")` keeps Go examples consistent. --- `238-245`: **Upgrade Python `Connections` example to `AsyncClient` v2** Imports and client instantiation are updated correctly, and the pagination fetch call remains accurate. --- `282-283`: **Update Go RPC client initialization for IBC Connections** The removal of the `"/websocket"` argument is consistent with other chain RPC updates. --- `313-319`: **Use `NewChainClientV2` in Go IBC Connections example** Switching to `chainclient.NewChainClientV2` aligns with SDK v1.58.0. --- `331-332`: **Standardize JSON output to tab indentation** Changing to `json.MarshalIndent(res, "", "\t")` for consistency. --- `552-559`: **Upgrade Python `ClientConnections` example to `AsyncClient` v2** The import path and method call are updated correctly. --- `593-594`: **Update Go RPC client initialization for IBC ClientConnections** Using `rpchttp.New(network.TmEndpoint)` matches the new pattern. --- `624-629`: **Use `NewChainClientV2` in Go IBC ClientConnections example** Replacing `NewChainClient` with `NewChainClientV2` is correct for the updated SDK. --- `642-643`: **Standardize JSON output to tab indentation** Switching to `json.MarshalIndent(res, "", "\t")` for formatting consistency. --- `695-703`: **Upgrade Python `ConnectionClientState` example to `AsyncClient` v2** Import and client instantiation are updated correctly. --- `741-742`: **Update Go RPC client initialization for ConnectionClientState** Using `rpchttp.New(network.TmEndpoint)` without the websocket path matches the new style. --- `772-776`: **Use `NewChainClientV2` in Go ConnectionClientState example** Switching to `chainclient.NewChainClientV2` aligns with SDK updates. --- `790-791`: **Simplify Go output by printing the raw response** The example prints `res` directly instead of marshaling—this matches the other connection examples. --- `924-931`: **Upgrade Python `ConnectionConsensusState` example to `AsyncClient` v2** The import path and method call are updated correctly. --- `974-975`: **Update Go RPC client initialization for ConnectionConsensusState** Using `rpchttp.New(network.TmEndpoint)` conforms to the updated RPC pattern. --- `1005-1009`: **Use `NewChainClientV2` in Go ConnectionConsensusState example** Replacing `NewChainClient` with `NewChainClientV2` is correct. --- `1026-1027`: **Simplify Go output by printing the raw response** Printing `res` directly is consistent with other chain examples. --- `1086-1094`: **Upgrade Python `ConnectionParams` example to `AsyncClient` v2** The import path and method call are updated correctly. --- `1132-1133`: **Update Go RPC client initialization for ConnectionParams** Using `rpchttp.New(network.TmEndpoint)` matches the new standard. --- `1163-1167`: **Use `NewChainClientV2` in Go ConnectionParams example** Switching to `chainclient.NewChainClientV2` aligns with SDK v1.58.0. --- `1180-1181`: **Standardize JSON output to tab indentation** Changing to `json.MarshalIndent(res, "", "\t")` ensures uniform formatting. </details> <details> <summary>source/includes/_broadcaster.md (3)</summary> `17-18`: **Confirm branch reference update** The snippet URLs now point to the `dev` branch instead of `master`, matching the PR’s modernization goal. --- `28-28`: **Import updated to v2 client** Switching from `async_client.AsyncClient` to `async_client_v2.AsyncClient` aligns with the new SDK version. --- `201-207`: **Use gas heuristics method** Updating to `MsgBroadcasterWithPk.new_using_gas_heuristics` for non-simulated fee estimation is correct per the latest SDK. </details> <details> <summary>source/includes/_metarpc.md (11)</summary> `17-21`: **Adopt `IndexerClient` with JSON pretty-printing** Replacing `AsyncClient` with `IndexerClient` and adding `import json` enables `json.dumps(resp, indent=2)` for readable output. --- `26-27`: **Instantiate with `IndexerClient`** `client = IndexerClient(network)` aligns with updated import. --- `28-28`: **Pretty-print JSON response** `print(json.dumps(resp, indent=2))` improves legibility. --- `68-68`: **Hard tabs intentional** The Go example’s use of `"\t"` indentation is deliberate for JSON formatting; ignore markdownlint’s hard-tab warning. --- `97-101`: **Adopt `IndexerClient` in Version example** Imports `json` and `IndexerClient` align Version snippet with modern SDK usage. --- `106-108`: **Pretty-print Version response** `json.dumps` call ensures consistent output formatting. --- `148-148`: **Hard tabs intentional** The Go Version example’s `"\t"` indent is correct; suppress markdownlint’s warning. --- `207-212`: **Adopt `IndexerClient` in Info example** Adding `import json` and using `IndexerClient` makes the Info snippet consistent. --- `220-220`: **Pretty-print Info response** Switching to `json.dumps(resp, indent=2)` provides clear logs. --- `262-262`: **Hard tabs intentional** The Go Info example’s indentation uses tabs intentionally; ignore markdownlint. --- `325-339`: **Switch to `IndexerClient` for streaming** Using `IndexerClient(network)` in StreamKeepAlive aligns with other examples. </details> <details> <summary>source/json_tables/chain/errors/ocr.json (1)</summary> `63-74`: **Verify presence of Error Code 18** The sequence jumps from code 17 to code 19—confirm that code 18 was intentionally omitted and not dropped by the extraction script. </details> <details> <summary>source/json_tables/cosmos/Result.json (1)</summary> `1-22`: **Schema addition looks good** Parameters `data`, `log`, `events`, and `msg_responses` align with Cosmos SDK 0.46 conventions. </details> <details> <summary>source/json_tables/chain/errors/oracle.json (1)</summary> `67-69`: **Review placeholder entry for Error Code 17** `"sample error"` appears to be a placeholder—confirm it wasn’t left in by accident. </details> <details> <summary>source/includes/_portfoliorpc.md (2)</summary> `39-72`: **Approve: Improved Go JSON formatting** The Go snippet now uses `json.MarshalIndent` with tabs for consistent, readable output. --- `342-387`: **Approve: Go streaming example update** The updated Go example correctly indents JSON output and aligns with the latest SDK client usage. </details> <details> <summary>source/json_tables/chain/errors/exchange.json (1)</summary> `72-73`: **Duplicate oracle type errors** Error Code 18 ("unsupported oracle type") and Error Code 33 ("invalid oracle type") describe very similar conditions. Consolidate or clarify the distinction to avoid confusion. Also applies to: 132-133 </details> <details> <summary>source/json_tables/chain/errors/permissions.json (1)</summary> `1-63`: **Verify missing Error Code 1** The list begins at Error Code 2. Please confirm if Error Code 1 is intentionally omitted or documented elsewhere. </details> <details> <summary>source/includes/_errors.md (1)</summary> `1-477`: **Auto-generated error documentation looks correct.** The new comprehensive error tables are properly embedded via the MARKDOWN-AUTO-DOCS placeholders. No manual edits are needed as this file is maintained by automation. </details> <details> <summary>source/includes/_accountsrpc.md (2)</summary> `18-29`: **Update Python example to use IndexerClient and pretty-print JSON.** The added `import json`, switch to `IndexerClient`, and `print(json.dumps(..., indent=2))` correctly modernize the snippet and improve output readability. --- `65-67`: **Use tab indentation in Go JSON output.** Switching to `json.MarshalIndent(res, "", "\t")` standardizes formatting with a tab character. This is a clear improvement for consistency. </details> <details> <summary>source/includes/_ibccorechannel.md (4)</summary> `21-21`: **Consistent Python `AsyncClient` import updated** All Python examples now correctly reference `AsyncClient` from `pyinjective.async_client_v2`, ensuring alignment with the upgraded SDK. Also applies to: 226-226, 503-503, 797-797, 1066-1066, 1231-1231, 1384-1384, 1592-1592, 1745-1745, 1900-1900, 2066-2066, 2261-2261, 2416-2416 --- `63-63`: **Remove `/websocket` suffix in Tendermint RPC client calls** Go snippets appropriately call `rpchttp.New(network.TmEndpoint)` without the deprecated `"/websocket"` argument. Also applies to: 270-270, 549-549, 839-839, 1111-1111, 1274-1274, 1434-1434, 1635-1635, 1790-1790, 1952-1952, 2151-2151, 2306-2306, 2461-2461 --- `94-94`: **Switch to `NewChainClientV2` for Go client instantiation** All Go examples have been updated to use `chainclient.NewChainClientV2`, matching the new SDK version. Also applies to: 301-301, 579-579, 869-869, 1142-1142, 1305-1305, 1465-1465, 1666-1666, 1821-1821, 1983-1983, 2182-2182, 2337-2337, 2492-2492 --- `113-113`: **Standardize JSON indentation with tabs** Examples now use `json.MarshalIndent(res, "", "\t")` for consistent, tab-based JSON formatting. Also applies to: 319-319, 598-598, 1325-1325, 1485-1485, 1686-1686, 1841-1841, 2004-2004, 2202-2202, 2357-2357, 2511-2511 </details> <details> <summary>source/includes/_derivativesrpc.md (8)</summary> `38-69`: **Go example JSON pretty-print** Switching to `json.MarshalIndent(res, "", "\t")` provides a nicely formatted output with tabs. This aligns with other Go code snippets. --- `304-310`: **Go Markets example JSON formatting** The updated `json.MarshalIndent(res, "", "\t")` call ensures the Markets response is formatted with tab indentation. --- `639-647`: **Go StreamMarkets example JSON formatting** Using `json.MarshalIndent(res, "", "\t")` in the streaming loop produces readable output for each event. --- `868-911`: **Go HistoricalOrders JSON pretty-print** The use of `json.MarshalIndent(res, "", "\t")` makes the historical orders output easy to read. --- `1223-1274`: **Go StreamHistoricalOrders JSON formatting** Indenting with `"\t"` in `json.MarshalIndent` is consistent and user-friendly for streaming output. --- `1462-1502`: **Go Trades example JSON pretty-print** The updated `json.MarshalIndent(res, "", "\t")` call ensures a clear, indented JSON output for the Trades response. --- `2202-2246`: **Go Positions example JSON formatting** Using `json.MarshalIndent(res, "", "\t")` provides a nicely indented output for fetched positions. --- `2737-2778`: **Go LiquidablePositions JSON pretty-print** Indenting with `"\t"` in `json.MarshalIndent` for Go examples remains consistent and improves readability. </details> <details> <summary>source/includes/_wasmx.md (11)</summary> `13-14`: **Auto-docs start marker is correctly added.** The `MARKDOWN-AUTO-DOCS:START` directive for the Python example snippet uses the proper source URL and syntax. --- `22-23`: **Python imports updated to use v2 client and broadcaster.** Switching to `pyinjective.async_client_v2.AsyncClient` and `MsgBroadcasterWithPk` aligns with the new SDK broadcast utilities. --- `30-30`: **Environment variable retrieval is correct.** Loading `INJECTIVE_PRIVATE_KEY` via `dotenv.load_dotenv()` and `os.getenv` matches the pattern in other examples. --- `38-40`: **Gas price fetch and adjustment follow updated pattern.** Calling `client.current_chain_gas_price()` and scaling by 1.1 before broadcast matches the new gas-heuristics workflow. --- `42-48`: **MsgBroadcasterWithPk instantiation aligns with gas heuristics utility.** Passing `network`, `private_key`, `gas_price`, `client`, and `composer` to `new_using_gas_heuristics` is correct and simplifies transaction workflow. --- `50-50`: **PrivateKey conversion is correct.** Using `PrivateKey.from_hex` and deriving the public key and address follow standard patterns. --- `69-70`: **Transaction broadcast call is correct.** Replacing manual simulation/signing/broadcast with `message_broadcaster.broadcast([msg])` is consistent with the new utility. --- `77-77`: **Gas price update after broadcast is correct.** Calling `message_broadcaster.update_gas_price` to refresh the heuristic ensures subsequent broadcasts remain valid. --- `85-86`: **Go example auto-docs start marker is correctly added.** The `MARKDOWN-AUTO-DOCS:START` directive for the Go snippet references the proper example path and syntax. --- `205-205`: **BroadcastTxResponse JSON table generation is correct.** The `JSON_TO_HTML_TABLE` directive for `BroadcastTxResponse.json` uses the proper relative path and table syntax. --- `213-214`: **TxResponse JSON table generation is correct.** The `JSON_TO_HTML_TABLE` directive for `TxResponse.json` reflects the updated Cosmos SDK schema and naming conventions. </details> <details> <summary>source/includes/_tendermint.md (8)</summary> `14-15`: **Ensure snippet URLs reference the `dev` branch** The `MARKDOWN-AUTO-DOCS:START` tags for the Python Tendermint examples now point to `raw/dev` instead of `raw/master`, aligning with the branch upgrade. --- `19-19`: **Import updated to AsyncClient v2** The Python example now imports from `pyinjective.async_client_v2`, matching the v1.16 client changes. --- `56-59`: **Go RPC client initialization simplified** The Go snippet replaces the `/websocket` path with a direct `rpchttp.New(network.TmEndpoint)` call, streamlining RPC initialization. --- `87-92`: **Use `NewChainClientV2` for Go** The chain client instantiation is updated to `NewChainClientV2`, reflecting the new client version. --- `104-107`: **Standardize Go JSON indentation to tabs** The output formatting now uses `json.MarshalIndent(..., "\t")` for a tab-indented display. --- `361-361`: **Add `json` import for better output** Brings in `import json` to allow pretty-printing with `json.dumps`. --- `372-372`: **Use `json.dumps(..., indent=2)` in Python** Enhances readability by formatting the latest-block output as JSON. --- `399-399`: **Network environment switched to `devnet` in Go example** The GetLatestBlock Go example now targets `LoadNetwork("devnet", "lb")`, reflecting updated naming conventions. </details> <details> <summary>source/includes/_evm.md (2)</summary> `1-4`: **Docs structure: New EVM module reference.** The new `_evm.md` correctly introduces the EVM module with consistent headings and rate-limit info. Good work! --- `135-143`: **Inconsistent example: Missing `nonce` field.** The JSON response example (lines 135–143) omits `nonce` even though the response table (lines 145–149) includes it. Please either include `nonce` in the example or remove it from the table to maintain consistency. Also applies to: 145-149 > Likely an incorrect or invalid review comment. </details> <details> <summary>source/includes/_ibccoreclient.md (3)</summary> `1-5`: **Overall modernization complete.** The IBC core client documentation now uniformly uses the v2 async client, updated Go client instantiation, and dev branch URLs. This aligns perfectly with the PR objectives. --- `21-23`: **Verified Python import updates.** Updated examples now import `AsyncClient` from `pyinjective.async_client_v2` and `Network` from `pyinjective.core.network`, aligning with the v2 SDK changes. --- `60-63`: **Go client initialization updated.** `rpchttp.New(network.TmEndpoint)` no longer requires the `"/websocket"` suffix, and clients are instantiated with `NewChainClientV2`. This matches the PR objectives for modernizing Go SDK usage. </details> <details> <summary>source/includes/_bank.md (12)</summary> `12-23`: **Update Python example imports to v2 client and add JSON support.** The example correctly replaces the old `async_client` with `async_client_v2`, brings in `MsgBroadcasterWithPk`, and imports `json` for pretty-printing. These changes streamline the snippet. --- `28-30`: **Load environment variable for private key.** Switching to `os.getenv("INJECTIVE_PRIVATE_KEY")` is appropriate for security. Ensure the README documents this requirement. --- `38-40`: **Fetch and adjust gas price dynamically.** Retrieving `current_chain_gas_price()` and applying a 1.1 multiplier simplifies gas handling. --- `42-48`: **Instantiate `MsgBroadcasterWithPk` using gas heuristics.** The new utility replaces manual tx building and broadcasting, reducing boilerplate. --- `55-60`: **Construct `MsgSend` via composer.** The updated `composer.msg_send` call aligns with v2 interfaces and correctly passes parameters. --- `63-66`: **Broadcast transaction and print formatted output.** Using `message_broadcaster.broadcast` and `json.dumps` improves readability. --- `70-70`: **Update gas price post-broadcast.** Calling `update_gas_price` maintains up-to-date pricing for subsequent TXs. --- `99-99`: **Initialize CometBFT RPC client without `/websocket`.** Switching to `rpchttp.New` removes unnecessary path suffix. --- `129-133`: **Upgrade to `NewChainClientV2`.** This change aligns Go examples with the latest SDK and simplifies client setup. --- `205-207`: **Replace static error table with auto-generated `BroadcastTxResponse` schema.** The JSON schema table now references the Cosmos SDK type directly, ensuring accuracy. --- `213-217`: **Update `TxResponse` schema to reflect Cosmos SDK v1 types.** Switching to `int64`, `uint32`, and v1.Event arrays standardizes the doc. --- `233-236`: **Refresh `ABCIMessageLog` schema reference.** Now points to the updated Cosmos SDK definition, improving consistency. </details> <details> <summary>source/includes/_oracle.md (19)</summary> `15-23`: **Update Python example imports for Oracle v2 usage.** Switching to `async_client_v2`, adding `json`, and bringing in `MsgBroadcasterWithPk` ensures consistency with other modules. --- `27-30`: **Load private key from environment.** Using `dotenv` with `os.getenv("INJECTIVE_PRIVATE_KEY")` is secure and clear. --- `38-40`: **Retrieve and adjust gas price.** The 1.1× multiplier for `current_chain_gas_price()` remains consistent with recommendations elsewhere. --- `42-48`: **Instantiate `MsgBroadcasterWithPk` for Oracle TXs.** Using the gas heuristics broadcaster simplifies the broadcast flow significantly. --- `60-62`: **Compose `MsgRelayPriceFeedPrice` via composer.** Parameters correctly passed to the new v2 composer API. --- `64-67`: **Broadcast Oracle price relay and format output.** Switching to `broadcast([msg])` and `json.dumps` keeps examples uniform. --- `72-73`: **Update gas price after Oracle TX.** Maintains proper gas pricing for potential follow-up calls. --- `100-100`: **Remove `/websocket` path in RPC client initialization.** Consistency with other examples is maintained. --- `131-134`: **Use `NewChainClientV2` in Go.** Aligns Oracle Go examples with updated SDK usage patterns. --- `199-202`: **Integrate auto-generated `BroadcastTxResponse` table.** Ensures schema accuracy for Oracle TX responses. --- `207-212`: **Standardize `TxResponse` schema in Oracle docs.** Reflects updated Cosmos SDK naming and types. --- `228-231`: **Refresh `ABCIMessageLog` reference for Oracle.** Switches to the latest Cosmos SDK definition. --- `245-253`: **Update Python imports for `MsgRelayProviderPrices`.** Matches the pattern used in other modules, importing `json`, `AsyncClient`, and `MsgBroadcasterWithPk`. --- `257-259`: **Load provider example private key.** Correctly retrieves `INJECTIVE_PRIVATE_KEY` for the second Oracle message. --- `267-270`: **Gas price retrieval and adjustment for provider prices.** Consistent use of gas heuristics across modules. --- `271-277`: **Instantiate broadcaster for `MsgRelayProviderPrices`.** Follows the established pattern for simplified tx flow. --- `288-290`: **Compose `MsgRelayProviderPrices` with correct parameters.** Syntax matches the new composer API. --- `293-296`: **Broadcast provider prices and pretty-print result.** Uniform broadcast and output formatting. --- `300-301`: **Update gas price post-broadcast for provider prices.** Ensures gas state remains current. </details> <details> <summary>source/includes/_explorerrpc.md (2)</summary> `15-47`: **Uniform Python example modernization** All Python snippets have been updated to import `json`, replace the deprecated `AsyncClient` with `IndexerClient`, switch to `composer_v2.Composer`, and pretty-print responses using `json.dumps(..., indent=2)`. Changes are consistent and correct across all examples. --- `78-82`: **Consistent Go snippet formatting** Go examples uniformly use `json.MarshalIndent(res, "", "\t")` for tab-indented output and point to the `dev` branch in source URLs, aligning with SDK updates and enhancing readability. </details> <details> <summary>source/includes/_oraclerpc.md (2)</summary> `18-29`: **Approve Python example modernization** The Python snippet correctly replaces `AsyncClient` with `IndexerClient`, adds `import json`, and pretty-prints the response with `json.dumps(..., indent=2)`. This aligns with the new client surface and enhances readability. --- `64-64`: **Approve Go JSON formatting update** Switching to tab indentation in `json.MarshalIndent(res, "", "\t")` standardizes the output formatting across Go examples. </details> <details> <summary>source/includes/_tokenfactory.md (32)</summary> `19-19`: **Approve updated Python import** Switching the import to `from pyinjective.async_client_v2 import AsyncClient` aligns with the new async client package. --- `58-58`: **Approve Tendermint RPC client change** Removing the `"/websocket"` suffix in `rpchttp.New(network.TmEndpoint)` simplifies the call and matches the updated RPC client API. --- `89-89`: **Approve chain client upgrade** Updating `chainclient.NewChainClient` to `chainclient.NewChainClientV2` ensures use of the latest client with V2 features. --- `108-108`: **Approve Go JSON indent change** Using tab indentation in `json.MarshalIndent(res, "", "\t")` matches the style adopted across other Go examples. --- `165-165`: **Approve Python import update** The import `from pyinjective.async_client_v2 import AsyncClient` is correctly applied for the `fetch_denoms_from_creator` example. --- `201-201`: **Approve Tendermint RPC client change** Removing `"/websocket"` from `rpchttp.New(network.TmEndpoint)` is consistent with other module examples. --- `232-232`: **Approve chain client upgrade** Replacing `NewChainClient` with `NewChainClientV2` is correct for the DenomsFromCreator example. --- `250-250`: **Approve Go JSON indent change** Switching to tab indentation in `json.MarshalIndent(res, "", "\t")` standardizes formatting. --- `374-374`: **Approve Python import update** Using `from pyinjective.async_client_v2 import AsyncClient` is correct for fetching the tokenfactory module state. --- `410-410`: **Approve Tendermint RPC client change** Dropping the `"/websocket"` path in `rpchttp.New(network.TmEndpoint)` aligns with the updated RPC client. --- `441-441`: **Approve chain client upgrade** Upgrading to `chainclient.NewChainClientV2` is applied correctly for the TokenfactoryModuleState example. --- `459-459`: **Approve Go JSON indent change** Using `"\t"` in `json.MarshalIndent` maintains consistency in the Go examples. --- `622-622`: **Approve Python import update** Changing to `from pyinjective.async_client_v2 import AsyncClient` is correct for the CreateDenom example. --- `697-697`: **Approve Tendermint RPC client change** Removing the `"/websocket"` suffix in `rpchttp.New(network.TmEndpoint)` is consistent with other examples. --- `727-727`: **Approve chain client upgrade** Upgrading to `chainclient.NewChainClientV2` reflects the new client instantiation pattern. --- `755-755`: **Approve Go JSON indent change** Using `"\t"` in `json.MarshalIndent(response, "", "\t")` keeps formatting consistent. --- `837-837`: **Approve Python import update** The import `from pyinjective.async_client_v2 import AsyncClient` is correct for the MsgMint example. --- `914-914`: **Approve Tendermint RPC client change** Removing `"/websocket"` from the call to `rpchttp.New` is correct. --- `944-944`: **Approve chain client upgrade** The switch to `NewChainClientV2` is implemented correctly for the MsgMint go example. --- `972-972`: **Approve Go JSON indent change** Indenting JSON output with tabs is consistent across the documentation. --- `1060-1060`: **Approve Python import update** The import for `AsyncClient` in the MsgBurn example is up to date. --- `1137-1137`: **Approve Tendermint RPC client change** Dropping `"/websocket"` in `rpchttp.New(network.TmEndpoint)` is correct. --- `1167-1167`: **Approve chain client upgrade** Switching to `NewChainClientV2` is correctly applied in the Burn example. --- `1195-1195`: **Approve Go JSON indent change** Tab-based indentation in `json.MarshalIndent` is consistent. --- `1303-1303`: **Approve broadcaster abstraction** The use of `new_using_gas_heuristics` in the MsgSetDenomMetadata example aligns with the new gas management abstraction. --- `1373-1373`: **Approve Tendermint RPC client change** Removing `"/websocket"` in the Go example is consistent. --- `1403-1403`: **Approve chain client upgrade** The transition to `NewChainClientV2` is correctly reflected for SetDenomMetadata. --- `1455-1455`: **Approve Go JSON indent change** Using tabs in `json.MarshalIndent` maintains the style used in other code samples. --- `1581-1581`: **Approve broadcaster abstraction** Using `new_using_gas_heuristics` for MsgChangeAdmin is correct and consistent. --- `1634-1634`: **Approve Tendermint RPC client change** The removal of `"/websocket"` is consistently applied. --- `1664-1664`: **Approve chain client upgrade** Upgrading to `NewChainClientV2` is implemented correctly in the change admin example. --- `1691-1691`: **Approve Go JSON indent change** Tab-based JSON indentation is consistent with the rest of the documentation. </details> <details> <summary>source/includes/_chainstream.md (16)</summary> `14-14`: **Skip auto-generated docs marker** This marker (`<!-- MARKDOWN-AUTO-DOCS:START ... -->`) is for tooling and requires no manual edits. --- `22-22`: **Updated to v2 Python client** The import of `AsyncClient` from `pyinjective.async_client_v2` correctly reflects the upgrade to the v2 SDK. --- `42-42`: **Switch to asynchronous composer retrieval** Awaiting `client.composer()` aligns with the async v2 client design. --- `98-98`: **Skip auto-generated Go docs marker** This marker (`<!-- MARKDOWN-AUTO-DOCS:START ... -->`) is inserted by the doc automation and doesn’t need manual changes. --- `107-107`: **Import updated to v2 Go types** Using `chain/stream/types/v2` matches the upgraded v2 client example. --- `126-126`: **Instantiate v2 Go chain client** Switching to `NewChainClientV2` correctly initializes the v2 client. --- `141-141`: **Define v2 StreamRequest** Initializing `chainstreamv2.StreamRequest` is consistent with the v2 API contract. --- `145-145`: **Spot orders filter is correct** The parameters match the Python snippet and v2 API. --- `149-149`: **Derivative orders filter is correct** This aligns with the intended v2 trades endpoint configuration. --- `153-153`: **Spot trades filter is correct** Parameters and wildcard usage correctly reflect v2 expectations. --- `157-157`: **Subaccount deposits filter is correct** Matches the Python example’s filter semantics. --- `160-160`: **Derivative orderbooks filter is correct** Consistent with v2 orderbook streaming fields. --- `163-163`: **Spot orderbooks filter is correct** Parameters are consistent with the Python example. --- `166-166`: **Positions filter is correct** Matches the intended v2 positions streaming behavior. --- `169-169`: **Derivative trades filter is correct** Properly configured to stream derivative trade events. --- `170-170`: **Oracle price filter is correct** The `Symbol` field matches the Python `symbols` parameter, following language conventions. </details> <details> <summary>source/includes/_permissions.md (16)</summary> `20-21`: **Example update: AsyncClient v2 and ChainClientV2 usage** Imports migrated to `pyinjective.async_client_v2`; Tendermint RPC client simplified (removed `"/websocket"`); examples now use `NewChainClientV2`; JSON output standardized with tab indentation. Also applies to: 57-57, 88-92, 105-106 --- `145-146`: **Refreshed “Namespaces” example with v2 clients** Python snippet now imports `AsyncClient` from v2; Go example removes explicit websocket path; uses `NewChainClientV2`; JSON indent aligned to tabs. Also applies to: 182-182, 213-217, 230-231 --- `665-667`: **Updated “Namespace” example to v2 SDK** Python import switched to `async_client_v2`; Go example instantiates RPC via `rpchttp.New`, constructs a v2 chain client, and prints JSON with tab-based indentation. Also applies to: 703-705, 734-738, 753-753 --- `1187-1188`: **Migrated “RolesByActor” example to v2** Example code now imports `AsyncClient` v2; Go removes redundant path, uses `NewChainClientV2`, and standardizes JSON output with tabs. Also applies to: 1226-1226, 1257-1261, 1277-1277 --- `1318-1319`: **Upgraded “ActorsByRole” snippet for v2 clients** Python import reflects v2 client; Go example simplifies RPC URL, invokes `NewChainClientV2`, and formats JSON with tab indent. Also applies to: 1357-1357, 1388-1392, 1408-1408 --- `1450-1451`: **Refactored “RoleManagers” example to v2** Imports updated to v2 AsyncClient; Go RPC method streamlined; new v2 chain client instantiation; JSON prints now use tabs. Also applies to: 1487-1487, 1518-1522, 1537-1537 --- `1607-1608`: **Modernized “RoleManager” example with v2** Examples now import AsyncClient v2; Go RPC initialization simplified; uses `NewChainClientV2`; JSON indentation standardized. Also applies to: 1645-1645, 1676-1680, 1696-1696 --- `1765-1766`: **Streamlined “PolicyStatuses” query to v2** Python code imports the v2 client; Go example drops `"/websocket"` path, calls `NewChainClientV2`, and prints JSON with tab indent. Also applies to: 1802-1802, 1833-1837, 1852-1852 --- `1946-1947`: **Rolled out v2 SDK in “PolicyManagerCapabilities” examples** Python snippet updated to AsyncClient v2; Go example uses simplified RPC client, `NewChainClientV2`, and consistent JSON tabs. Also applies to: 1983-1983, 2014-2018, 2033-2033 --- `2128-2129`: **Enhanced “Vouchers” example for v2** Imports now reference `async_client_v2`; Go RPC instantiation simplified; chain client upgraded to v2; JSON output indentation standardized. Also applies to: 2166-2166, 2197-2201, 2216-2216 --- `2271-2272`: **Adjusted “Voucher” example to v2 SDK** Python code uses `AsyncClient_v2`; Go code streamlines RPC client setup; employs `NewChainClientV2`; JSON indent uses tabs. Also applies to: 2309-2309, 2340-2344, 2360-2360 --- `2407-2408`: **Updated module state query to v2** Examples import the v2 client; Go snippet simplifies RPC instantiation, uses `NewChainClientV2`, and prints JSON with tab-based indent. Also applies to: 2444-2444, 2475-2479, 2492-2493 --- `2974-2975`: **Refreshed CreateNamespace message examples** Python snippet now uses `AsyncClient_v2` and `MsgBroadcasterWithPk`; Go example constructs a v2 chain client and formats JSON response with tabs. Also applies to: 3134-3137, 3223-3223 --- `3379-3380`: **Migrated UpdateNamespace examples to v2** Python imports AsyncClient v2; Go code initializes RPC via `rpchttp.New`, builds client with `NewChainClientV2`, and aligns JSON indent to tabs. Also applies to: 3492-3492, 3523-3526, 3590-3590 --- `3736-3737`: **Upgraded UpdateActorRoles examples for v2** Examples switch to `pyinjective.async_client_v2`; Go code simplifies RPC setup, uses `NewChainClientV2`, and adopts tab indentation for JSON. Also applies to: 3830-3830, 3861-3864, 3907-3907 --- `3995-3996`: **Aligned ClaimVoucher examples with v2 SDK** Python uses v2 AsyncClient; Go snippet removes legacy path, instantiates `NewChainClientV2`, and prints JSON with tabs for consistency. Also applies to: 4070-4070, 4101-4104, 4129-4129 </details> <details> <summary>source/includes/_insurance.md (10)</summary> `12-14`: **Skip autogenerated doc markers.** These `MARKDOWN-AUTO-DOCS` tags are managed by the pipeline and require no manual changes. --- `16-16`: **Import `json` is appropriate.** Including `json` to format the transaction response is correct. --- `21-22`: **Modernized imports for v2 client and broadcaster.** Switching to `pyinjective.async_client_v2.AsyncClient` and `MsgBroadcasterWithPk` aligns with the new SDK abstraction. --- `39-41`: **Buffer gas price with headroom.** Fetching `current_chain_gas_price` and adding a 10% buffer via `int(gas_price * 1.1)` is a sound approach to avoid underpricing. --- `43-49`: **Instantiate broadcaster with gas heuristics.** Using `MsgBroadcasterWithPk.new_using_gas_heuristics` simplifies fee estimation and broadcasting. --- `51-51`: **Key derivation is correct.** Converting the hex key to a `PrivateKey` and deriving the public key/address is implemented properly. --- `58-61`: **Doc table mismatch for `oracle_type`.** The example now uses a string (`"Band"`), but the parameter table below still lists `oracle_type` as `Integer`. Please update the table to reflect the new string-based oracle type. > Likely an incorrect or invalid review comment. --- `67-67`: **Transaction broadcast is streamlined.** Calling `broadcast([msg])` on the broadcaster directly matches the new pattern. --- `69-69`: **JSON output formatting is clear.** Using `json.dumps(..., indent=2)` produces readable output for end users. --- `74-74`: **Dynamic gas price update.** Updating the broadcaster’s gas price before subsequent broadcasts maintains consistency if prices change mid-script. </details> <details> <summary>source/includes/_ibctransfer.md (5)</summary> `22-22`: **Consistent Python client import upgrade.** All Python examples now import `AsyncClient` from `pyinjective.async_client_v2`, ensuring alignment with the modern SDK. Also applies to: 174-174, 350-350, 485-485, 619-619 --- `69-69`: **Removed `/websocket` argument in Go RPC client.** Switching to `rpchttp.New(network.TmEndpoint)` simplifies setup and matches upstream client changes. Also applies to: 218-218, 393-393, 507-507, 660-660, 856-856 --- `100-100`: **Upgraded to `NewChainClientV2`.** Across all Go examples, instantiation now uses `NewChainClientV2`, reflecting the SDK v2 client API. Also applies to: 248-248, 424-424, 558-558, 691-691, 886-886 --- `121-121`: **Standardized JSON formatting to tabs.** Formatting output with `json.MarshalIndent(..., "\t")` across all Go examples ensures consistency. Also applies to: 266-266, 444-444, 577-577, 709-709, 925-925 --- `800-803`: **Dynamic token amount calculation in Python.** Introducing `token_decimals`, calculating `transfer_amount`, and using `composer.coin(...)` correctly adapts for varying token precisions. </details> <details> <summary>scripts/extract_errors.sh (6)</summary> `1-5`: **Proper script initialization.** Shebang and `set -e` ensure the script runs with strict error handling. --- `7-19`: **Clear usage function.** The `usage()` helper provides concise instructions and argument descriptions. --- `21-24`: **Argument validation is in place.** Ensuring exactly two arguments are provided before proceeding prevents misconfiguration. --- `35-38`: **Dependency check for `jq`.** Verifying `jq` availability up front avoids silent failures later in the pipeline. --- `67-107`: **Module processing routine.** `process_modules` correctly iterates module directories, merges root and `types` errors, and writes per-module JSON. Handling of missing modules is appropriate. --- `110-124`: **Output directory setup and invocation.** Cleaning existing directories and orchestrating extraction for both Cosmos SDK and Injective Core is organized and clear. </details> <details> <summary>source/includes/_spotrpc.md (17)</summary> `19-30`: **Update Python Market example to use IndexerClient with pretty JSON output** The example now correctly imports `json`, instantiates `IndexerClient` instead of the deprecated async client, and prints the response with `json.dumps(..., indent=2)` for readability. --- `67-67`: **Use tab-based indentation in Go Market example** The Go snippet now uses `json.MarshalIndent(res, "", "\t")` for consistent, tab-indented JSON output. --- `189-204`: **Modernize Python Markets example** Imports are updated to include `json`, instantiation uses `IndexerClient`, and the response is pretty-printed via `json.dumps(..., indent=2)`. --- `249-249`: **Standardize Go Markets formatting with tab indent** Switched `json.MarshalIndent` to use `"\t"` for consistent JSON indentation across examples. --- `404-423`: **Refresh StreamMarkets Python example** Replaced `AsyncClient` with `IndexerClient`, added the appropriate import, and now outputs formatted JSON using `json.dumps(..., indent=2)`. --- `480-480`: **Apply tab indent for Go StreamMarkets output** The example now uses `json.MarshalIndent(res, "", "\t")` for tab-based indentation. --- `617-639`: **Update HistoricalOrders Python example** Switched to `IndexerClient`, imported `json`, and prints the fetched orders with pretty-printed JSON. --- `690-690`: **Pretty-print HistoricalOrders Go output** Updated to use `json.MarshalIndent(res, "", "\t")` for consistent tab-indented JSON formatting. --- `1222-1243`: **Improve Trades Python example** Example now imports `json`, uses `IndexerClient`, and formats the returned trades via `json.dumps(..., indent=2)`. --- `1287-1287`: **Consistent JSON indent in Go TradesV2 example** Using `"\t"` in `json.MarshalIndent` aligns with other Go snippets. --- `997-1013`: **Modernize StreamHistoricalOrders Python example** Refactored to import and instantiate `IndexerClient`, and outputs JSON with `json.dumps(..., indent=2)`. --- `1083-1083`: **Tab indent for Go StreamHistoricalOrders output** Standardized JSON indentation using `"\t"` in `json.MarshalIndent`. --- `1835-1850`: **Revise OrderbooksV2 Python example** Added `json` import, switched to `IndexerClient`, included explicit `depth` parameter, and pretty-printed the orderbooks. --- `1882-1888`: **Update OrderbooksV2 Go example** Introduced `depth := int32(10)` in the request and updated output formatting to use `"\t"` for JSON indentation. --- `2014-2031`: **Refresh StreamOrderbookSnapshot Python example** Now imports and uses `IndexerClient` for streaming snapshot updates, retaining the existing callback handlers. --- `2222-2270`: **Adjust StreamOrderbookUpdate Python example** The snapshot loader signature is updated to accept `IndexerClient`; the fetch call now includes `depth=0`, and client instantiation reflects the new client class. --- `2420-2421`: **Synchronize Go StreamOrderbookUpdate with snapshot depth** Added `depth := int32(0)` and ensured the initial snapshot fetch uses the same depth parameter, matching the Python example. Also applies to: 2506-2506 </details> <details> <summary>source/includes/_auction.md (3)</summary> `12-71`: **Excellent modernization of Python examples!** The Python example has been successfully updated to use the latest SDK patterns: - Updated imports to use `async_client_v2.AsyncClient` and `MsgBroadcasterWithPk` - Added proper gas price management with 10% buffer - Simplified transaction broadcasting using the new broadcaster utility - Added JSON formatting for better output readability These changes align well with the broader SDK modernization effort across the documentation. --- `73-174`: **Go client updates look good!** The Go example correctly: - Updates Tendermint RPC client initialization to remove the `/websocket` suffix - Uses `NewChainClientV2` instead of the older `NewChainClient` - Maintains proper error handling and gas management patterns This is consistent with the V2 client migration strategy mentioned in the PR objectives. --- `186-242`: **JSON schema updates are properly aligned!** The schema references have been correctly updated to use the standardized Cosmos SDK schemas: - `cosmos/Coin.json` - `cosmos/tx/BroadcastTxResponse.json` - `cosmos/TxResponse.json` - `cosmos/ABCIMessageLog.json` This standardization improves consistency across all module documentation. </details> <details> <summary>source/includes/_erc20.md (1)</summary> `1-924`: **Comprehensive ERC20 module documentation!** This new documentation file provides excellent coverage of the ERC20 module's functionality: - Clear documentation for all three query endpoints with practical examples - Complete transaction message documentation for token pair management - Consistent use of updated SDK client patterns (V2 clients, MsgBroadcasterWithPk) - Proper JSON schema references aligned with the Cosmos SDK standards - Good structure following the established documentation patterns The addition of this module documentation significantly enhances the API reference coverage. </details> <details> <summary>source/includes/_clients.md (1)</summary> `31-173`: **Excellent client version documentation!** This section provides clear guidance on choosing between V1 and V2 clients: - Well-structured explanations of the differences between AsyncClient and AsyncClientV2 - Clear format difference explanations (chain vs human-readable) - Proper deprecation notice for V1 client regarding new endpoints - Good coverage of both Python and Go client usage patterns - Helpful Markets Assistant documentation with version compatibility notes This will help developers make informed decisions about which client version to use. </details> <details> <summary>source/includes/_authz.md (3)</summary> `14-93`: **Python examples properly modernized!** The authz module examples have been successfully updated to use: - `async_client_v2.AsyncClient` for the latest client functionality - `MsgBroadcasterWithPk` for simplified transaction broadcasting - Updated message type URLs to use v2 exchange endpoints (`/injective.exchange.v2.*`) - Proper JSON formatting for transaction responses These changes are consistent with the SDK modernization effort across all modules. --- `95-200`: **Go examples updated correctly!** The Go examples properly implement the V2 client patterns: - Tendermint RPC client initialization without `/websocket` suffix - Usage of `NewChainClientV2` instead of the legacy client - Updated import for v2 exchange types (`exchangev2types`) - Proper tab indentation for JSON output formatting This maintains consistency with the broader client migration strategy. --- `252-284`: **JSON schema references properly standardized!** All transaction response schemas have been correctly updated to use the standardized Cosmos SDK schemas: - `cosmos/tx/BroadcastTxResponse.json` - `cosmos/TxResponse.json` - `cosmos/ABCIMessageLog.json` This improves consistency and accuracy across the documentation. Also applies to: 545-577, 777-809 </details> <details> <summary>scripts/generate_proto_json_files.sh (2)</summary> `1-4`: **Robust shebang and strict mode enabled** Enabling `set -euo pipefail` ensures the script exits on errors, undefined variables, and pipeline failures. --- `535-538`: **Verify correct path for Cosmos SDK types directory** The script checks `"$1/types"`, but `init_config` does not set a corresponding `COSMOS_TYPES_PATH`. Confirm this path matches your repository layout or update the invocation to use the correct variable (e.g., `COSMOS_MODULES_PATH`). </details> <details> <summary>source/includes/_wasm.md (23)</summary> `15-21`: **Python example import updated to AsyncClient v2** Examples now import `AsyncClient` from `pyinjective.async_client_v2`, aligning with the updated SDK client version. --- `37-38`: **Add Go example snippet marker** Introduced the `MARKDOWN-AUTO-DOCS:START` tag for the Go example to ensure automated snippet inclusion. --- `188-190`: **Update Python example imports** Examples now import `AsyncClient` from `pyinjective.async_client_v2` and include `PaginationOption`. --- `209-210`: **Add Go example snippet marker** Added `MARKDOWN-AUTO-DOCS:START` for the second Wasm query example in Go. --- `439-441`: **Update Python example imports** Switch to `pyinjective.async_client_v2` and add the `PaginationOption` import for the third Wasm query example. --- `460-461`: **Add Go example snippet marker** Inserted `MARKDOWN-AUTO-DOCS:START` for the third Go example. --- `595-597`: **Update Python example imports** Examples now import `AsyncClient` from `pyinjective.async_client_v2`, `PaginationOption`, and `Network`. --- `616-617`: **Add Go example snippet marker** Added `MARKDOWN-AUTO-DOCS:START` for the fourth Go example. --- `766-767`: **Update Python example imports** Now using `AsyncClient` from `pyinjective.async_client_v2` and `Network` for the fifth Wasm query example. --- `784-785`: **Add Go example snippet marker** Inserted `MARKDOWN-AUTO-DOCS:START` for the fifth Go example. --- `893-895`: **Update Python example imports** Switch to `AsyncClient` from `pyinjective.async_client_v2` and `Network` for the sixth Wasm query example. --- `910-911`: **Add Go example snippet marker** Added `MARKDOWN-AUTO-DOCS:START` for the sixth Go example. --- `1027-1029`: **Update Python example imports** Now importing `base64`, `AsyncClient` from `pyinjective.async_client_v2`, and `Network`. --- `1047-1048`: **Add Go example snippet marker** Inserted `MARKDOWN-AUTO-DOCS:START` for the seventh Go example. --- `1205-1207`: **Update Python example imports** Examples now import `AsyncClient` from `pyinjective.async_client_v2`, `PaginationOption`, and `Network`. --- `1225-1226`: **Add Go example snippet marker** Added `MARKDOWN-AUTO-DOCS:START` for the eighth Go example. --- `1415-1417`: **Update Python example imports** Switched to `AsyncClient` from `pyinjective.async_client_v2` and added `PaginationOption` for the ninth Wasm query example. --- `1435-1436`: **Add Go example snippet marker** Inserted `MARKDOWN-AUTO-DOCS:START` for the ninth Go example. --- `1568-1570`: **Update Python example imports** Switched to `AsyncClient` from `pyinjective.async_client_v2` and `PaginationOption` for the tenth Wasm query example. --- `1589-1590`: **Add Go example snippet marker** Added `MARKDOWN-AUTO-DOCS:START` for the tenth Go example. --- `1718-1725`: **Refactor Python MsgExecuteContract example** Now uses `MsgBroadcasterWithPk` for streamlined transaction broadcasting, updates imports (`json`, `os`, `AsyncClient` v2), and removes manual build/sign/broadcast steps. --- `1741-1751`: **Implement gas heuristics with MsgBroadcasterWithPk** Fetches the chain gas price, applies a 1.1× multiplier, and initializes the broadcaster via `new_using_gas_heuristics`. --- `1767-1783`: **Broadcast with MsgBroadcasterWithPk and update gas price** Uses `broadcast()` to send messages and `update_gas_price()` for subsequent transactions, simplifying the flow. </details> <details> <summary>Makefile (5)</summary> `21-23`: **Verify recipe lines are indented with tabs** Make requires tabs for command indentation. Ensure the `markdown-autodocs` invocation is prefixed by a tab character, not spaces. --- `25-30`: **Error extraction target scope** `_update-errors` correctly invokes `extract_errors.sh` on the Cosmos SDK and Injective Core repos per PR objectives. Confirm whether the indexer also defines errors that need extraction; otherwise, this matches the intended scope. --- `31-34`: **Proto JSON generation invocation looks solid** The `_update-proto` target passes all three cloned directories to `generate_proto_json_files.sh`, ensuring the docs reflect the latest schemas. --- `41-45`: **Symmetric pattern for proto-JSON updates** `update-proto-json` mirrors the errors target and follows the same structure. This consistency aids maintainability. --- `56-63`: **Cloning repos with shallow checkout is efficient** The `clone-repos` target uses `--depth 1` and the correct branches. You may optionally check each clone’s exit status to catch failures early, but this is generally good practice. </details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
| "Parameter": "accounts", | ||
| "Type": "types.Any array", | ||
| "Description": "" | ||
| } |
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
Use a consistent array type notation and provide a description.
Replace "types.Any array" with a canonical array notation (e.g. "types.Any[]"), fill in the Description (e.g. "accounts defines the list of module accounts."), and add a Required key.
🤖 Prompt for AI Agents
In source/json_tables/cosmos/auth/QueryModuleAccountsResponse.json around lines
3 to 6, replace the type notation "types.Any array" with the canonical array
notation "types.Any[]". Add a meaningful description such as "accounts defines
the list of module accounts." and include a "Required" key to indicate if this
parameter is mandatory.
| "Parameter": "key", | ||
| "Type": "string", | ||
| "Description": "" | ||
| }, |
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
Provide descriptions and required markers for schema fields.
Both key and value have empty Description fields and lack a Required attribute. Please supply meaningful descriptions (e.g. "attribute key" / "attribute value") and indicate whether each field is required.
🤖 Prompt for AI Agents
In source/json_tables/cosmos/Attribute.json lines 3 to 6, the fields "key" and
"value" have empty Description fields and no Required attribute. Add meaningful
descriptions such as "attribute key" for the key field and "attribute value" for
the value field. Also, add a Required attribute to each field indicating whether
it is mandatory or optional based on the schema requirements.
| "Parameter": "address_string", | ||
| "Type": "string", | ||
| "Description": "" | ||
| } |
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
Fill in the Description and mark requirement.
The address_string field lacks a description and a Required flag. Please document its semantics (e.g. "converted Bech32 address string") and indicate if it's mandatory.
🤖 Prompt for AI Agents
In source/json_tables/cosmos/auth/AddressBytesToStringResponse.json around lines
3 to 6, the "address_string" field is missing a description and a "Required"
flag. Add a clear description such as "converted Bech32 address string" to
explain its semantics, and include a "Required" field set to true or false
depending on whether this field is mandatory.
| "Parameter": "address", | ||
| "Type": "string", | ||
| "Description": "" | ||
| }, | ||
| { | ||
| "Parameter": "coins", | ||
| "Type": "github_com_cosmos_cosmos_sdk_types.Coins", | ||
| "Description": "" | ||
| } |
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.
Add missing descriptions and Required flags. Both address and coins entries have empty "Description" values and lack a "Required" property. Please supply meaningful descriptions and include "Required": "Yes" (or "No" if appropriate) for each field to maintain schema consistency.
🤖 Prompt for AI Agents
In source/json_tables/cosmos/bank/Input.json lines 3 to 11, the "address" and
"coins" entries have empty "Description" fields and are missing the "Required"
property. Add meaningful descriptions explaining the purpose of each parameter
and include a "Required" property with the value "Yes" or "No" as appropriate to
indicate if the field is mandatory, ensuring schema consistency.
| "Parameter": "denom", | ||
| "Type": "string", | ||
| "Description": "" | ||
| }, | ||
| { | ||
| "Parameter": "amount", | ||
| "Type": "cosmossdk_io_math.LegacyDec", | ||
| "Description": "" | ||
| } |
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.
Add missing descriptions and Required flags. The denom and amount fields currently have empty "Description" values and no "Required" property. Please add descriptive text and include "Required": "Yes" for each to align with other JSON schema files.
🤖 Prompt for AI Agents
In source/json_tables/cosmos/DecCoin.json around lines 3 to 11, the "denom" and
"amount" fields lack descriptions and the "Required" property. Add meaningful
descriptions explaining what each field represents and include "Required": "Yes"
for both fields to match the schema conventions used elsewhere.
| No parameters | ||
|
|
||
| ### Response Parameters | ||
| > Response Example: | ||
| ``` json | ||
|
|
||
| ``` | ||
|
|
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
Missing example for BaseFee response.
The JSON example block is empty but the response table defines base_fee. Add a representative example or remove the empty block.
🤖 Prompt for AI Agents
In source/includes/_evm.md around lines 993 to 1001, the JSON example block for
the `BaseFee` response is empty while the response table defines `base_fee`. Add
a representative JSON example showing a typical `base_fee` value to illustrate
the response, or if no example is available, remove the empty JSON block
entirely to avoid confusion.
|
|
||
| usdtERC20 := "0xdAC17F958D2ee523a2206206994597C13D831ec7" | ||
| res, err := chainClient.FetchTokenPairByDenom(ctx, usdtERC20) | ||
| if err != nil { | ||
| fmt.Println(err) | ||
| } | ||
|
|
||
| str, _ := json.MarshalIndent(res, "", "\t") | ||
| fmt.Print(string(str)) | ||
|
|
||
| } | ||
| ``` | ||
| <!-- MARKDOWN-AUTO-DOCS:END --> |
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.
Fix function call mismatch in Go example.
The Go example calls FetchTokenPairByDenom with an ERC20 contract address, but this function should be called with a bank denomination. This is inconsistent with the endpoint purpose.
Apply this diff to fix the function call:
- res, err := chainClient.FetchTokenPairByDenom(ctx, usdtERC20)
+ res, err := chainClient.FetchTokenPairByERC20Address(ctx, usdtERC20)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| usdtERC20 := "0xdAC17F958D2ee523a2206206994597C13D831ec7" | |
| res, err := chainClient.FetchTokenPairByDenom(ctx, usdtERC20) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| str, _ := json.MarshalIndent(res, "", "\t") | |
| fmt.Print(string(str)) | |
| } | |
| ``` | |
| <!-- MARKDOWN-AUTO-DOCS:END --> | |
| usdtERC20 := "0xdAC17F958D2ee523a2206206994597C13D831ec7" | |
| res, err := chainClient.FetchTokenPairByERC20Address(ctx, usdtERC20) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| str, _ := json.MarshalIndent(res, "", "\t") | |
| fmt.Print(string(str)) | |
| } |
🤖 Prompt for AI Agents
In source/includes/_erc20.md around lines 420 to 432, the Go example incorrectly
calls FetchTokenPairByDenom with an ERC20 contract address, but this function
expects a bank denomination. To fix this, replace the ERC20 contract address
argument with the correct bank denomination string when calling
FetchTokenPairByDenom, ensuring the argument matches the function's intended
input.
| ctx := context.Background() | ||
|
|
||
| res, err := chainClient.FetchTokenPairByERC20Address(ctx, "usdt") | ||
| if err != nil { | ||
| fmt.Println(err) | ||
| } | ||
|
|
||
| str, _ := json.MarshalIndent(res, "", "\t") | ||
| fmt.Print(string(str)) | ||
|
|
||
| } | ||
| ``` | ||
| <!-- MARKDOWN-AUTO-DOCS:END --> |
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.
Fix function call mismatch in Go example.
The Go example calls FetchTokenPairByERC20Address with a parameter that appears to be a bank denom ("usdt"), but this function should be called with an ERC20 contract address. This is inconsistent with the endpoint purpose.
Apply this diff to fix the function call:
- res, err := chainClient.FetchTokenPairByERC20Address(ctx, "usdt")
+ res, err := chainClient.FetchTokenPairByDenom(ctx, "usdt")🤖 Prompt for AI Agents
In source/includes/_erc20.md around lines 270 to 282, the Go example incorrectly
calls FetchTokenPairByERC20Address with a bank denom string "usdt" instead of an
ERC20 contract address. To fix this, replace the argument "usdt" with a valid
ERC20 contract address string that matches the function's expected input,
ensuring the example aligns with the endpoint's purpose.
| # Check arguments | ||
| if [ $# -ne 3 ]; then | ||
| usage | ||
| fi |
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
Validate input repository paths
Only argument count is checked today; add verification that $1, $2, and $3 exist as directories to surface missing or incorrect paths early.
Apply:
if [ $# -ne 3 ]; then
usage
fi
+for path in "$@"; do
+ if [ ! -d "$path" ]; then
+ echo "Error: Directory not found: $path" >&2
+ usage
+ fi
+done📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Check arguments | |
| if [ $# -ne 3 ]; then | |
| usage | |
| fi | |
| # Check arguments | |
| if [ $# -ne 3 ]; then | |
| usage | |
| fi | |
| for path in "$@"; do | |
| if [ ! -d "$path" ]; then | |
| echo "Error: Directory not found: $path" >&2 | |
| usage | |
| fi | |
| done |
🤖 Prompt for AI Agents
In scripts/generate_proto_json_files.sh around lines 22 to 25, currently only
the number of arguments is checked. Add checks to verify that each of the three
arguments ($1, $2, and $3) exists and is a directory. Use conditional statements
to test if each path is a directory, and if not, print an error message and exit
the script to ensure invalid paths are caught early.
Makefile
Outdated
| INDEXER_DIR := $(TEMP_DIR)/injective-indexer | ||
|
|
||
| # Declare all phony targets at once | ||
| .PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-docs _update-errors _update-proto |
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
Fix .PHONY list: remove non-existent and add missing targets
The .PHONY declaration references update-all-docs (no matching target) and omits update-all-proto-related-files. Align them as follows:
-.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-docs _update-errors _update-proto
+.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-proto-related-files _update-errors _update-proto
+# Optional shorthand alias for the combined target
+.PHONY: all📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| .PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-docs _update-errors _update-proto | |
| .PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos update-all-proto-related-files _update-errors _update-proto | |
| # Optional shorthand alias for the combined target | |
| .PHONY: all |
🧰 Tools
🪛 checkmake (0.2.2)
[warning] 18-18: Missing required phony target "all"
(minphony)
[warning] 18-18: Missing required phony target "clean"
(minphony)
[warning] 18-18: Missing required phony target "test"
(minphony)
🤖 Prompt for AI Agents
In the Makefile at line 18, the .PHONY declaration incorrectly includes the
target update-all-docs which does not exist, and it is missing the target
update-all-proto-related-files. Remove update-all-docs from the .PHONY list and
add update-all-proto-related-files to ensure the .PHONY targets accurately
reflect the actual targets defined in the Makefile.
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: 7
🔭 Outside diff range comments (11)
source/includes/_tendermint.md (2)
170-176: Fix typo in field namedefault_nod_id.The response-schema table lists
default_nod_id, which is misspelled and breaks consistency with the actual API field (default_node_id).-<tr ><td class="parameter-td td_text">default_nod_id</td><td class="type-td td_text">String</td><td class="description-td td_text">Node identifier</td></tr> +<tr ><td class="parameter-td td_text">default_node_id</td><td class="type-td td_text">String</td><td class="description-td td_text">Node identifier</td></tr>
1598-1601: Correct misspelledheightparameter in ABCIQuery request table.The request-schema row is rendered as
haight, which is confusing and misleading.-<tr ><td class="parameter-td td_text">haight</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Block height</td><td class="required-td td_text">No</td></tr> +<tr ><td class="parameter-td td_text">height</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Block height</td><td class="required-td td_text">No</td></tr>source/includes/_derivativesrpc.md (1)
4700-4701: Broken JSON in inline examplesThe sample JSON embeds a semicolon inside the object:
"decimals": 18;This is invalid JSON and will break copy-paste testing.
Please drop the trailing semicolon.Also applies to: 4821-4822
source/includes/_ibccorechannel.md (1)
548-566: Hard-coded mnemonic & password in docsIncluding plaintext
"12345678"and a private key exposes bad practice and might be copy-pasted into production scripts.
Replace with obvious placeholders (e.g."<password>","<private-key-hex>") to steer users away from committing secrets.source/includes/_ibccoreclient.md (1)
1021-1024: Incorrect parameter name inConsensusStaterequest tableRow 1023 re-uses
client_idinstead ofrevision_height, which makes the table misleading.-<tr ><td class="parameter-td td_text">client_id</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Consensus state revision height</td><td class="required-td td_text">Yes</td></tr> +<tr ><td class="parameter-td td_text">revision_height</td><td class="type-td td_text">Integer</td><td class="description-td td_text">Consensus state revision height</td><td class="required-td td_text">Yes</td></tr>Please update the generated JSON-to-HTML table (or its source JSON) so the documentation reflects the actual gRPC request fields.
source/includes/_oraclerpc.md (1)
158-165: Wrong field listed inOracleobject descriptionThe object does not expose
oracle_base; it should exposeoracle_typeto match the examples and RPC payloads.-|oracle_base|String|Oracle base currency| +|oracle_type|String|Oracle provider (e.g. `bandibc`, `pyth`, `pricefeed`)|Fixing this avoids confusing readers and keeps the docs consistent with the SDK structures.
source/includes/_wasmx.md (2)
145-152: Funds string constructed manually—risk of unsorted denoms.
MsgExecuteContractCompatrequires thefundscoins to be alphabetically sorted by denom.
Manually concatenating three segments makes this easy to get wrong in future edits. Consider:- funds := fmt.Sprintf("%v%s,%v%s,%v%s", firstAmount, firstToken, …) + coins := []string{ + fmt.Sprintf("%d%s", firstAmount, firstToken), + fmt.Sprintf("%d%s", secondAmount, secondToken), + fmt.Sprintf("%d%s", thirdAmount, thirdToken), + } + sort.Strings(coins) + funds := strings.Join(coins, ",")This guarantees correct ordering and scales if more coins are added.
194-200: Docs listfundsas “No” but the example passes a non-empty value.Either mark the parameter as “Optional (defaults to empty string)” or “Required when sending coins”. Ambiguity leads to integration errors.
source/includes/_insurance.md (1)
84-91:oracle_typetype mismatch—code now passes a string but table still says Integer.The SDK v1.16 API switched
oracle_typefrom enum-int to string identifiers (“Band”, “Pyth”…).
Update the table:-|oracle_type|Integer|The oracle provider|Yes| +|oracle_type|String|Oracle provider (`Band`, `Pyth`, …)|Yes|source/includes/_oracle.md (1)
332-334: Go example forMsgRelayProviderPricesis missingThe code block is empty. Include a Go snippet similar to the Python example or mark it as “TBD” until available to prevent broken docs.
source/includes/_permissions.md (1)
2024-2030: Wrong helper used – returns policy statuses instead of manager capabilities
FetchPermissionsPolicyStatuseswill obviously return a list ofPolicyStatusobjects, not thePolicyManagerCapabilityobjects the example is trying to demonstrate. Readers who copy-paste the snippet will silently get the wrong response type.- res, err := chainClient.FetchPermissionsPolicyStatuses(ctx, denom) + res, err := chainClient.FetchPermissionsPolicyManagerCapabilities(ctx, denom)
♻️ Duplicate comments (8)
source/includes/_evm.md (5)
284-289: JSON example still missingsequenceandaccount_numberfieldsThe response table right below lists
sequenceandaccount_number, but the example block shows onlycosmos_address. Align the example with the table (or adjust the table).
429-431: Missing JSON example forValidatorAccountresponseThe code block is empty. Provide a representative sample or remove the block to avoid confusing readers.
729-733:Codesection description copy-pasted fromStorageUpdate the description to state that the endpoint returns the contract code bytes at a given EVM address.
861-863: Missing example forCoderesponseThe example block is empty despite
codebeing defined in the table. Add a short hex-encoded sample or remove the empty block.
998-1000: Missing example forBaseFeeresponseProvide a sample JSON showing
base_fee, or delete the empty block.source/includes/_erc20.md (2)
271-276: Go example still calls the wrong query method (duplicate of earlier feedback).
FetchTokenPairByERC20Addressexpects an ERC-20 contract address, but the example passes the bank denom"usdt". Replace the call withFetchTokenPairByDenom(or supply a real contract address).
422-425: Go example still swaps denom/contract address (duplicate of earlier feedback).Here the example builds an ERC-20 address but invokes
FetchTokenPairByDenom. It should callFetchTokenPairByERC20Address.Makefile (1)
87-89:.PHONYlist still references a non-existentupdate-all-docstargetThe same issue was flagged in the prior review but remains unresolved:
update-all-docshas no corresponding rule, so keeping it in.PHONYis misleading and can mask typos elsewhere.
Either remove the entry or add the missing target stub.-.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos clone-sdk-repos clean-sdk-repos update-all-docs _update-errors _update-proto update-all-proto-related-files +.PHONY: refresh-examples update-errors-documentation update-proto-json clone-repos clean-repos clone-sdk-repos clean-sdk-repos update-all-proto-related-files _update-errors _update-proto + +# Optional convenience aliases often expected by tooling +.PHONY: all clean test
🧹 Nitpick comments (44)
source/includes/_insurancerpc.md (2)
32-34: Preferasyncio.run()over legacy event-loop handling
asyncio.get_event_loop().run_until_complete(...)is considered legacy and may emit deprecation warnings in recent Python releases.
Use the higher-level helper for cleaner samples:-if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) +if __name__ == "__main__": + asyncio.run(main())
69-70: Hard-tab indent inside code block breaksmarkdownlint(MD010)The literal tab in the third parameter of
json.MarshalIndentis producing MD010 violations and uneven rendering in some markdown renderers.- str, _ := json.MarshalIndent(res, "", "\t") + str, _ := json.MarshalIndent(res, "", " ")Either switch to spaces (preferred) or add an explicit markdownlint ignore for this line.
source/includes/_txfees.md (1)
105-106: Tab indent triggers MD010Same MD010 issue as in the insurance doc – consider replacing the tab with two spaces to silence the linter and keep output consistent.
source/includes/_auctionsrpc.md (2)
34-36: Modern asyncio entry-pointFor consistency with current best practice:
-if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) +if __name__ == "__main__": + asyncio.run(main())
67-68: Replace hard tabs injson.MarshalIndentAll Go examples switched to
"\t"which violates MD010 and renders as a very wide indent in GitHub flavoured markdown. Use" "or disable the rule explicitly.Also applies to: 242-243, 580-581
source/includes/_ibccoreconnection.md (3)
25-38: Drop the unnecessarysymbol_databaseceremony
symbol_database.Default()is kept from older snippets but serves no purpose in these read-only query examples.
Removing the import and the extra call reduces noise:-from google.protobuf import symbol_database -... -symbol_db = symbol_database.Default()Also applies to: 243-256, 556-569
35-38: Useasyncio.run()for cleaner samplesRepeating the recommendation across snippets improves newcomer copy-paste experience.
-if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) +if __name__ == "__main__": + asyncio.run(main())Also applies to: 254-256, 566-569
111-112: Tab character in Gojson.MarshalIndentcauses markdown-lint noiseSwitch indent char to two spaces or ignore the rule. Same rationale as other files.
Also applies to: 331-332, 642-643, 1180-1181
.github/workflows/deploy.yml (1)
20-23: Trailing whitespace sneaked inLine 20 contains a single trailing space, flagged by
yamllint.
Remove it to keep the workflow lint-clean.- +source/includes/_metarpc.md (2)
26-32: Modern asyncio entry-pointUsing the low-level event-loop API is discouraged since Python 3.7+.
A minimal, more readable change:-if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) +if __name__ == "__main__": + asyncio.run(main())No functional change, cleans up loop handling.
68-69: Hard tabs inside Markdown trigger MD010
markdownlintflags these lines.
Either:
- Add a rule exemption at the top of the file
<!-- markdownlint-disable MD010 -->- Replace leading tabs in the Go example with 4 spaces.
Purely cosmetic, but keeps the pipeline green.
source/includes/_portfoliorpc.md (2)
25-31: Preferasyncio.runfor simpler event-loop handling-if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) +if __name__ == "__main__": + asyncio.run(main())Keeps examples idiomatic and future-proof.
68-69: MD010: hard-tabs in Go snippetSame lint warning as in
_metarpc.md; either disable the rule for code blocks or replace the indent string with spaces.source/includes/_accountsrpc.md (2)
14-34: Preferasyncio.run()and makejson.dumpsrobustAcross every Python example the pattern
asyncio.get_event_loop().run_until_complete(main())is repeated along with
print(json.dumps(result, indent=2))
asyncio.get_event_loop()is considered legacy since Python 3.7.
Replace with the simpler, more readable:-if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) +if __name__ == "__main__": + asyncio.run(main())
- Several SDK responses may contain
Decimal,datetime, orbytesvalues
that are not JSON-serialisable, causing aTypeError. Future-proof by
delegating unknown types tostr:-print(json.dumps(result, indent=2)) +print(json.dumps(result, indent=2, default=str))These two small tweaks improve compatibility and readability without changing
the tutorial flow.Also applies to: 113-145, 333-354, 464-485, 625-649, 733-760, 926-955, 1110-1130, 1317-1338
37-66: Hard-tabs in Go snippets violateMD010— swap for spaces or disable rule
json.MarshalIndent(res, "", "\t")uses a tab character for indentation.
markdownlint (MD010) flags hard tabs inside fenced code blocks, generating
noise in CI.Two easy fixes:
- str, _ := json.MarshalIndent(res, "", "\t") + str, _ := json.MarshalIndent(res, "", " ")or, if you really want tab-indentation, add a rule override to the snippet:
<!-- markdownlint-disable MD010 --> ```go ... ``` <!-- markdownlint-enable MD010 -->Either approach eliminates the linter warnings while keeping the docs
functionally identical.Also applies to: 148-192, 357-388, 488-518, 653-693, 781-823, 959-996, 1133-1164, 1341-1380
source/includes/_tendermint.md (1)
54-57: ResolvemarkdownlintMD010 hard-tab violations.
markdownlint-cli2flags multiple lines with hard tabs.
Either convert tabs to spaces or add a repo-wide rule to ignore MD010. This keeps CI green and preserves formatting consistency.Also applies to: 87-87, 104-104, 276-276, 307-307, 324-324, 399-400, 431-431, 448-448, 806-806, 837-837, 855-855, 1242-1242, 1273-1273, 1435-1435, 1466-1466
source/includes/_derivativesrpc.md (2)
14-31: Docs contain hard tabs – breaksmarkdownlint& some renderersThe inserted Go blocks use tab characters for indentation (
\t).
markdownlint(MD010) is already flagging these lines and some site generators render tabs with wide spacing, hurting readability.Two options:
- Replace tabs with four spaces inside the fenced blocks:
- func main() { + func main() {
- Keep tabs in the source files but add
<!-- markdownlint-disable MD010 -->before, and
<!-- markdownlint-enable MD010 -->after each Go block.Either way will silence CI noise and give uniform rendering.
Also applies to: 246-264, 559-602, 832-860, 1434-1456, 2163-2195, 2706-2729, 3021-3039
3472-3521: Snapshot helper misses awaitable cancellation handling
load_orderbook_snapshotawaitsclient.fetch_derivative_orderbooks_v2, but if the task is cancelled during the HTTP call the coroutine will leak the open connection.Add
asyncio.CancelledErrorhandling:try: res = await client.fetch_derivative_orderbooks_v2(...) except asyncio.CancelledError: returnMinor, yet demonstrates best-practice in long-running documentation samples.
source/includes/_auction.md (2)
62-66: Ineffectiveupdate_gas_pricepath
gas_priceis refreshed after the tx has already been sent (line 58).
Unless more messages follow, these lines are dead code and can be removed to avoid confusion.
137-144: Context timeout is good – propagate it furtherNice touch adding
context.WithTimeout.
Ensure every network call (e.g.CurrentChainGasPrice) andBroadcastMsgreceives this context; a few helper calls still usecontext.Background().source/includes/_ibccorechannel.md (2)
21-33: Unusedsymbol_databaseimport / variable
google.protobuf.symbol_databaseis imported only to createsymbol_db = symbol_database.Default()which is never referenced.
Remove both to keep the example minimal.-from google.protobuf import symbol_database ... - symbol_db = symbol_database.Default()
94-104: Gas-price configuration is irrelevant for read-only queries
NewChainClientV2is initialised withOptionGasPrices, but every subsequent call is a query – no tx is signed.
Dropping the option (and the unnecessary keyring initialisation) simplifies the snippet and avoids misleading readers into thinking fees matter for queries.source/includes/_oraclerpc.md (1)
60-70: Hard tabs violate Markdown linting rule MD010Static analysis reports multiple
MD010/no-hard-tabsviolations caused by Go code blocks copied with tab indentation.
If you want to keep lint clean you can either:
- Configure
.markdownlint.yamlto ignore fenced code blocks, or- Pipe the snippets through
expand -t4during generation to convert them to spaces.This is cosmetic but will silence CI noise.
Also applies to: 220-230, 260-270, 420-430
source/includes/_bank.md (2)
38-48:gas_priceis fetched twice—drop the first fetch or the post-broadcast update.For a short, single-shot example fetching the current gas price twice adds noise and gives the impression that the first value might already be stale before broadcasting, which is rarely the case. Eliminating the first call (and relying on the update after the broadcast) keeps the snippet leaner without losing instructional value.
176-182: Parameter table listsamountas “Integer” but the example uses 18-decimal chain units.Readers unfamiliar with Injective’s base-unit convention may assume the value is 100 INJ instead of 0.0001 INJ. Explicitly call out that the integer represents base units (10¹⁸) or change the type/description to “int64 (wei-like base units)”.
source/includes/_insurance.md (2)
219-223: Clarifyamountunit for underwriting.Example converts a human value using
Decimal * 1e6before broadcasting, yet the parameter description omits the base-unit detail. Add “…in base units (e.g. 1 USDT = 1 000 000)” to prevent accidental 1 000 000× mistakes.
343-348:share_denomfield name inconsistent with SDK (share_denom→shareDenom).SDK proto uses camelCase JSON tags. Keeping docs aligned avoids copy-paste errors when crafting requests with client libraries that expect exact field names.
source/includes/_explorerrpc.md (1)
1288-1304: Cancel / cleanup the streaming task in afinallyblockIf an exception is raised while the task is running,
task.cancel()is never executed and the stream keeps the event-loop alive.- task = asyncio.get_event_loop().create_task( + task = asyncio.create_task( client.listen_txs_updates( callback=tx_event_processor, on_end_callback=stream_closed_processor, on_status_callback=stream_error_processor, ) ) - await asyncio.sleep(delay=60) - task.cancel() + try: + await asyncio.sleep(60) + finally: + task.cancel() + with contextlib.suppress(asyncio.CancelledError): + await taskUsing
try/finallyguarantees the stream is closed even on interruption (e.g., Ctrl-C), and suppressing theCancelledErroravoids noisy stack traces in examples.source/includes/_evm.md (2)
440-444: Incorrect section description forBalanceThe sentence “Queries an Ethereum account's from a validator consensus Address” is copy-pasted and inaccurate. It should describe that this endpoint queries the EVM balance of an Ethereum address.
-Queries an Ethereum account's from a validator consensus Address +Queries the EVM balance of an Ethereum address
585-587: Storage section description is wrong“Queries the balance of all coins for a single account” belongs to the Bank
AllBalancesendpoint, not EVM storage. Replace with a description that explains it fetches a storage slot value.source/includes/_chainstream.md (2)
70-90: Gracefully await cancelled task to suppressRuntimeWarning.
task.cancel()is issued but the coroutine is never awaited; this can emit an unhandledCancelledErrorand leave the gRPC channel open.task.cancel() - # allow main to exit immediately + try: + await task + except asyncio.CancelledError: + pass # expected on graceful shutdown
179-199: Provide a cancellable context to avoid an unbounded blocking loop.The Go sample runs indefinitely with
context.Background(); users must kill the process manually. Wrapping the call in a context with cancel/timeout makes the example safer and mirrors the Python snippet’s 60 s lifetime.- ctx := context.Background() + ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) + defer cancel()source/includes/_authz.md (2)
41-46: Retain gas-price precision – avoid lossyint()down-cast.Casting the chain-gas price to
intthrows away decimal precision and may under-pay fees on low-denom testnets. Usemath.ceilorDecimalinstead of truncation.- gas_price = int(gas_price * 1.1) + from math import ceil + gas_price = ceil(gas_price * 1.1)
908-915: Inconsistentmsg_type_urlbetween language examples.The Go Grants query uses a
v1beta1URL while the Python snippet (l 835-837) usesv2. Align them to prevent confusion.- msg_type_url := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder" + msg_type_url := "/injective.exchange.v2.MsgCreateSpotLimitOrder"source/includes/_erc20.md (3)
143-145: Empty “Response Example” block — either populate or remove.An empty JSON block adds noise and breaks the reading flow. Provide a minimal realistic response or omit the example entirely.
290-295: Multiple placeholder response blocks left empty.These empty blocks repeat across the file (
TokenPairByDenom,TokenPairByERC20Address,MsgCreateTokenPair,MsgDeleteTokenPair). Fill them with representative payloads or delete them to avoid confusing readers.Also applies to: 440-445, 653-655, 871-877
60-135: Hard tabs trigger MD010; convert to spaces to satisfy markdown-lint CI.Most code snippets are pre-generated and use tabs. Either wrap them in ```go +
go/`py` fences without additional indentation or run a tab-to-spaces pass to silence the linter.Also applies to: 210-282, 359-433, 540-633, 770-859
source/includes/_permissions.md (2)
30-34: Modernise event-loop bootstrapping for Python examplesUsing
asyncio.get_event_loop().run_until_complete(main())is discouraged from Python 3.10 onwards and fails outright underpython -X dev. For single-shot scripts the idiomatic pattern is:if __name__ == "__main__": import asyncio asyncio.run(main())Switching to
asyncio.runkeeps the examples future-proof and removes the need for the (soon-deprecated) global event loop getter.Also applies to: 140-144, 660-664, 1180-1188
3146-3154: Precision loss when scalinggasPriceThe examples cast the gas price to
float64, multiply, then cast back toint64:gasPrice = int64(float64(gasPrice) * 1.1)For
gasPricevalues above ~9 quadrillion wei this silently loses precision. Safer:gasPrice = gasPrice * 11 / 10 // integer math, no rounding surprisesOr use
math/big.Intif the SDK exposes gas in*big.Int.Also applies to: 3888-3894
Makefile (2)
17-24: Temp directories for SDK clones are inconsistent with core repo layout
PYTHON_SDK_DIR := tmp-python-sdkandGO_SDK_DIR := tmp-go-sdklive in the project root, while other repos are grouped under/tmp/injective-docs-repos.
For cleanliness and easier bulk removal, consider housing all temp clones under the same$(TEMP_DIR)hierarchy.-PYTHON_SDK_DIR := tmp-python-sdk -GO_SDK_DIR := tmp-go-sdk +PYTHON_SDK_DIR := $(TEMP_DIR)/sdk-python +GO_SDK_DIR := $(TEMP_DIR)/sdk-go
25-34: Minor: redundant@echonoise in clone/clean targetsUsing both
@echoand the-qflag keeps output minimal already; consider dropping the extra echoes or gate them behind aVERBOSEvar. Not critical but helps CI logs stay concise.source/includes/_wasm.md (3)
1741-1744: Avoid silent rounding down of gas priceCasting to
inttruncates the value and may under-price the tx. Usemath.ceil(or keep it asdecimal.Decimal) to round up instead:- gas_price = int(gas_price * 1.1) + import math + gas_price = math.ceil(gas_price * 1.1)
1745-1752: Minor: unnecessary re-construction ofPrivateKey
MsgBroadcasterWithPk.new_using_gas_heuristicsalready builds the internal wallet fromprivate_key. Constructingpriv_key,pub_key, andaddresssolely for display purposes is fine, but if they are unused elsewhere the block could be dropped to keep the snippet tight.
1779-1783: Second gas-price fetch is redundant
MsgBroadcasterWithPkis created only a few lines earlier with a freshly fetched gas price; updating it again without any intervening delay adds noise and doesn’t improve reliability. Consider removing lines 1779-1783.
| refresh-examples: | ||
| @$(MAKE) clone-sdk-repos | ||
| markdown-autodocs -c code-block -c json-to-html-table -o source/includes/*.md | ||
| @$(MAKE) clean-sdk-repos | ||
|
|
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
refresh-examples leaves temp SDK repos behind on failure
If markdown-autodocs exits non-zero, the subsequent clean-sdk-repos line is never reached, polluting the working tree. Wrap the call or use a trap to guarantee cleanup.
-refresh-examples:
- @$(MAKE) clone-sdk-repos
- markdown-autodocs -c code-block -c json-to-html-table -o source/includes/*.md
- @$(MAKE) clean-sdk-repos
+refresh-examples:
+ @$(MAKE) clone-sdk-repos
+ @set -e; \
+ markdown-autodocs -c code-block -c json-to-html-table -o source/includes/*.md; \
+ STATUS=$$?; \
+ $(MAKE) clean-sdk-repos; \
+ exit $$STATUSCommittable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In the Makefile around lines 38 to 42, the refresh-examples target runs
markdown-autodocs but if it fails, clean-sdk-repos is not executed, leaving
temporary SDK repos behind. Modify the target to ensure clean-sdk-repos runs
regardless of markdown-autodocs success by using a shell construct like 'set -e;
...; clean-sdk-repos' with a trap or by chaining commands with '|| true' and a
final call to clean-sdk-repos to guarantee cleanup even on failure.
| dotenv.load_dotenv() | ||
| configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") | ||
| private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") | ||
|
|
||
| # select network: local, testnet, mainnet |
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.
Guard against missing INJECTIVE_PRIVATE_KEY
os.getenv may return None, causing PrivateKey.from_hex (line 50) to raise an exception. Fail fast with an explicit check and user-friendly error.
- private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+ private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+ if not private_key_in_hexa:
+ raise RuntimeError("Environment variable INJECTIVE_PRIVATE_KEY is not set")📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| dotenv.load_dotenv() | |
| configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") | |
| private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") | |
| # select network: local, testnet, mainnet | |
| dotenv.load_dotenv() | |
| private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") | |
| if not private_key_in_hexa: | |
| raise RuntimeError("Environment variable INJECTIVE_PRIVATE_KEY is not set") | |
| # select network: local, testnet, mainnet |
🤖 Prompt for AI Agents
In source/includes/_auction.md around lines 28 to 31, the environment variable
INJECTIVE_PRIVATE_KEY is fetched without checking if it is None, which can cause
an exception later. Add an explicit check after loading the environment variable
to verify that private_key_in_hexa is not None, and if it is, raise a clear and
user-friendly error message to fail fast and inform the user about the missing
key.
| message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( | ||
| network=network, | ||
| private_key=private_key_in_hexa, | ||
| gas_price=gas_price, | ||
| client=client, | ||
| composer=composer, | ||
| ) | ||
|
|
||
| priv_key = PrivateKey.from_hex(private_key_in_hexa) |
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
Risk of stale gas price in long-lived broadcaster
MsgBroadcasterWithPk.new_using_gas_heuristics bakes the gas_price into the instance once.
If the script stays alive and you broadcast multiple txs, the price will drift.
Consider pulling await client.current_chain_gas_price() inside broadcast() (or at least before every call) instead of a one-time snapshot.
🤖 Prompt for AI Agents
In source/includes/_auction.md around lines 42 to 50, the MsgBroadcasterWithPk
instance is created with a fixed gas_price, which can become stale for
long-lived broadcasters sending multiple transactions. To fix this, remove the
gas_price parameter from the constructor and instead fetch the current gas price
by calling await client.current_chain_gas_price() inside the broadcast() method
or immediately before each transaction broadcast, ensuring the gas price is
always up to date.
| grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" | ||
| msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder" | ||
|
|
||
| msg := &authztypes.MsgRevoke{ | ||
| msg := authztypes.MsgRevoke{ | ||
| Granter: senderAddress.String(), | ||
| Grantee: grantee, | ||
| MsgTypeUrl: msgType, | ||
| } |
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.
Message type still references deprecated v1beta1 namespace.
The surrounding docs migrate to injective.exchange.v2, but the Go MsgRevoke example keeps the old path, which will fail on 1.16 chains.
- msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder"
+ msgType := "/injective.exchange.v2.MsgCreateSpotLimitOrder"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" | |
| msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder" | |
| msg := &authztypes.MsgRevoke{ | |
| msg := authztypes.MsgRevoke{ | |
| Granter: senderAddress.String(), | |
| Grantee: grantee, | |
| MsgTypeUrl: msgType, | |
| } | |
| // before | |
| grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" | |
| - msgType := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder" | |
| + msgType := "/injective.exchange.v2.MsgCreateSpotLimitOrder" | |
| msg := authztypes.MsgRevoke{ | |
| Granter: senderAddress.String(), | |
| Grantee: grantee, | |
| MsgTypeUrl: msgType, | |
| } |
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
720-720: Hard tabs
Column: 1
(MD010, no-hard-tabs)
721-721: Hard tabs
Column: 1
(MD010, no-hard-tabs)
723-723: Hard tabs
Column: 1
(MD010, no-hard-tabs)
724-724: Hard tabs
Column: 1
(MD010, no-hard-tabs)
725-725: Hard tabs
Column: 1
(MD010, no-hard-tabs)
726-726: Hard tabs
Column: 1
(MD010, no-hard-tabs)
727-727: Hard tabs
Column: 1
(MD010, no-hard-tabs)
🤖 Prompt for AI Agents
In source/includes/_authz.md around lines 720 to 727, the MsgTypeUrl in the
MsgRevoke example uses the deprecated "injective.exchange.v1beta1" namespace.
Update the MsgTypeUrl string to use the new "injective.exchange.v2" namespace to
align with the surrounding documentation and ensure compatibility with 1.16
chains.
| async def main() -> None: | ||
| # select network: local, testnet, mainnet | ||
| network = Network.testnet() | ||
| client = AsyncClient(network) | ||
| client = IndexerClient(network) | ||
| market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" | ||
| market = await client.fetch_derivative_market(market_id=market_id) | ||
| print(market) | ||
| print(json.dumps(market, indent=2)) | ||
|
|
||
|
|
||
| if __name__ == "__main__": | ||
| asyncio.get_event_loop().run_until_complete(main()) | ||
| ``` |
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
Prefer asyncio.run over the legacy event-loop plumbing
Across all Python snippets you keep the historical pattern:
if __name__ == "__main__":
asyncio.get_event_loop().run_until_complete(main())asyncio.get_event_loop() is deprecated since Python 3.10 and will be removed in 3.14.
Switching to asyncio.run(main()):
-if __name__ == "__main__":
- asyncio.get_event_loop().run_until_complete(main())
+if __name__ == "__main__":
+ asyncio.run(main())simplifies the code, is future-proof, and avoids subtle bugs around mixed event loops.
Update all affected examples for consistency.
Also applies to: 256-268, 1188-1219, 2165-2199
🤖 Prompt for AI Agents
In source/includes/_derivativesrpc.md around lines 24 to 35, replace the
deprecated asyncio event loop usage with the modern approach by changing the
code from using asyncio.get_event_loop().run_until_complete(main()) to simply
asyncio.run(main()). This update simplifies the code, ensures future
compatibility, and avoids issues with event loop management. Apply this change
consistently to all similar examples mentioned.
|
|
||
|
|
||
| async def main() -> None: | ||
| # select network: local, testnet, mainnet | ||
| network = Network.testnet() | ||
| client = AsyncClient(network) | ||
| composer = Composer(network=network.string()) | ||
| client = IndexerClient(network=network) | ||
| composer = Composer(network=network) | ||
|
|
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
Use async with to ensure the IndexerClient connection is closed cleanly
IndexerClient opens an internal aiohttp session.
Creating it directly and letting the program exit may leave an open connector, producing “Unclosed client session” warnings in longer-running apps or test suites.
- client = IndexerClient(network=network)
+ async with IndexerClient(network=network) as client:
+ composer = Composer(network=network)
+ ...
+ # move the rest of the function inside this block
- composer = Composer(network=network)This pattern is repeated in most Python snippets in this file (AccountTxs.py, Blocks.py, Block.py, TxsRequest.py, etc.).
Wrapping the client in a context manager protects future users who copy/paste these examples.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| async def main() -> None: | |
| # select network: local, testnet, mainnet | |
| network = Network.testnet() | |
| client = AsyncClient(network) | |
| composer = Composer(network=network.string()) | |
| client = IndexerClient(network=network) | |
| composer = Composer(network=network) | |
| async def main() -> None: | |
| # select network: local, testnet, mainnet | |
| network = Network.testnet() | |
| async with IndexerClient(network=network) as client: | |
| composer = Composer(network=network) | |
| # move the rest of the function inside this block |
🤖 Prompt for AI Agents
In source/includes/_explorerrpc.md around lines 24 to 31, the IndexerClient is
instantiated without using an async context manager, which can leave the aiohttp
session open and cause warnings. Modify the code to create the IndexerClient
using an "async with" statement to ensure the client connection is properly
closed after use. Apply this pattern consistently to all similar client
instantiations in this file to prevent resource leaks.
| private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") | ||
|
|
||
| # select network: local, testnet, mainnet | ||
| network = Network.testnet() |
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
Add a safety check for the private key
os.getenv("INJECTIVE_PRIVATE_KEY") may return None, which will later raise a less-helpful error inside PrivateKey.from_hex. Fail fast with a clear message:
- private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+ private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY")
+ if not private_key_in_hexa:
+ raise ValueError("Environment variable INJECTIVE_PRIVATE_KEY is not set or empty.")📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") | |
| # select network: local, testnet, mainnet | |
| network = Network.testnet() | |
| private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") | |
| if not private_key_in_hexa: | |
| raise ValueError("Environment variable INJECTIVE_PRIVATE_KEY is not set or empty.") | |
| # select network: local, testnet, mainnet | |
| network = Network.testnet() |
🤖 Prompt for AI Agents
In source/includes/_wasm.md around lines 1731 to 1734, add a check right after
retrieving the private key from the environment variable to verify it is not
None. If it is None, raise an explicit error with a clear message indicating
that the INJECTIVE_PRIVATE_KEY environment variable is missing. This will ensure
the program fails fast with a helpful error instead of a less-clear failure
later in PrivateKey.from_hex.
Updated all messages to reflect the changes included in the chain version 1.16, and the Indexer for that chain version
Added documentation for
erc20modules endpointsAdded documentation for
evmmodules endpointsUpdated all
exchangemodule examples to query the exchange v2 endpoints and send exchange v2 messagesPython SDK v1.11.0
Go SDK v1.58.0
Added automation to generate errors documentation
Added automation to generate the proto types and messages description from the official repos
Summary by CodeRabbit
New Features
Improvements
Bug Fixes
Chores