[chore] release v1.20.1#187
Conversation
📝 WalkthroughWalkthroughSDK version pins in the Makefile are bumped for six components. Documentation JSON schema tables are extended across indexer RPC endpoints (RFQ gateway, RFQ stream, TC derivatives, chart, exchange fee grant), peggy rate limit messages, and a new cardano-probabilistic error code module section is added to the errors reference. ChangesAPI Documentation and Version Updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@source/json_tables/indexer/injective_chart_rpc/DerivativeMarketHistoryRequest.json`:
- Around line 51-53: The Parameter description in
DerivativeMarketHistoryRequest.json uses camelCase names that do not match the
schema keys. Update the text in the index_prices entry to refer to
use_oracle_prices and fill_gaps instead of useOraclePrices and fillGaps, keeping
the precedence note consistent with the snake_case request fields.
In
`@source/json_tables/indexer/injective_exchange_rpc/PrepareFeeGrantResponse.json`:
- Around line 23-25: The `spend_limit` field in `PrepareFeeGrantResponse` is
documented with the wrong API shape; it should match the feegrant allowance
contract as a coin list rather than a single coin. Update the `spend_limit`
entry in `PrepareFeeGrantResponse.json` so its `Type` reflects `Coins` and keep
the description aligned with the feegrant allowance model. Use the `spend_limit`
parameter name in `PrepareFeeGrantResponse` to locate and adjust the schema
consistently with the other feegrant docs.
In `@source/json_tables/indexer/injective_tc_derivatives_rpc/FundingPayment.json`:
- Around line 8-10: The FundingPayment JSON table has an inconsistent field name
in the description, where the Parameter uses subaccount_id but the Description
switches to subaccountId. Update the description text in FundingPayment so it
uses the same snake_case name as the Parameter field, and keep the naming
consistent across the entry to avoid implying two valid field names.
In `@source/json_tables/indexer/injective_tc_derivatives_rpc/TradesRequest.json`:
- Around line 69-72: Update the TradesRequest JSON documentation entry for
participant so it is marked optional rather than required. Keep the existing
description, but change the Required flag for the participant field in
TradesRequest.json to reflect that it is an additional filter and should not
alter the request contract for callers using other filters.
In `@source/json_tables/injective/peggy/MsgUpdateRateLimit.json`:
- Around line 33-35: The description for the MsgUpdateRateLimit field is using
the wrong referenced symbol and should match the exposed parameter name. Update
the Description in MsgUpdateRateLimit.json to reference new_token_price_id
instead of token_price_id, and verify the nearby Parameter/Type/Description
entries stay consistent with the actual field names used by MsgUpdateRateLimit.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: a9f667a0-c930-4c62-b0c8-24509aa179de
📒 Files selected for processing (19)
Makefilesource/includes/_errors.mdsource/json_tables/errors/08-cardano-probabilistic_errors.jsonsource/json_tables/indexer/injective_chart_rpc/DerivativeMarketHistoryRequest.jsonsource/json_tables/indexer/injective_exchange_rpc/PrepareFeeGrantRequest.jsonsource/json_tables/indexer/injective_exchange_rpc/PrepareFeeGrantResponse.jsonsource/json_tables/indexer/injective_rfq_gw_rpc/RFQGwPrepareAutoSignRequestType.jsonsource/json_tables/indexer/injective_rfq_gw_rpc/RFQGwPrepareEip712AutoSignRequestType.jsonsource/json_tables/indexer/injective_rfq_gw_rpc/RFQGwPrepareEip712RequestType.jsonsource/json_tables/indexer/injective_rfq_gw_rpc/RFQGwPrepareRequestType.jsonsource/json_tables/indexer/injective_rfq_rpc/QuoteStreamAck.jsonsource/json_tables/indexer/injective_rfq_rpc/StreamError.jsonsource/json_tables/indexer/injective_tc_derivatives_rpc/FundingPayment.jsonsource/json_tables/indexer/injective_tc_derivatives_rpc/FundingPaymentsRequest.jsonsource/json_tables/indexer/injective_tc_derivatives_rpc/FundingPaymentsResponse.jsonsource/json_tables/indexer/injective_tc_derivatives_rpc/TradesRequest.jsonsource/json_tables/injective/peggy/MsgCreateRateLimit.jsonsource/json_tables/injective/peggy/MsgUpdateRateLimit.jsonsource/json_tables/injective/peggy/RateLimit.json
| "Parameter": "index_prices", | ||
| "Type": "bool", | ||
| "Description": "When true, we'll use index prices. Supersedes useOraclePrices and fillGaps. Disabled for binary options markets.", |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="$(fd '^DerivativeMarketHistoryRequest\.json$' source/json_tables/indexer/injective_chart_rpc)"
echo "== Context from ${file} =="
nl -ba "$file" | sed -n '1,90p'
echo
echo "== Nearby field-name variants under chart RPC docs =="
rg -n '"Parameter": "(use_oracle_prices|fill_gaps|useOraclePrices|fillGaps|index_prices)"' source/json_tables/indexer/injective_chart_rpcRepository: InjectiveLabs/api-exchange-docs
Length of output: 311
🏁 Script executed:
set -euo pipefail
file="source/json_tables/indexer/injective_chart_rpc/DerivativeMarketHistoryRequest.json"
echo "== file exists =="
[ -f "$file" ] && echo "$file"
echo
echo "== relevant section =="
sed -n '1,120p' "$file"
echo
echo "== nearby field-name variants under chart RPC docs =="
rg -n '"Parameter": "(use_oracle_prices|fill_gaps|useOraclePrices|fillGaps|index_prices)"' source/json_tables/indexer/injective_chart_rpc || trueRepository: InjectiveLabs/api-exchange-docs
Length of output: 2620
Keep the precedence note in snake_case.
This schema uses use_oracle_prices and fill_gaps, so useOraclePrices / fillGaps points readers at the wrong request keys.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@source/json_tables/indexer/injective_chart_rpc/DerivativeMarketHistoryRequest.json`
around lines 51 - 53, The Parameter description in
DerivativeMarketHistoryRequest.json uses camelCase names that do not match the
schema keys. Update the text in the index_prices entry to refer to
use_oracle_prices and fill_gaps instead of useOraclePrices and fillGaps, keeping
the precedence note consistent with the snake_case request fields.
| "Parameter": "spend_limit", | ||
| "Type": "CosmosCoin", | ||
| "Description": "Feegrant spend limit" |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify the underlying protobuf schema for PrepareFeeGrantResponse.
rg -n "message PrepareFeeGrantResponse|spend_limit|allowed_messages|PrepareFeeGrantRequest" sourceRepository: InjectiveLabs/api-exchange-docs
Length of output: 1891
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n## PrepareFeeGrantResponse.json\n'
cat -n source/json_tables/indexer/injective_exchange_rpc/PrepareFeeGrantResponse.json | sed -n '1,120p'
printf '\n## Related feegrant docs\n'
for f in \
source/json_tables/cosmos/feegrant/BasicAllowance.json \
source/json_tables/cosmos/feegrant/AllowedMsgAllowance.json \
source/json_tables/cosmos/feegrant/PeriodicAllowance.json \
source/json_tables/injective/exchange/GenericExchangeAuthorization.json \
source/json_tables/injective/exchange/v2/GenericExchangeAuthorization.json
do
echo "\n### $f"
cat -n "$f" | sed -n '1,120p'
doneRepository: InjectiveLabs/api-exchange-docs
Length of output: 4436
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '## CosmosCoin / Coins usage\n'
rg -n '"Type": "(CosmosCoin|Coins)"' source/json_tables | sed -n '1,200p'
printf '\n## CosmosCoin table definitions\n'
rg -n '"Type": "CosmosCoin"|CosmosCoin' source/json_tables | sed -n '1,200p'Repository: InjectiveLabs/api-exchange-docs
Length of output: 5683
Align spend_limit with the feegrant contract
spend_limit is documented as a single CosmosCoin here, but the feegrant allowance docs model it as Coins (a coin list). Update this field to match the API shape.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@source/json_tables/indexer/injective_exchange_rpc/PrepareFeeGrantResponse.json`
around lines 23 - 25, The `spend_limit` field in `PrepareFeeGrantResponse` is
documented with the wrong API shape; it should match the feegrant allowance
contract as a coin list rather than a single coin. Update the `spend_limit`
entry in `PrepareFeeGrantResponse.json` so its `Type` reflects `Coins` and keep
the description aligned with the feegrant allowance model. Use the `spend_limit`
parameter name in `PrepareFeeGrantResponse` to locate and adjust the schema
consistently with the other feegrant docs.
| "Parameter": "subaccount_id", | ||
| "Type": "string", | ||
| "Description": "The subaccountId that the position belongs to" |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Keep the field name consistent in the description.
The parameter is subaccount_id, but the description switches to subaccountId, which makes the table read like there are two valid names for the same field.
Suggested doc fix
{
"Parameter": "subaccount_id",
"Type": "string",
- "Description": "The subaccountId that the position belongs to"
+ "Description": "Subaccount ID that the position belongs to"
},📝 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.
| "Parameter": "subaccount_id", | |
| "Type": "string", | |
| "Description": "The subaccountId that the position belongs to" | |
| "Parameter": "subaccount_id", | |
| "Type": "string", | |
| "Description": "Subaccount ID that the position belongs to" |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@source/json_tables/indexer/injective_tc_derivatives_rpc/FundingPayment.json`
around lines 8 - 10, The FundingPayment JSON table has an inconsistent field
name in the description, where the Parameter uses subaccount_id but the
Description switches to subaccountId. Update the description text in
FundingPayment so it uses the same snake_case name as the Parameter field, and
keep the naming consistent across the entry to avoid implying two valid field
names.
| "Parameter": "participant", | ||
| "Type": "string", | ||
| "Description": "filter trades including the address as RFQ maker or the trade account address", | ||
| "Required": "Yes" |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Document participant as optional.
The description reads like an additional filter, but "Required": "Yes" makes it mandatory and changes the request contract for callers that only use the existing filters.
Suggested doc fix
{
"Parameter": "participant",
"Type": "string",
- "Description": "filter trades including the address as RFQ maker or the trade account address",
- "Required": "Yes"
+ "Description": "Filter trades where the address matches the RFQ maker or the trade account address",
+ "Required": "No"
}📝 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.
| "Parameter": "participant", | |
| "Type": "string", | |
| "Description": "filter trades including the address as RFQ maker or the trade account address", | |
| "Required": "Yes" | |
| "Parameter": "participant", | |
| "Type": "string", | |
| "Description": "Filter trades where the address matches the RFQ maker or the trade account address", | |
| "Required": "No" |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@source/json_tables/indexer/injective_tc_derivatives_rpc/TradesRequest.json`
around lines 69 - 72, Update the TradesRequest JSON documentation entry for
participant so it is marked optional rather than required. Keep the existing
description, but change the Required flag for the participant field in
TradesRequest.json to reflect that it is an additional filter and should not
alter the request contract for callers using other filters.
| "Parameter": "new_token_oracle_type", | ||
| "Type": "OracleType", | ||
| "Description": "new_token_oracle_type is used to obtain the USD price of the ERC20 token (in relation with token_price_id)", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Reference new_token_price_id in this description.
Line 35 points readers to token_price_id, but this update request only exposes new_token_price_id. That makes the generated docs inconsistent with the actual field names.
Suggested fix
{
"Parameter": "new_token_oracle_type",
"Type": "OracleType",
- "Description": "new_token_oracle_type is used to obtain the USD price of the ERC20 token (in relation with token_price_id)",
+ "Description": "new_token_oracle_type is used to obtain the USD price of the ERC20 token (in relation with new_token_price_id)",
"Required": "Yes"📝 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.
| "Parameter": "new_token_oracle_type", | |
| "Type": "OracleType", | |
| "Description": "new_token_oracle_type is used to obtain the USD price of the ERC20 token (in relation with token_price_id)", | |
| "Parameter": "new_token_oracle_type", | |
| "Type": "OracleType", | |
| "Description": "new_token_oracle_type is used to obtain the USD price of the ERC20 token (in relation with new_token_price_id)", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@source/json_tables/injective/peggy/MsgUpdateRateLimit.json` around lines 33 -
35, The description for the MsgUpdateRateLimit field is using the wrong
referenced symbol and should match the exposed parameter name. Update the
Description in MsgUpdateRateLimit.json to reference new_token_price_id instead
of token_price_id, and verify the nearby Parameter/Type/Description entries stay
consistent with the actual field names used by MsgUpdateRateLimit.
Summary by CodeRabbit
New Features
Bug Fixes
Chores