From 7708fde56c6a7850d15fb150ec5d4b154967f8f9 Mon Sep 17 00:00:00 2001
From: Abel Armoa <30988000+aarmoa@users.noreply.github.com>
Date: Tue, 17 Feb 2026 20:54:41 -0300
Subject: [PATCH] [C-795] Update API docs for v1.18.0 chain upgrade. Added a
new page for the websocket API.
---
Makefile | 12 +-
source/includes/_binaryoptions.md | 62 ++--
source/includes/_changelog.md | 6 +
source/includes/_derivatives.md | 162 +++++-----
source/includes/_derivativesrpc.md | 12 +-
source/includes/_errors.md | 74 +----
source/includes/_insurance.md | 3 +-
source/includes/_oraclerpc.md | 26 +-
source/includes/_permissions.md | 39 ++-
source/includes/_spot.md | 80 +++--
source/includes/_websocket.md | 276 ++++++++++++++++++
source/index.html.md | 1 +
.../json_tables/errors/bandoracle_errors.json | 232 ---------------
source/json_tables/errors/erc20_errors.json | 5 +
.../json_tables/errors/exchange_errors.json | 10 +
source/json_tables/errors/oracle_errors.json | 10 +
source/json_tables/errors/peggy_errors.json | 10 +
.../errors/permissions_errors.json | 14 +-
.../indexer/event_provider_api/Block.json | 5 +
.../AccountStatsRequest.json | 6 +
.../AccountStatsResponse.json | 5 +
.../HistoricalDetailedBalance.json | 5 +
.../AuctionAccountStatusRequest.json | 14 +
.../AuctionAccountStatusResponse.json | 7 +
.../AuctionContract.json | 5 +
.../DerivativePosition.json | 10 +
.../DerivativePositionV2.json | 10 +
.../HistoricalPnL.json | 2 +-
.../HistoricalTVL.json | 2 +-
.../OperationStatusLogEntry.json | 22 ++
.../injective_megavault_rpc/Redemption.json | 5 +
.../injective_megavault_rpc/Subscription.json | 5 +
.../indexer/injective_megavault_rpc/User.json | 10 +
.../OracleListRequest.json | 26 ++
.../OracleListResponse.json | 7 +-
.../DerivativePosition.json | 10 +
.../CreateRFQRequestType.json | 62 ++++
.../GetOpenRequestsResponse.json | 7 +
.../GetPendingQuotesResponse.json | 7 +
.../ListSettlementRequest.json | 20 ++
.../ListSettlementResponse.json | 12 +
.../injective_rfqrpc/MakerStreamResponse.json | 22 ++
.../MakerStreamStreamingRequest.json | 14 +
.../injective_rfqrpc/QuoteRequest.json | 8 +
.../injective_rfqrpc/QuoteResponse.json | 7 +
.../injective_rfqrpc/RFQQuoteType.json | 92 ++++++
.../injective_rfqrpc/RFQRequestType.json | 67 +++++
.../RFQSettlementLimitActionType.json | 7 +
.../injective_rfqrpc/RFQSettlementType.json | 77 +++++
.../RFQSettlementUnfilledActionType.json | 12 +
.../injective_rfqrpc/RequestRequest.json | 8 +
.../injective_rfqrpc/RequestResponse.json | 7 +
.../indexer/injective_rfqrpc/StreamAck.json | 12 +
.../indexer/injective_rfqrpc/StreamError.json | 7 +
.../injective_rfqrpc/StreamQuoteRequest.json | 8 +
.../injective_rfqrpc/StreamQuoteResponse.json | 12 +
.../StreamRequestRequest.json | 8 +
.../StreamRequestResponse.json | 12 +
.../StreamSettlementRequest.json | 8 +
.../StreamSettlementResponse.json | 12 +
.../injective_rfqrpc/TakerStreamResponse.json | 22 ++
.../TakerStreamStreamingRequest.json | 14 +
.../injective/evm/MsgEthereumTxResponse.json | 5 +
.../exchange/v1beta1/ExecutionType.json | 8 +
.../exchange/v2/BinaryOptionsMarket.json | 10 +
...inaryOptionsMarketParamUpdateProposal.json | 5 +
.../exchange/v2/DerivativeMarket.json | 10 +
.../DerivativeMarketParamUpdateProposal.json | 5 +
.../v2/DisableMinimalProtocolFeeUpdate.json | 14 +
.../v2/EnforcedRestrictionsContract.json | 12 +
.../injective/exchange/v2/ExecutionType.json | 4 +
.../exchange/v2/ExpiryFuturesMarketInfo.json | 12 +-
.../exchange/v2/ForcePausedInfo.json | 12 +
.../exchange/v2/ForcePausedReason.json | 6 +
.../injective/exchange/v2/MarketStatus.json | 4 +
.../exchange/v2/MsgActivatePostOnlyMode.json | 14 +
.../injective/exchange/v2/Params.json | 5 +
.../injective/exchange/v2/SpotMarket.json | 5 +
.../v2/SpotMarketParamUpdateProposal.json | 5 +
.../ChainlinkDataStreamsPriceState.json | 27 ++
.../injective/oracle/ChainlinkReport.json | 22 ++
.../injective/oracle/GenesisState.json | 5 +
.../injective/oracle/MsgRelayBandRates.json | 32 --
...ates.json => MsgRelayChainlinkPrices.json} | 6 +-
.../json_tables/injective/oracle/Params.json | 15 +
...ainlinkDataStreamsPriceStatesResponse.json | 7 +
.../injective/oracle/v1beta1/OracleType.json | 4 +
.../permissions/MsgUpdateNamespace.json | 10 +-
.../injective/permissions/Namespace.json | 9 +-
.../injective/permissions/Params.json | 9 +-
90 files changed, 1518 insertions(+), 498 deletions(-)
create mode 100644 source/includes/_websocket.md
delete mode 100644 source/json_tables/errors/bandoracle_errors.json
create mode 100644 source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusRequest.json
create mode 100644 source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusResponse.json
create mode 100644 source/json_tables/indexer/injective_megavault_rpc/OperationStatusLogEntry.json
create mode 100644 source/json_tables/indexer/injective_oracle_rpc/OracleListRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/CreateRFQRequestType.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/GetOpenRequestsResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/GetPendingQuotesResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/ListSettlementRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/ListSettlementResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/MakerStreamResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/MakerStreamStreamingRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/QuoteRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/QuoteResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RFQQuoteType.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RFQRequestType.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RFQSettlementLimitActionType.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RFQSettlementType.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RFQSettlementUnfilledActionType.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RequestRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/RequestResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamAck.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamError.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamQuoteRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamQuoteResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamRequestRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamRequestResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamSettlementRequest.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/StreamSettlementResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/TakerStreamResponse.json
create mode 100644 source/json_tables/indexer/injective_rfqrpc/TakerStreamStreamingRequest.json
create mode 100644 source/json_tables/injective/exchange/v2/DisableMinimalProtocolFeeUpdate.json
create mode 100644 source/json_tables/injective/exchange/v2/EnforcedRestrictionsContract.json
create mode 100644 source/json_tables/injective/exchange/v2/ForcePausedInfo.json
create mode 100644 source/json_tables/injective/exchange/v2/ForcePausedReason.json
create mode 100644 source/json_tables/injective/exchange/v2/MsgActivatePostOnlyMode.json
create mode 100644 source/json_tables/injective/oracle/ChainlinkDataStreamsPriceState.json
create mode 100644 source/json_tables/injective/oracle/ChainlinkReport.json
delete mode 100644 source/json_tables/injective/oracle/MsgRelayBandRates.json
rename source/json_tables/injective/oracle/{MsgRequestBandIBCRates.json => MsgRelayChainlinkPrices.json} (61%)
create mode 100644 source/json_tables/injective/oracle/QueryChainlinkDataStreamsPriceStatesResponse.json
diff --git a/Makefile b/Makefile
index bd729e72..568564b7 100644
--- a/Makefile
+++ b/Makefile
@@ -1,26 +1,26 @@
# Repository versions and URLs
-COSMOS_SDK_VERSION := v0.50.14-inj
+COSMOS_SDK_VERSION := v0.50.14-inj.4
COSMOS_SDK_REPO := https://github.com/InjectiveLabs/cosmos-sdk.git
-INJECTIVE_CORE_VERSION := v1.17.0
+INJECTIVE_CORE_VERSION := v1.18.0
INJECTIVE_CORE_REPO := https://github.com/InjectiveLabs/injective-core.git
-INDEXER_VERSION := v1.17.16
+INDEXER_VERSION := v1.18.3
INDEXER_REPO := https://github.com/InjectiveLabs/injective-indexer.git
IBC_GO_VERSION := v8.7.0-inj.3
IBC_GO_REPO := https://github.com/InjectiveLabs/ibc-go.git
-COMETBFT_VERSION := v1.0.1-inj.4
+COMETBFT_VERSION := v1.0.1-inj.6
COMETBFT_REPO := https://github.com/InjectiveLabs/cometbft.git
WASMD_VERSION := v0.53.3-inj.2
WASMD_REPO := https://github.com/InjectiveLabs/wasmd.git
-PYTHON_SDK_VERSION := v1.12.0
+PYTHON_SDK_VERSION := v1.13.0
PYTHON_SDK_REPO := https://github.com/InjectiveLabs/sdk-python.git
-GO_SDK_VERSION := v1.59.0
+GO_SDK_VERSION := v1.60.0
GO_SDK_REPO := https://github.com/InjectiveLabs/sdk-go.git
# Temporary directories
diff --git a/source/includes/_binaryoptions.md b/source/includes/_binaryoptions.md
index 2b1158a4..504d35ab 100644
--- a/source/includes/_binaryoptions.md
+++ b/source/includes/_binaryoptions.md
@@ -194,7 +194,9 @@ func main() {
| min_notional | cosmossdk_io_math.LegacyDec | min_notional defines the minimum notional (in quote asset) required for orders in the market (in human readable format) |
| admin_permissions | uint32 | level of admin permissions |
| quote_decimals | uint32 | quote token decimals |
-| open_notional_cap | OpenNotionalCap | open_notional_cap defines the maximum open notional for the market |
+| open_notional_cap | OpenNotionalCap | open_notional_cap defines the maximum open notional for the market |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
+| force_paused_info | ForcePausedInfo | force_paused_info defines additional info for force paused markets, only set when status == ForcePaused |
@@ -214,7 +216,8 @@ func main() {
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
@@ -254,6 +257,23 @@ func main() {
| Parameter | Type | Description |
|---|
| value | cosmossdk_io_math.LegacyDec | |
+
+
+**ForcePausedInfo**
+
+
+| Parameter | Type | Description |
|---|
| reason | ForcePausedReason | |
+| mark_price_at_pausing | cosmossdk_io_math.LegacyDec | |
+
+
+
+
+**ForcePausedReason**
+
+
+| Code | Name |
|---|
| 0 | QuoteDenomPaused |
+
+
## MsgInstantBinaryOptionsMarketLaunch
@@ -409,7 +429,8 @@ func main() {
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
@@ -728,10 +749,8 @@ async def main() -> None:
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
price=Decimal("0.5"),
- quantity=Decimal(1),
- margin=composer.calculate_margin(
- quantity=Decimal(1), price=Decimal("0.5"), leverage=Decimal(1), is_reduce_only=False
- ),
+ quantity=Decimal("1"),
+ margin=Decimal("0.5"),
cid=str(uuid.uuid4()),
)
@@ -1062,7 +1081,7 @@ async def main() -> None:
# prepare trade info
market_id = "0xfafec40a7b93331c1fc89c23f66d11fbb48f38dfdd78f7f4fc4031fad90f6896"
status = "Demolished"
- settlement_price = Decimal(1)
+ settlement_price = Decimal("1")
expiration_timestamp = 1685460582
settlement_timestamp = 1690730982
@@ -1110,7 +1129,8 @@ if __name__ == "__main__":
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
### Response Parameters
@@ -1265,11 +1285,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(25000),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(25000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("25000"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("2500"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -1277,11 +1295,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(50000),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("50000"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("500"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
@@ -1292,11 +1308,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(25100),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(25100), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("25100"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("2510"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
diff --git a/source/includes/_changelog.md b/source/includes/_changelog.md
index 16105730..30c15ba6 100644
--- a/source/includes/_changelog.md
+++ b/source/includes/_changelog.md
@@ -1,5 +1,11 @@
# Change Log
+## 2026-02-19
+- Updated all messages to reflect the changes included in the chain version v1.18.0, and the Indexer for that chain version
+- Added documentation for the new websocket for exchange module events available on the chain nodes
+- Python SDK v1.13.0
+- Go SDK v1.60.0
+
## 2025-11-10
- Updated all messages to reflect the changes included in the chain version 1.17.0, and the Indexer for that chain version
- Python SDK v1.12.0
diff --git a/source/includes/_derivatives.md b/source/includes/_derivatives.md
index f9b867e6..9265b46c 100644
--- a/source/includes/_derivatives.md
+++ b/source/includes/_derivatives.md
@@ -1320,7 +1320,9 @@ func main() {
| admin_permissions | uint32 | level of admin permissions |
| quote_decimals | uint32 | quote token decimals |
| reduce_margin_ratio | cosmossdk_io_math.LegacyDec | reduce_margin_ratio defines the ratio of the margin that is reduced |
-| open_notional_cap | OpenNotionalCap | open_notional_cap defines the maximum open notional for the market |
+| open_notional_cap | OpenNotionalCap | open_notional_cap defines the maximum open notional for the market |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
+| force_paused_info | ForcePausedInfo | force_paused_info defines additional info for force paused markets, only set when status == ForcePaused |
@@ -1340,7 +1342,8 @@ func main() {
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
@@ -1352,7 +1355,8 @@ func main() {
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
@@ -1418,8 +1422,10 @@ func main() {
| Parameter | Type | Description |
|---|
| market_id | string | market ID. |
| expiration_timestamp | int64 | expiration_timestamp defines the expiration time for a time expiry futures market. |
| twap_start_timestamp | int64 | expiration_twap_start_timestamp defines the start time of the TWAP calculation window |
-| expiration_twap_start_price_cumulative | cosmossdk_io_math.LegacyDec | expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) |
-| settlement_price | cosmossdk_io_math.LegacyDec | settlement_price defines the settlement price for a time expiry futures market (in human readable format) |
+| expiration_twap_start_price_cumulative | cosmossdk_io_math.LegacyDec | expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) Deprecated: For correctly calculating the expiration price using TWAP, we need to keep the cumulative price at the start of TWAP calculation separately for the base asset and the quote asset. Use expiration_twap_start_base_cumulative_price and expiration_twap_start_quote_cumulative_price instead. |
+| settlement_price | cosmossdk_io_math.LegacyDec | settlement_price defines the settlement price for a time expiry futures market (in human readable format) |
+| expiration_twap_start_base_cumulative_price | cosmossdk_io_math.LegacyDec | expiration_twap_start_base_cumulative_price defines the cumulative price for the base asset at the start of the TWAP calculation window (in human readable format) |
+| expiration_twap_start_quote_cumulative_price | cosmossdk_io_math.LegacyDec | expiration_twap_start_quote_cumulative_price defines the cumulative price for the quote asset at the start of the TWAP calculation window (in human readable format) |
@@ -1445,6 +1451,23 @@ func main() {
| 32 | Maintenance Margin Ratio Permission |
+
+
+**ForcePausedInfo**
+
+
+| Parameter | Type | Description |
|---|
| reason | ForcePausedReason | |
+| mark_price_at_pausing | cosmossdk_io_math.LegacyDec | |
+
+
+
+
+**ForcePausedReason**
+
+
+| Code | Name |
|---|
| 0 | QuoteDenomPaused |
+
+
## DerivativeMarket
@@ -1650,7 +1673,9 @@ func main() {
| admin_permissions | uint32 | level of admin permissions |
| quote_decimals | uint32 | quote token decimals |
| reduce_margin_ratio | cosmossdk_io_math.LegacyDec | reduce_margin_ratio defines the ratio of the margin that is reduced |
-| open_notional_cap | OpenNotionalCap | open_notional_cap defines the maximum open notional for the market |
+| open_notional_cap | OpenNotionalCap | open_notional_cap defines the maximum open notional for the market |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
+| force_paused_info | ForcePausedInfo | force_paused_info defines additional info for force paused markets, only set when status == ForcePaused |
@@ -1670,7 +1695,8 @@ func main() {
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
@@ -1682,7 +1708,8 @@ func main() {
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
@@ -1748,8 +1775,10 @@ func main() {
| Parameter | Type | Description |
|---|
| market_id | string | market ID. |
| expiration_timestamp | int64 | expiration_timestamp defines the expiration time for a time expiry futures market. |
| twap_start_timestamp | int64 | expiration_twap_start_timestamp defines the start time of the TWAP calculation window |
-| expiration_twap_start_price_cumulative | cosmossdk_io_math.LegacyDec | expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) |
-| settlement_price | cosmossdk_io_math.LegacyDec | settlement_price defines the settlement price for a time expiry futures market (in human readable format) |
+| expiration_twap_start_price_cumulative | cosmossdk_io_math.LegacyDec | expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) Deprecated: For correctly calculating the expiration price using TWAP, we need to keep the cumulative price at the start of TWAP calculation separately for the base asset and the quote asset. Use expiration_twap_start_base_cumulative_price and expiration_twap_start_quote_cumulative_price instead. |
+| settlement_price | cosmossdk_io_math.LegacyDec | settlement_price defines the settlement price for a time expiry futures market (in human readable format) |
+| expiration_twap_start_base_cumulative_price | cosmossdk_io_math.LegacyDec | expiration_twap_start_base_cumulative_price defines the cumulative price for the base asset at the start of the TWAP calculation window (in human readable format) |
+| expiration_twap_start_quote_cumulative_price | cosmossdk_io_math.LegacyDec | expiration_twap_start_quote_cumulative_price defines the cumulative price for the quote asset at the start of the TWAP calculation window (in human readable format) |
@@ -1775,6 +1804,23 @@ func main() {
| 32 | Maintenance Margin Ratio Permission |
+
+
+**ForcePausedInfo**
+
+
+| Parameter | Type | Description |
|---|
| reason | ForcePausedReason | |
+| mark_price_at_pausing | cosmossdk_io_math.LegacyDec | |
+
+
+
+
+**ForcePausedReason**
+
+
+| Code | Name |
|---|
| 0 | QuoteDenomPaused |
+
+
## DerivativeMarketAddress
@@ -3084,8 +3130,10 @@ func main() {
| Parameter | Type | Description |
|---|
| market_id | string | market ID. |
| expiration_timestamp | int64 | expiration_timestamp defines the expiration time for a time expiry futures market. |
| twap_start_timestamp | int64 | expiration_twap_start_timestamp defines the start time of the TWAP calculation window |
-| expiration_twap_start_price_cumulative | cosmossdk_io_math.LegacyDec | expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) |
-| settlement_price | cosmossdk_io_math.LegacyDec | settlement_price defines the settlement price for a time expiry futures market (in human readable format) |
+| expiration_twap_start_price_cumulative | cosmossdk_io_math.LegacyDec | expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) Deprecated: For correctly calculating the expiration price using TWAP, we need to keep the cumulative price at the start of TWAP calculation separately for the base asset and the quote asset. Use expiration_twap_start_base_cumulative_price and expiration_twap_start_quote_cumulative_price instead. |
+| settlement_price | cosmossdk_io_math.LegacyDec | settlement_price defines the settlement price for a time expiry futures market (in human readable format) |
+| expiration_twap_start_base_cumulative_price | cosmossdk_io_math.LegacyDec | expiration_twap_start_base_cumulative_price defines the cumulative price for the base asset at the start of the TWAP calculation window (in human readable format) |
+| expiration_twap_start_quote_cumulative_price | cosmossdk_io_math.LegacyDec | expiration_twap_start_quote_cumulative_price defines the cumulative price for the quote asset at the start of the TWAP calculation window (in human readable format) |
@@ -3634,7 +3682,8 @@ func main() {
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
@@ -3941,7 +3990,8 @@ func main() {
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
@@ -4072,11 +4122,9 @@ async def main() -> None:
market_id=market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(50000),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("50000"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("5000"),
order_type="SELL",
cid=str(uuid.uuid4()),
)
@@ -4382,11 +4430,9 @@ async def main() -> None:
market_id=market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(50000),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("50000"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("5000"),
order_type="BUY",
cid=str(uuid.uuid4()),
)
@@ -4992,11 +5038,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(25000),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(25000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("25000"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("2500"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -5004,11 +5048,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(50000),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("50000"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("500"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
@@ -5019,11 +5061,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(25100),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(25100), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("25100"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("2510"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -5489,11 +5529,9 @@ async def main() -> None:
market_id=market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(39.01), # This should be the liquidation price
- quantity=Decimal(0.147),
- margin=composer.calculate_margin(
- quantity=Decimal(0.147), price=Decimal(39.01), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("39.01"), # This should be the liquidation price
+ quantity=Decimal("0.147"),
+ margin=Decimal("5.73447"),
order_type="SELL",
cid=cid,
)
@@ -5793,7 +5831,7 @@ async def main() -> None:
market_id=market_id,
source_subaccount_id=subaccount_id,
destination_subaccount_id=subaccount_id,
- amount=Decimal(2),
+ amount=Decimal("2"),
)
# broadcast the transaction
@@ -6037,7 +6075,7 @@ async def main() -> None:
market_id=market_id,
source_subaccount_id=subaccount_id,
destination_subaccount_id=subaccount_id,
- amount=Decimal(2),
+ amount=Decimal("2"),
)
# broadcast the transaction
@@ -6586,11 +6624,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(10500),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(10500), leverage=Decimal(2), is_reduce_only=False
- ),
+ price=Decimal("10500"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("52.5"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -6598,11 +6634,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(65111),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(65111), leverage=Decimal(2), is_reduce_only=False
- ),
+ price=Decimal("65111"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("325.555"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
@@ -6723,11 +6757,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id_2,
fee_recipient=fee_recipient,
- price=Decimal(25111),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(25111), leverage=Decimal("1.5"), is_reduce_only=False
- ),
+ price=Decimal("25111"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("167.406666666666666667"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -6735,11 +6767,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id_2,
fee_recipient=fee_recipient,
- price=Decimal(65111),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(25111), leverage=Decimal(2), is_reduce_only=False
- ),
+ price=Decimal("65111"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("125.555"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
diff --git a/source/includes/_derivativesrpc.md b/source/includes/_derivativesrpc.md
index d17b98bd..b466f40e 100644
--- a/source/includes/_derivativesrpc.md
+++ b/source/includes/_derivativesrpc.md
@@ -2522,7 +2522,9 @@ func main() {
| updated_at | int64 | Position updated timestamp in UNIX millis. |
| denom | string | Market quote denom |
| funding_last | string | Last funding fees since position opened |
-| funding_sum | string | Net funding fees since position opened |
+| funding_sum | string | Net funding fees since position opened |
+| cumulative_funding_entry | string | Cumulative funding entry of the position |
+| effective_cumulative_funding_entry | string | Effective cumulative funding entry of the position |
@@ -2764,7 +2766,9 @@ func main() {
| updated_at | int64 | Position updated timestamp in UNIX millis. |
| denom | string | Market quote denom |
| funding_last | string | Last funding fees since position opened |
-| funding_sum | string | Net funding fees since position opened |
+| funding_sum | string | Net funding fees since position opened |
+| cumulative_funding_entry | string | Cumulative funding entry of the position |
+| effective_cumulative_funding_entry | string | Effective cumulative funding entry of the position |
@@ -3081,7 +3085,9 @@ func main() {
| updated_at | int64 | Position updated timestamp in UNIX millis. |
| created_at | int64 | Position created timestamp in UNIX millis. |
| funding_last | string | Last funding fees since position opened |
-| funding_sum | string | Net funding fees since position opened |
+| funding_sum | string | Net funding fees since position opened |
+| cumulative_funding_entry | string | Cumulative funding entry of the position |
+| effective_cumulative_funding_entry | string | Effective cumulative funding entry of the position |
diff --git a/source/includes/_errors.md b/source/includes/_errors.md
index 3ca16af6..fd2cc8cf 100644
--- a/source/includes/_errors.md
+++ b/source/includes/_errors.md
@@ -50,57 +50,6 @@ This section lists all error codes from various modules in the Injective ecosyst
| authz | 12 | max tokens should be positive |
-## Bandoracle module
-
-
-| module_name | error_code | description |
|---|
| bandoracle | 1 | owasm compilation failed |
-| bandoracle | 2 | bad wasm execution |
-| bandoracle | 3 | data source not found |
-| bandoracle | 4 | oracle script not found |
-| bandoracle | 5 | request not found |
-| bandoracle | 6 | raw request not found |
-| bandoracle | 7 | reporter not found |
-| bandoracle | 8 | result not found |
-| bandoracle | 9 | reporter already exists |
-| bandoracle | 10 | validator not requested |
-| bandoracle | 11 | validator already reported |
-| bandoracle | 12 | invalid report size |
-| bandoracle | 13 | reporter not authorized |
-| bandoracle | 14 | editor not authorized |
-| bandoracle | 16 | validator already active |
-| bandoracle | 17 | too soon to activate |
-| bandoracle | 18 | too long name |
-| bandoracle | 19 | too long description |
-| bandoracle | 20 | empty executable |
-| bandoracle | 21 | empty wasm code |
-| bandoracle | 22 | too large executable |
-| bandoracle | 23 | too large wasm code |
-| bandoracle | 24 | invalid min count |
-| bandoracle | 25 | invalid ask count |
-| bandoracle | 26 | too large calldata |
-| bandoracle | 27 | too long client id |
-| bandoracle | 28 | empty raw requests |
-| bandoracle | 29 | empty report |
-| bandoracle | 30 | duplicate external id |
-| bandoracle | 31 | too long schema |
-| bandoracle | 32 | too long url |
-| bandoracle | 33 | too large raw report data |
-| bandoracle | 34 | insufficient available validators |
-| bandoracle | 35 | cannot create with [do-not-modify] content |
-| bandoracle | 36 | cannot reference self as reporter |
-| bandoracle | 37 | obi decode failed |
-| bandoracle | 38 | uncompression failed |
-| bandoracle | 39 | request already expired |
-| bandoracle | 40 | bad drbg initialization |
-| bandoracle | 41 | max oracle channels |
-| bandoracle | 42 | invalid ICS20 version |
-| bandoracle | 43 | not enough fee |
-| bandoracle | 44 | invalid owasm gas |
-| bandoracle | 45 | sending oracle request via IBC is disabled |
-| bandoracle | 46 | invalid request key |
-| bandoracle | 47 | too long request key |
-
-
## Bank module
@@ -295,7 +244,8 @@ This section lists all error codes from various modules in the Injective ecosyst
| erc20 | 8 | error uploading ERC20 contract |
| erc20 | 9 | invalid token factory denom |
| erc20 | 10 | respective erc20:... denom has existing supply |
-| erc20 | 11 | invalid query request |
+| erc20 | 11 | invalid query request |
+| erc20 | 12 | can't charge denom creation fee |
## Evidence module
@@ -447,7 +397,9 @@ This section lists all error codes from various modules in the Injective ecosyst
| exchange | 108 | v1 perpetual and expiry market launch proposal is not supported |
| exchange | 109 | position not offsettable |
| exchange | 110 | offsetting subaccount IDs cannot be empty |
-| exchange | 111 | invalid open notional cap |
+| exchange | 111 | invalid open notional cap |
+| exchange | 112 | open notional cap breached |
+| exchange | 113 | no valid offsetting positions found |
## Feegrant module
@@ -662,7 +614,9 @@ This section lists all error codes from various modules in the Injective ecosyst
| oracle | 40 | bad Stork message timestamp |
| oracle | 41 | sender stork is empty |
| oracle | 42 | invalid stork signature |
-| oracle | 43 | stork asset id not unique |
+| oracle | 43 | stork asset id not unique |
+| oracle | 44 | chainlink report verification failed |
+| oracle | 45 | Band oracle is deprecated and no longer supported |
## Params module
@@ -693,7 +647,9 @@ This section lists all error codes from various modules in the Injective ecosyst
| peggy | 12 | supply cannot exceed max ERC20 value |
| peggy | 13 | invalid ethereum sender on claim |
| peggy | 14 | invalid ethereum destination |
-| peggy | 15 | missing previous claim for validator |
+| peggy | 15 | missing previous claim for validator |
+| peggy | 16 | eth address already in use |
+| peggy | 17 | validator is unbonded |
## Permissions module
@@ -709,11 +665,13 @@ This section lists all error codes from various modules in the Injective ecosyst
| permissions | 9 | restricted action |
| permissions | 10 | invalid role |
| permissions | 11 | namespace for denom does not exist |
-| permissions | 12 | wasm hook query error |
+| permissions | 12 | contract hook query error |
| permissions | 13 | voucher was not found |
-| permissions | 14 | invalid contract hook |
+| permissions | 14 | invalid wasm hook |
| permissions | 15 | unknown policy |
-| permissions | 16 | unauthorized policy change |
+| permissions | 16 | unauthorized policy change |
+| permissions | 17 | invalid evm hook |
+| permissions | 18 | invalid erc20 denom |
## Port module
diff --git a/source/includes/_insurance.md b/source/includes/_insurance.md
index facba0e6..fa631864 100644
--- a/source/includes/_insurance.md
+++ b/source/includes/_insurance.md
@@ -107,7 +107,8 @@ if __name__ == "__main__":
| 9 | Pyth |
| 10 | BandIBC |
| 11 | Provider |
-| 12 | Stork |
+| 12 | Stork |
+| 13 | ChainlinkDataStreams |
diff --git a/source/includes/_oraclerpc.md b/source/includes/_oraclerpc.md
index 072c1026..7d9177a8 100644
--- a/source/includes/_oraclerpc.md
+++ b/source/includes/_oraclerpc.md
@@ -25,7 +25,7 @@ async def main() -> None:
# select network: local, testnet, mainnet
network = Network.testnet()
client = IndexerClient(network)
- oracle_list = await client.fetch_oracle_list()
+ oracle_list = await client.fetch_oracle_list(symbol="TIA", oracle_type="provider")
print(json.dumps(oracle_list, indent=2))
@@ -55,8 +55,11 @@ func main() {
panic(err)
}
+ symbol := "PYTH/USDT"
+ oracleType := "pricefeed"
+
ctx := context.Background()
- res, err := exchangeClient.GetOracleList(ctx)
+ res, err := exchangeClient.GetOracleList(ctx, symbol, oracleType, "", 0)
if err != nil {
fmt.Println(err)
}
@@ -67,6 +70,22 @@ func main() {
```
+
+| Parameter | Type | Description | Required |
|---|
| symbol | string | Filter by oracle symbol | Yes |
+| oracle_type | string | Filter by oracle type | Yes |
+| per_page | int32 | Number of results per page | Yes |
+| token | string | Pagination token from previous response | Yes |
+
+
+
+
+**Coin**
+
+
+| Parameter | Type | Description |
|---|
| denom | string | |
+| amount | cosmossdk_io_math.Int | |
+
+
### Response Parameters
> Response Example:
@@ -150,7 +169,8 @@ func main() {
```
-| Parameter | Type | Description |
|---|
| oracles | Oracle array | |
+| Parameter | Type | Description |
|---|
| oracles | Oracle array | List of oracles |
+| next | string array | Next tokens for pagination |
diff --git a/source/includes/_permissions.md b/source/includes/_permissions.md
index 768697d9..acfd38d0 100644
--- a/source/includes/_permissions.md
+++ b/source/includes/_permissions.md
@@ -573,12 +573,13 @@ No parameters
| Parameter | Type | Description |
|---|
| denom | string | The tokenfactory denom to which this namespace applies to |
-| contract_hook | string | The address of smart contract to apply code-based restrictions |
+| wasm_hook | string | The address of cosmwasm contract to apply code-based restrictions |
| role_permissions | Role array | permissions for each role |
| actor_roles | ActorRoles array | roles for each actor |
| role_managers | RoleManager array | managers for each role |
| policy_statuses | PolicyStatus array | status for each policy |
-| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| evm_hook | string | The address of the EVM contract to map code-based permissions |
@@ -1095,12 +1096,13 @@ func main() {
| Parameter | Type | Description |
|---|
| denom | string | The tokenfactory denom to which this namespace applies to |
-| contract_hook | string | The address of smart contract to apply code-based restrictions |
+| wasm_hook | string | The address of cosmwasm contract to apply code-based restrictions |
| role_permissions | Role array | permissions for each role |
| actor_roles | ActorRoles array | roles for each actor |
| role_managers | RoleManager array | managers for each role |
| policy_statuses | PolicyStatus array | status for each policy |
-| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| evm_hook | string | The address of the EVM contract to map code-based permissions |
@@ -2849,7 +2851,8 @@ No parameters
**Params**
-| Parameter | Type | Description |
|---|
| wasm_hook_query_max_gas | uint64 | Max amount of gas allowed for wasm hook queries |
+| Parameter | Type | Description |
|---|
| contract_hook_max_gas | uint64 | Max amount of gas allowed for contract hook queries |
+| enforced_restrictions_contracts | string array | EVM addresses of contracts that will not bypass module-to-module transfers |
@@ -2858,12 +2861,13 @@ No parameters
| Parameter | Type | Description |
|---|
| denom | string | The tokenfactory denom to which this namespace applies to |
-| contract_hook | string | The address of smart contract to apply code-based restrictions |
+| wasm_hook | string | The address of cosmwasm contract to apply code-based restrictions |
| role_permissions | Role array | permissions for each role |
| actor_roles | ActorRoles array | roles for each actor |
| role_managers | RoleManager array | managers for each role |
| policy_statuses | PolicyStatus array | status for each policy |
-| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| evm_hook | string | The address of the EVM contract to map code-based permissions |
@@ -3058,12 +3062,13 @@ async def main() -> None:
message = composer.msg_create_namespace(
sender=address.to_acc_bech32(),
denom=denom,
- contract_hook="",
+ wasm_hook="",
role_permissions=[role1, role2, role3],
actor_roles=[actor_role1, actor_role2],
role_managers=[role_manager],
policy_statuses=[policy_status1, policy_status2],
policy_manager_capabilities=[policy_manager_capability],
+ evm_hook="",
)
# broadcast the transaction
@@ -3206,12 +3211,13 @@ func main() {
namespace := permissionstypes.Namespace{
Denom: denom,
- ContractHook: "",
+ WasmHook: "",
RolePermissions: []*permissionstypes.Role{&role1, &role2, &role3},
ActorRoles: []*permissionstypes.ActorRoles{&actor_role1, &actor_role2},
RoleManagers: []*permissionstypes.RoleManager{&role_manager},
PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2},
PolicyManagerCapabilities: []*permissionstypes.PolicyManagerCapability{&policy_manager_capability},
+ EvmHook: "",
}
msg := &permissionstypes.MsgCreateNamespace{
@@ -3249,12 +3255,13 @@ func main() {
| Parameter | Type | Description |
|---|
| denom | string | The tokenfactory denom to which this namespace applies to |
-| contract_hook | string | The address of smart contract to apply code-based restrictions |
+| wasm_hook | string | The address of cosmwasm contract to apply code-based restrictions |
| role_permissions | Role array | permissions for each role |
| actor_roles | ActorRoles array | roles for each actor |
| role_managers | RoleManager array | managers for each role |
| policy_statuses | PolicyStatus array | status for each policy |
-| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| policy_manager_capabilities | PolicyManagerCapability array | capabilities for each manager for each policy |
+| evm_hook | string | The address of the EVM contract to map code-based permissions |
@@ -3454,11 +3461,12 @@ async def main() -> None:
message = composer.msg_update_namespace(
sender=address.to_acc_bech32(),
denom=denom,
- contract_hook="inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m",
+ wasm_hook="inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m",
role_permissions=[role1, role2],
role_managers=[role_manager],
policy_statuses=[policy_status1, policy_status2],
policy_manager_capabilities=[policy_manager_capability],
+ evm_hook="",
)
# broadcast the transaction
@@ -3585,7 +3593,7 @@ func main() {
msg := &permissionstypes.MsgUpdateNamespace{
Sender: senderAddress.String(),
Denom: denom,
- ContractHook: &permissionstypes.MsgUpdateNamespace_SetContractHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"},
+ WasmHook: &permissionstypes.MsgUpdateNamespace_SetContractHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"},
RolePermissions: []*permissionstypes.Role{&role1, &role2},
RoleManagers: []*permissionstypes.RoleManager{&role_manager},
PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2},
@@ -3614,11 +3622,12 @@ func main() {
| Parameter | Type | Description | Required |
|---|
| sender | string | The sender's Injective address | Yes |
| denom | string | denom whose namespace updates are to be applied | Yes |
-| contract_hook | MsgUpdateNamespace_SetContractHook | address of smart contract to apply code-based restrictions | No |
+| wasm_hook | MsgUpdateNamespace_SetContractHook | address of wasm smart contract to apply code-based restrictions | No |
| role_permissions | Role array | role permissions to update | No |
| role_managers | RoleManager array | role managers to update | No |
| policy_statuses | PolicyStatus array | policy statuses to update | No |
-| policy_manager_capabilities | PolicyManagerCapability array | policy manager capabilities to update | No |
+| policy_manager_capabilities | PolicyManagerCapability array | policy manager capabilities to update | No |
+| evm_hook | MsgUpdateNamespace_SetContractHook | address of EVM smart contract to apply code-based restrictions | No |
diff --git a/source/includes/_spot.md b/source/includes/_spot.md
index d40e1f4c..96b17467 100644
--- a/source/includes/_spot.md
+++ b/source/includes/_spot.md
@@ -311,7 +311,8 @@ func main() {
| admin | string | current market admin |
| admin_permissions | uint32 | level of admin permissions |
| base_decimals | uint32 | base token decimals |
-| quote_decimals | uint32 | quote token decimals |
+| quote_decimals | uint32 | quote token decimals |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
@@ -323,7 +324,8 @@ func main() {
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
@@ -503,7 +505,8 @@ func main() {
| admin | string | current market admin |
| admin_permissions | uint32 | level of admin permissions |
| base_decimals | uint32 | base token decimals |
-| quote_decimals | uint32 | quote token decimals |
+| quote_decimals | uint32 | quote token decimals |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
@@ -515,7 +518,8 @@ func main() {
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
@@ -719,7 +723,8 @@ func main() {
| admin | string | current market admin |
| admin_permissions | uint32 | level of admin permissions |
| base_decimals | uint32 | base token decimals |
-| quote_decimals | uint32 | quote token decimals |
+| quote_decimals | uint32 | quote token decimals |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
@@ -731,7 +736,8 @@ func main() {
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
@@ -940,7 +946,8 @@ func main() {
| admin | string | current market admin |
| admin_permissions | uint32 | level of admin permissions |
| base_decimals | uint32 | base token decimals |
-| quote_decimals | uint32 | quote token decimals |
+| quote_decimals | uint32 | quote token decimals |
+| has_disabled_minimal_protocol_fee | bool | has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market |
@@ -952,7 +959,8 @@ func main() {
| 1 | Active |
| 2 | Paused |
| 3 | Demolished |
-| 4 | Expired |
+| 4 | Expired |
+| 5 | ForcePaused |
@@ -3149,11 +3157,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(25000),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(25000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("25000"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("2500"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -3161,11 +3167,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(50000),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("50000"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("500"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
@@ -3176,11 +3180,9 @@ async def main() -> None:
market_id=derivative_market_id_create,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(25100),
- quantity=Decimal(0.1),
- margin=composer.calculate_margin(
- quantity=Decimal(0.1), price=Decimal(25100), leverage=Decimal(1), is_reduce_only=False
- ),
+ price=Decimal("25100"),
+ quantity=Decimal("0.1"),
+ margin=Decimal("2510"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -3907,11 +3909,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(10500),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(10500), leverage=Decimal(2), is_reduce_only=False
- ),
+ price=Decimal("10500"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("52.5"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -3919,11 +3919,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id,
fee_recipient=fee_recipient,
- price=Decimal(65111),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(65111), leverage=Decimal(2), is_reduce_only=False
- ),
+ price=Decimal("65111"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("325.555"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
@@ -4044,11 +4042,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id_2,
fee_recipient=fee_recipient,
- price=Decimal(25111),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(25111), leverage=Decimal("1.5"), is_reduce_only=False
- ),
+ price=Decimal("25111"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("167.406666666666666667"),
order_type="BUY",
cid=str(uuid.uuid4()),
),
@@ -4056,11 +4052,9 @@ async def main() -> None:
market_id=deriv_market_id,
subaccount_id=subaccount_id_2,
fee_recipient=fee_recipient,
- price=Decimal(65111),
- quantity=Decimal(0.01),
- margin=composer.calculate_margin(
- quantity=Decimal(0.01), price=Decimal(25111), leverage=Decimal(2), is_reduce_only=False
- ),
+ price=Decimal("65111"),
+ quantity=Decimal("0.01"),
+ margin=Decimal("125.555"),
order_type="SELL",
cid=str(uuid.uuid4()),
),
diff --git a/source/includes/_websocket.md b/source/includes/_websocket.md
new file mode 100644
index 00000000..11a567eb
--- /dev/null
+++ b/source/includes/_websocket.md
@@ -0,0 +1,276 @@
+# - WebSocket
+The WebSocket endpoint provides a real-time streaming interface for Injective chain events. It is a wrapper on top of the Chain Stream gRPC service, so you receive the same event data (trades, orders, balances, oracle prices, etc.) over a standard WebSocket connection instead of gRPC. The request and response shapes match the [Chain Stream](#chain-stream) API: you use the same filters and receive the same stream payloads.
+
+Use the WebSocket when your client environment supports WebSockets but not gRPC (e.g. browsers or some server runtimes), or when you prefer a single long-lived HTTP upgrade over gRPC streaming.
+
+## Connecting
+
+Connect to the WebSocket at the following path on a node that exposes the WebSocket server:
+
+```
+ws://:/injstream-ws
+```
+
+For secure connections, use a TLS-terminating proxy and connect with `wss://` to the proxy endpoint.
+
+After the connection is established, send JSON-RPC 2.0 requests to subscribe or unsubscribe. All messages are JSON; text frames only.
+
+> Connect and subscribe:
+
+```py
+import asyncio
+import json
+
+import websockets
+
+
+async def main():
+ uri = "ws://localhost:9998/injstream-ws"
+ async with websockets.connect(uri) as ws:
+ subscribe_request = {
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "subscribe",
+ "params": {
+ "req": {
+ "subscription_id": "my-oracle-prices",
+ "filter": {
+ "oracle_price_filter": {"symbol": ["INJ", "USDT"]}
+ },
+ }
+ },
+ }
+ await ws.send(json.dumps(subscribe_request))
+
+ async for raw in ws:
+ msg = json.loads(raw)
+ print(msg)
+
+
+if __name__ == "__main__":
+ asyncio.run(main())
+```
+```go
+package main
+
+import (
+ "encoding/json"
+ "log"
+ "net/url"
+
+ "github.com/gorilla/websocket"
+)
+
+func main() {
+ u := url.URL{Scheme: "ws", Host: "localhost:9998", Path: "/injstream-ws"}
+ conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer conn.Close()
+
+ subscribeReq := map[string]interface{}{
+ "jsonrpc": "2.0",
+ "id": float64(1),
+ "method": "subscribe",
+ "params": map[string]interface{}{
+ "req": map[string]interface{}{
+ "subscription_id": "my-oracle-prices",
+ "filter": map[string]interface{}{
+ "oracle_price_filter": map[string]interface{}{
+ "symbol": []string{"INJ", "USDT"},
+ },
+ },
+ },
+ },
+ }
+ payload, _ := json.Marshal(subscribeReq)
+ if err := conn.WriteMessage(websocket.TextMessage, payload); err != nil {
+ log.Fatal(err)
+ }
+
+ for {
+ _, data, err := conn.ReadMessage()
+ if err != nil {
+ log.Fatal(err)
+ }
+ var msg map[string]interface{}
+ json.Unmarshal(data, &msg)
+ log.Printf("%+v", msg)
+ }
+}
+```
+
+## Subscribing to events
+
+Send a JSON-RPC 2.0 request with method `subscribe`. The request must include:
+
+- `jsonrpc`: `"2.0"`
+- `id`: A positive integer used to match responses for this subscription
+- `method`: `"subscribe"`
+- `params.req.subscription_id`: A **client-chosen unique identifier** for this subscription (used later to unsubscribe)
+- `params.req.filter`: An object with one or more of the filter types below (same as [Chain Stream](#chain-stream))
+
+At least one filter must be specified. You can combine multiple filters in a single subscription.
+
+> Subscribe to oracle prices:
+
+```javascript
+const subscribeRequest = {
+ jsonrpc: '2.0',
+ id: 1,
+ method: 'subscribe',
+ params: {
+ req: {
+ subscription_id: 'my-oracle-prices',
+ filter: {
+ oracle_price_filter: {
+ symbol: ['*'] // Use '*' to subscribe to all symbols
+ }
+ }
+ }
+ }
+};
+
+ws.send(JSON.stringify(subscribeRequest));
+```
+
+> Subscribe to spot orders for a specific market:
+
+```javascript
+const subscribeRequest = {
+ jsonrpc: '2.0',
+ id: 2,
+ method: 'subscribe',
+ params: {
+ req: {
+ subscription_id: 'spot-orders-market-1',
+ filter: {
+ spot_orders_filter: {
+ market_ids: ['0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe'],
+ subaccount_ids: ['*']
+ }
+ }
+ }
+ }
+};
+
+ws.send(JSON.stringify(subscribeRequest));
+```
+
+> Subscribe to multiple event types:
+
+```javascript
+const subscribeRequest = {
+ jsonrpc: '2.0',
+ id: 3,
+ method: 'subscribe',
+ params: {
+ req: {
+ subscription_id: 'my-trading-stream',
+ filter: {
+ spot_orders_filter: {
+ market_ids: ['*'],
+ subaccount_ids: ['0xeb8cf88b739fe12e303e31fb88fc37751e17cf3d000000000000000000000000']
+ },
+ derivative_orders_filter: {
+ market_ids: ['*'],
+ subaccount_ids: ['0xeb8cf88b739fe12e303e31fb88fc37751e17cf3d000000000000000000000000']
+ },
+ oracle_price_filter: {
+ symbol: ['BTCUSD', 'ETHUSD']
+ },
+ positions_filter: {
+ subaccount_ids: ['0xeb8cf88b739fe12e303e31fb88fc37751e17cf3d000000000000000000000000'],
+ market_ids: ['*']
+ }
+ }
+ }
+ }
+};
+
+ws.send(JSON.stringify(subscribeRequest));
+```
+
+> Successful subscription response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "success"
+}
+```
+
+After a successful subscription, stream updates are sent as JSON-RPC responses with the same `id`. Only fields that match your filters will contain data; others will be empty arrays or omitted.
+
+## Unsubscribing
+
+To stop receiving events for a subscription, send a request with method `unsubscribe` and the same `subscription_id` you used when subscribing:
+
+```javascript
+const unsubscribeRequest = {
+ jsonrpc: '2.0',
+ id: 100,
+ method: 'unsubscribe',
+ params: {
+ req: {
+ subscription_id: 'my-oracle-prices'
+ }
+ }
+};
+
+ws.send(JSON.stringify(unsubscribeRequest));
+```
+
+> Successful unsubscribe response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 100,
+ "result": "success"
+}
+```
+
+The `subscription_id` must match exactly the value you provided when creating the subscription. When the WebSocket connection is closed, all its subscriptions are cancelled automatically.
+
+## Subscribe request filter
+
+The `params.req.filter` object uses the same structure as the [Chain Stream](#chain-stream) **Stream Request**: the same filter names (e.g. `bank_balances_filter`, `spot_trades_filter`, `oracle_price_filter`) and the same parameters per filter. You must specify at least one filter. For the full list of filters, their parameters, and wildcard (`"*"`) support, see the [Chain Stream — Stream Request](#chain-stream-stream-request) section.
+
+## Stream response format
+
+Stream updates are delivered as JSON-RPC 2.0 responses. The `result` field is the same as the [Chain Stream](#chain-stream) **StreamResponse**: one message per block, with `block_height`, `block_time`, and arrays for each event type. For the full response shape and the structure of each event type (e.g. `SpotTrade`, `Position`, `OraclePrice`), see the [Chain Stream — StreamResponse](#chain-stream-streamresponse) section.
+
+> Stream message:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": "12345678",
+ "block_time": "1702123456789",
+ "bank_balances": [],
+ "subaccount_deposits": [],
+ "spot_trades": [],
+ "derivative_trades": [],
+ "spot_orders": [],
+ "derivative_orders": [],
+ "spot_orderbook_updates": [],
+ "derivative_orderbook_updates": [],
+ "positions": [],
+ "oracle_prices": [...],
+ "gas_price": "160000000",
+ "order_failures": [],
+ "conditional_order_trigger_failures": []
+ }
+}
+```
+
+## Client behavior
+
+- **Subscription ID:** You choose a unique `subscription_id` per subscription. It must be unique within the same connection. Use it when unsubscribing. After a reconnect, you can re-subscribe with the same IDs to get back the same logical subscriptions.
+- **Connection lifecycle:** When the WebSocket connection is closed, all subscriptions for that connection are cancelled. Implement reconnection (e.g. with increasing delay between attempts to avoid hammering the server) and re-send subscribe requests for the streams you need. The stream is live-only: after reconnecting you only receive new events from that point; past events are not replayed.
+- **Errors:** The server may send JSON-RPC error responses (e.g. invalid request or subscription already exists). Handle `error` in the JSON-RPC payload and optional ping/pong frames to detect stale connections.
diff --git a/source/index.html.md b/source/index.html.md
index 9580b959..bb9f69d1 100644
--- a/source/index.html.md
+++ b/source/index.html.md
@@ -51,6 +51,7 @@ includes:
- txfees
- wasm
- wasmx
+ - websocket
- historicalqueries
- healthapi
- glossary
diff --git a/source/json_tables/errors/bandoracle_errors.json b/source/json_tables/errors/bandoracle_errors.json
deleted file mode 100644
index 96286072..00000000
--- a/source/json_tables/errors/bandoracle_errors.json
+++ /dev/null
@@ -1,232 +0,0 @@
-[
- {
- "module_name": "bandoracle",
- "error_code": 1,
- "description": "owasm compilation failed"
- },
- {
- "module_name": "bandoracle",
- "error_code": 2,
- "description": "bad wasm execution"
- },
- {
- "module_name": "bandoracle",
- "error_code": 3,
- "description": "data source not found"
- },
- {
- "module_name": "bandoracle",
- "error_code": 4,
- "description": "oracle script not found"
- },
- {
- "module_name": "bandoracle",
- "error_code": 5,
- "description": "request not found"
- },
- {
- "module_name": "bandoracle",
- "error_code": 6,
- "description": "raw request not found"
- },
- {
- "module_name": "bandoracle",
- "error_code": 7,
- "description": "reporter not found"
- },
- {
- "module_name": "bandoracle",
- "error_code": 8,
- "description": "result not found"
- },
- {
- "module_name": "bandoracle",
- "error_code": 9,
- "description": "reporter already exists"
- },
- {
- "module_name": "bandoracle",
- "error_code": 10,
- "description": "validator not requested"
- },
- {
- "module_name": "bandoracle",
- "error_code": 11,
- "description": "validator already reported"
- },
- {
- "module_name": "bandoracle",
- "error_code": 12,
- "description": "invalid report size"
- },
- {
- "module_name": "bandoracle",
- "error_code": 13,
- "description": "reporter not authorized"
- },
- {
- "module_name": "bandoracle",
- "error_code": 14,
- "description": "editor not authorized"
- },
- {
- "module_name": "bandoracle",
- "error_code": 16,
- "description": "validator already active"
- },
- {
- "module_name": "bandoracle",
- "error_code": 17,
- "description": "too soon to activate"
- },
- {
- "module_name": "bandoracle",
- "error_code": 18,
- "description": "too long name"
- },
- {
- "module_name": "bandoracle",
- "error_code": 19,
- "description": "too long description"
- },
- {
- "module_name": "bandoracle",
- "error_code": 20,
- "description": "empty executable"
- },
- {
- "module_name": "bandoracle",
- "error_code": 21,
- "description": "empty wasm code"
- },
- {
- "module_name": "bandoracle",
- "error_code": 22,
- "description": "too large executable"
- },
- {
- "module_name": "bandoracle",
- "error_code": 23,
- "description": "too large wasm code"
- },
- {
- "module_name": "bandoracle",
- "error_code": 24,
- "description": "invalid min count"
- },
- {
- "module_name": "bandoracle",
- "error_code": 25,
- "description": "invalid ask count"
- },
- {
- "module_name": "bandoracle",
- "error_code": 26,
- "description": "too large calldata"
- },
- {
- "module_name": "bandoracle",
- "error_code": 27,
- "description": "too long client id"
- },
- {
- "module_name": "bandoracle",
- "error_code": 28,
- "description": "empty raw requests"
- },
- {
- "module_name": "bandoracle",
- "error_code": 29,
- "description": "empty report"
- },
- {
- "module_name": "bandoracle",
- "error_code": 30,
- "description": "duplicate external id"
- },
- {
- "module_name": "bandoracle",
- "error_code": 31,
- "description": "too long schema"
- },
- {
- "module_name": "bandoracle",
- "error_code": 32,
- "description": "too long url"
- },
- {
- "module_name": "bandoracle",
- "error_code": 33,
- "description": "too large raw report data"
- },
- {
- "module_name": "bandoracle",
- "error_code": 34,
- "description": "insufficient available validators"
- },
- {
- "module_name": "bandoracle",
- "error_code": 35,
- "description": "cannot create with [do-not-modify] content"
- },
- {
- "module_name": "bandoracle",
- "error_code": 36,
- "description": "cannot reference self as reporter"
- },
- {
- "module_name": "bandoracle",
- "error_code": 37,
- "description": "obi decode failed"
- },
- {
- "module_name": "bandoracle",
- "error_code": 38,
- "description": "uncompression failed"
- },
- {
- "module_name": "bandoracle",
- "error_code": 39,
- "description": "request already expired"
- },
- {
- "module_name": "bandoracle",
- "error_code": 40,
- "description": "bad drbg initialization"
- },
- {
- "module_name": "bandoracle",
- "error_code": 41,
- "description": "max oracle channels"
- },
- {
- "module_name": "bandoracle",
- "error_code": 42,
- "description": "invalid ICS20 version"
- },
- {
- "module_name": "bandoracle",
- "error_code": 43,
- "description": "not enough fee"
- },
- {
- "module_name": "bandoracle",
- "error_code": 44,
- "description": "invalid owasm gas"
- },
- {
- "module_name": "bandoracle",
- "error_code": 45,
- "description": "sending oracle request via IBC is disabled"
- },
- {
- "module_name": "bandoracle",
- "error_code": 46,
- "description": "invalid request key"
- },
- {
- "module_name": "bandoracle",
- "error_code": 47,
- "description": "too long request key"
- }
-]
diff --git a/source/json_tables/errors/erc20_errors.json b/source/json_tables/errors/erc20_errors.json
index 6310d01d..9d6c5f3b 100644
--- a/source/json_tables/errors/erc20_errors.json
+++ b/source/json_tables/errors/erc20_errors.json
@@ -48,5 +48,10 @@
"module_name": "erc20",
"error_code": 11,
"description": "invalid query request"
+ },
+ {
+ "module_name": "erc20",
+ "error_code": 12,
+ "description": "can't charge denom creation fee"
}
]
diff --git a/source/json_tables/errors/exchange_errors.json b/source/json_tables/errors/exchange_errors.json
index d1119a05..1b016796 100644
--- a/source/json_tables/errors/exchange_errors.json
+++ b/source/json_tables/errors/exchange_errors.json
@@ -553,5 +553,15 @@
"module_name": "exchange",
"error_code": 111,
"description": "invalid open notional cap"
+ },
+ {
+ "module_name": "exchange",
+ "error_code": 112,
+ "description": "open notional cap breached"
+ },
+ {
+ "module_name": "exchange",
+ "error_code": 113,
+ "description": "no valid offsetting positions found"
}
]
diff --git a/source/json_tables/errors/oracle_errors.json b/source/json_tables/errors/oracle_errors.json
index dadf8b41..93683f19 100644
--- a/source/json_tables/errors/oracle_errors.json
+++ b/source/json_tables/errors/oracle_errors.json
@@ -213,5 +213,15 @@
"module_name": "oracle",
"error_code": 43,
"description": "stork asset id not unique"
+ },
+ {
+ "module_name": "oracle",
+ "error_code": 44,
+ "description": "chainlink report verification failed"
+ },
+ {
+ "module_name": "oracle",
+ "error_code": 45,
+ "description": "Band oracle is deprecated and no longer supported"
}
]
diff --git a/source/json_tables/errors/peggy_errors.json b/source/json_tables/errors/peggy_errors.json
index 6f5f4b0d..4cb31d6e 100644
--- a/source/json_tables/errors/peggy_errors.json
+++ b/source/json_tables/errors/peggy_errors.json
@@ -73,5 +73,15 @@
"module_name": "peggy",
"error_code": 15,
"description": "missing previous claim for validator"
+ },
+ {
+ "module_name": "peggy",
+ "error_code": 16,
+ "description": "eth address already in use"
+ },
+ {
+ "module_name": "peggy",
+ "error_code": 17,
+ "description": "validator is unbonded"
}
]
diff --git a/source/json_tables/errors/permissions_errors.json b/source/json_tables/errors/permissions_errors.json
index dd6bbd02..6575e55e 100644
--- a/source/json_tables/errors/permissions_errors.json
+++ b/source/json_tables/errors/permissions_errors.json
@@ -52,7 +52,7 @@
{
"module_name": "permissions",
"error_code": 12,
- "description": "wasm hook query error"
+ "description": "contract hook query error"
},
{
"module_name": "permissions",
@@ -62,7 +62,7 @@
{
"module_name": "permissions",
"error_code": 14,
- "description": "invalid contract hook"
+ "description": "invalid wasm hook"
},
{
"module_name": "permissions",
@@ -73,5 +73,15 @@
"module_name": "permissions",
"error_code": 16,
"description": "unauthorized policy change"
+ },
+ {
+ "module_name": "permissions",
+ "error_code": 17,
+ "description": "invalid evm hook"
+ },
+ {
+ "module_name": "permissions",
+ "error_code": 18,
+ "description": "invalid erc20 denom"
}
]
diff --git a/source/json_tables/indexer/event_provider_api/Block.json b/source/json_tables/indexer/event_provider_api/Block.json
index 3282b9a1..164990d1 100644
--- a/source/json_tables/indexer/event_provider_api/Block.json
+++ b/source/json_tables/indexer/event_provider_api/Block.json
@@ -18,5 +18,10 @@
"Parameter": "in_sync",
"Type": "bool",
"Description": "Indicates whether the block is the latest one available in the event provider"
+ },
+ {
+ "Parameter": "time",
+ "Type": "int64",
+ "Description": "Block timestamp in UNIX millis."
}
]
diff --git a/source/json_tables/indexer/injective_archiver_rpc/AccountStatsRequest.json b/source/json_tables/indexer/injective_archiver_rpc/AccountStatsRequest.json
index 3af302c8..85f87c32 100644
--- a/source/json_tables/indexer/injective_archiver_rpc/AccountStatsRequest.json
+++ b/source/json_tables/indexer/injective_archiver_rpc/AccountStatsRequest.json
@@ -4,5 +4,11 @@
"Type": "string",
"Description": "Account address",
"Required": "Yes"
+ },
+ {
+ "Parameter": "period",
+ "Type": "string",
+ "Description": "Time period filter for pnl and volume.",
+ "Required": "Yes"
}
]
diff --git a/source/json_tables/indexer/injective_archiver_rpc/AccountStatsResponse.json b/source/json_tables/indexer/injective_archiver_rpc/AccountStatsResponse.json
index bccf2271..d0c1c956 100644
--- a/source/json_tables/indexer/injective_archiver_rpc/AccountStatsResponse.json
+++ b/source/json_tables/indexer/injective_archiver_rpc/AccountStatsResponse.json
@@ -13,5 +13,10 @@
"Parameter": "volume",
"Type": "float64",
"Description": "Trade volume (USD)"
+ },
+ {
+ "Parameter": "stake",
+ "Type": "string",
+ "Description": "Staking amount (INJ)"
}
]
diff --git a/source/json_tables/indexer/injective_archiver_rpc/HistoricalDetailedBalance.json b/source/json_tables/indexer/injective_archiver_rpc/HistoricalDetailedBalance.json
index 69520464..02feb583 100644
--- a/source/json_tables/indexer/injective_archiver_rpc/HistoricalDetailedBalance.json
+++ b/source/json_tables/indexer/injective_archiver_rpc/HistoricalDetailedBalance.json
@@ -8,5 +8,10 @@
"Parameter": "perp",
"Type": "float64",
"Description": "Perpetual amount value"
+ },
+ {
+ "Parameter": "staking",
+ "Type": "float64",
+ "Description": "Staking amount value"
}
]
diff --git a/source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusRequest.json b/source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusRequest.json
new file mode 100644
index 00000000..40e289ff
--- /dev/null
+++ b/source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusRequest.json
@@ -0,0 +1,14 @@
+[
+ {
+ "Parameter": "round",
+ "Type": "int64",
+ "Description": "The auction round number",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "address",
+ "Type": "string",
+ "Description": "Address of account",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusResponse.json b/source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusResponse.json
new file mode 100644
index 00000000..69d73a81
--- /dev/null
+++ b/source/json_tables/indexer/injective_auction_rpc/AuctionAccountStatusResponse.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "The allowlist status of the account"
+ }
+]
diff --git a/source/json_tables/indexer/injective_auction_rpc/AuctionContract.json b/source/json_tables/indexer/injective_auction_rpc/AuctionContract.json
index 66341099..7d1d2a17 100644
--- a/source/json_tables/indexer/injective_auction_rpc/AuctionContract.json
+++ b/source/json_tables/indexer/injective_auction_rpc/AuctionContract.json
@@ -48,5 +48,10 @@
"Parameter": "max_round_allocation",
"Type": "string",
"Description": "Max round allocation of the auction"
+ },
+ {
+ "Parameter": "is_bid_placed",
+ "Type": "bool",
+ "Description": "Whether any bid has been placed in the auction."
}
]
diff --git a/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePosition.json b/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePosition.json
index 0433f3f8..70ec44de 100644
--- a/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePosition.json
+++ b/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePosition.json
@@ -68,5 +68,15 @@
"Parameter": "funding_sum",
"Type": "string",
"Description": "Net funding fees since position opened"
+ },
+ {
+ "Parameter": "cumulative_funding_entry",
+ "Type": "string",
+ "Description": "Cumulative funding entry of the position"
+ },
+ {
+ "Parameter": "effective_cumulative_funding_entry",
+ "Type": "string",
+ "Description": "Effective cumulative funding entry of the position"
}
]
diff --git a/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePositionV2.json b/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePositionV2.json
index f8dea4b1..3cbc50e4 100644
--- a/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePositionV2.json
+++ b/source/json_tables/indexer/injective_derivative_exchange_rpc/DerivativePositionV2.json
@@ -63,5 +63,15 @@
"Parameter": "funding_sum",
"Type": "string",
"Description": "Net funding fees since position opened"
+ },
+ {
+ "Parameter": "cumulative_funding_entry",
+ "Type": "string",
+ "Description": "Cumulative funding entry of the position"
+ },
+ {
+ "Parameter": "effective_cumulative_funding_entry",
+ "Type": "string",
+ "Description": "Effective cumulative funding entry of the position"
}
]
diff --git a/source/json_tables/indexer/injective_megavault_rpc/HistoricalPnL.json b/source/json_tables/indexer/injective_megavault_rpc/HistoricalPnL.json
index 06c78c98..4d9eba01 100644
--- a/source/json_tables/indexer/injective_megavault_rpc/HistoricalPnL.json
+++ b/source/json_tables/indexer/injective_megavault_rpc/HistoricalPnL.json
@@ -1,7 +1,7 @@
[
{
"Parameter": "t",
- "Type": "int32",
+ "Type": "int64",
"Description": "Time, Unix timestamp in milliseconds (UTC)"
},
{
diff --git a/source/json_tables/indexer/injective_megavault_rpc/HistoricalTVL.json b/source/json_tables/indexer/injective_megavault_rpc/HistoricalTVL.json
index 7eae365b..6f720079 100644
--- a/source/json_tables/indexer/injective_megavault_rpc/HistoricalTVL.json
+++ b/source/json_tables/indexer/injective_megavault_rpc/HistoricalTVL.json
@@ -1,7 +1,7 @@
[
{
"Parameter": "t",
- "Type": "int32",
+ "Type": "int64",
"Description": "Time, Unix timestamp in milliseconds (UTC)"
},
{
diff --git a/source/json_tables/indexer/injective_megavault_rpc/OperationStatusLogEntry.json b/source/json_tables/indexer/injective_megavault_rpc/OperationStatusLogEntry.json
new file mode 100644
index 00000000..d3e46e6e
--- /dev/null
+++ b/source/json_tables/indexer/injective_megavault_rpc/OperationStatusLogEntry.json
@@ -0,0 +1,22 @@
+[
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status of the subscription at this log entry"
+ },
+ {
+ "Parameter": "tx_hash",
+ "Type": "string",
+ "Description": "Transaction hash associated with this log entry"
+ },
+ {
+ "Parameter": "block_height",
+ "Type": "int64",
+ "Description": "Block height when this log entry occurred"
+ },
+ {
+ "Parameter": "block_time",
+ "Type": "int64",
+ "Description": "Timestamp when this log entry occurred in UNIX millis."
+ }
+]
diff --git a/source/json_tables/indexer/injective_megavault_rpc/Redemption.json b/source/json_tables/indexer/injective_megavault_rpc/Redemption.json
index 2746554e..34391735 100644
--- a/source/json_tables/indexer/injective_megavault_rpc/Redemption.json
+++ b/source/json_tables/indexer/injective_megavault_rpc/Redemption.json
@@ -53,5 +53,10 @@
"Parameter": "executed_at",
"Type": "int64",
"Description": "ExecutedAt timestamp in UNIX millis."
+ },
+ {
+ "Parameter": "log",
+ "Type": "OperationStatusLogEntry array",
+ "Description": "Redemption status log"
}
]
diff --git a/source/json_tables/indexer/injective_megavault_rpc/Subscription.json b/source/json_tables/indexer/injective_megavault_rpc/Subscription.json
index 87314488..6d7b918e 100644
--- a/source/json_tables/indexer/injective_megavault_rpc/Subscription.json
+++ b/source/json_tables/indexer/injective_megavault_rpc/Subscription.json
@@ -48,5 +48,10 @@
"Parameter": "executed_at",
"Type": "int64",
"Description": "ExecutedAt timestamp in UNIX millis."
+ },
+ {
+ "Parameter": "log",
+ "Type": "OperationStatusLogEntry array",
+ "Description": "Subscription status log"
}
]
diff --git a/source/json_tables/indexer/injective_megavault_rpc/User.json b/source/json_tables/indexer/injective_megavault_rpc/User.json
index 52bb9de0..30a1b68b 100644
--- a/source/json_tables/indexer/injective_megavault_rpc/User.json
+++ b/source/json_tables/indexer/injective_megavault_rpc/User.json
@@ -14,6 +14,16 @@
"Type": "UserStats",
"Description": "User stats"
},
+ {
+ "Parameter": "created_height",
+ "Type": "int64",
+ "Description": "Block height when the vault was created."
+ },
+ {
+ "Parameter": "created_at",
+ "Type": "int64",
+ "Description": "CreatedAt timestamp in UNIX millis."
+ },
{
"Parameter": "updated_height",
"Type": "int64",
diff --git a/source/json_tables/indexer/injective_oracle_rpc/OracleListRequest.json b/source/json_tables/indexer/injective_oracle_rpc/OracleListRequest.json
new file mode 100644
index 00000000..91236955
--- /dev/null
+++ b/source/json_tables/indexer/injective_oracle_rpc/OracleListRequest.json
@@ -0,0 +1,26 @@
+[
+ {
+ "Parameter": "symbol",
+ "Type": "string",
+ "Description": "Filter by oracle symbol",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "oracle_type",
+ "Type": "string",
+ "Description": "Filter by oracle type",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "per_page",
+ "Type": "int32",
+ "Description": "Number of results per page",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "token",
+ "Type": "string",
+ "Description": "Pagination token from previous response",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_oracle_rpc/OracleListResponse.json b/source/json_tables/indexer/injective_oracle_rpc/OracleListResponse.json
index 84dae079..27c58b9b 100644
--- a/source/json_tables/indexer/injective_oracle_rpc/OracleListResponse.json
+++ b/source/json_tables/indexer/injective_oracle_rpc/OracleListResponse.json
@@ -2,6 +2,11 @@
{
"Parameter": "oracles",
"Type": "Oracle array",
- "Description": ""
+ "Description": "List of oracles"
+ },
+ {
+ "Parameter": "next",
+ "Type": "string array",
+ "Description": "Next tokens for pagination"
}
]
diff --git a/source/json_tables/indexer/injective_portfolio_rpc/DerivativePosition.json b/source/json_tables/indexer/injective_portfolio_rpc/DerivativePosition.json
index 0433f3f8..70ec44de 100644
--- a/source/json_tables/indexer/injective_portfolio_rpc/DerivativePosition.json
+++ b/source/json_tables/indexer/injective_portfolio_rpc/DerivativePosition.json
@@ -68,5 +68,15 @@
"Parameter": "funding_sum",
"Type": "string",
"Description": "Net funding fees since position opened"
+ },
+ {
+ "Parameter": "cumulative_funding_entry",
+ "Type": "string",
+ "Description": "Cumulative funding entry of the position"
+ },
+ {
+ "Parameter": "effective_cumulative_funding_entry",
+ "Type": "string",
+ "Description": "Effective cumulative funding entry of the position"
}
]
diff --git a/source/json_tables/indexer/injective_rfqrpc/CreateRFQRequestType.json b/source/json_tables/indexer/injective_rfqrpc/CreateRFQRequestType.json
new file mode 100644
index 00000000..f9d9c054
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/CreateRFQRequestType.json
@@ -0,0 +1,62 @@
+[
+ {
+ "Parameter": "rfq_id",
+ "Type": "uint64",
+ "Description": "RFQ ID"
+ },
+ {
+ "Parameter": "market_id",
+ "Type": "string",
+ "Description": "Market ID"
+ },
+ {
+ "Parameter": "direction",
+ "Type": "string",
+ "Description": "Direction (long/short)"
+ },
+ {
+ "Parameter": "margin",
+ "Type": "string",
+ "Description": "Margin amount"
+ },
+ {
+ "Parameter": "quantity",
+ "Type": "string",
+ "Description": "Quantity"
+ },
+ {
+ "Parameter": "worst_price",
+ "Type": "string",
+ "Description": "Worst acceptable price"
+ },
+ {
+ "Parameter": "expiry",
+ "Type": "uint64",
+ "Description": "Expiry timestamp"
+ },
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status (open, cancelled, completed)"
+ },
+ {
+ "Parameter": "created_at",
+ "Type": "int64",
+ "Description": "Creation timestamp"
+ },
+ {
+ "Parameter": "updated_at",
+ "Type": "int64",
+ "Description": "Last update timestamp"
+ },
+ {
+ "Parameter": "transaction_time",
+ "Type": "uint64",
+ "Description": "Transaction time timestamp"
+ },
+ {
+ "Parameter": "height",
+ "Type": "uint64",
+ "Description": "Block height"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/GetOpenRequestsResponse.json b/source/json_tables/indexer/injective_rfqrpc/GetOpenRequestsResponse.json
new file mode 100644
index 00000000..c9ba1bd3
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/GetOpenRequestsResponse.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "requests",
+ "Type": "RFQRequestType array",
+ "Description": "List of open requests"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/GetPendingQuotesResponse.json b/source/json_tables/indexer/injective_rfqrpc/GetPendingQuotesResponse.json
new file mode 100644
index 00000000..a53c5217
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/GetPendingQuotesResponse.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "quotes",
+ "Type": "RFQQuoteType array",
+ "Description": "List of pending quotes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/ListSettlementRequest.json b/source/json_tables/indexer/injective_rfqrpc/ListSettlementRequest.json
new file mode 100644
index 00000000..ba7e461e
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/ListSettlementRequest.json
@@ -0,0 +1,20 @@
+[
+ {
+ "Parameter": "addresses",
+ "Type": "string array",
+ "Description": "Filter by taker addresses",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "skip",
+ "Type": "int64",
+ "Description": "Skip records for pagination",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "limit",
+ "Type": "int64",
+ "Description": "Limit records for pagination",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/ListSettlementResponse.json b/source/json_tables/indexer/injective_rfqrpc/ListSettlementResponse.json
new file mode 100644
index 00000000..19fa9f02
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/ListSettlementResponse.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "settlements",
+ "Type": "RFQSettlementType array",
+ "Description": "List of RFQ settlements"
+ },
+ {
+ "Parameter": "total",
+ "Type": "int64",
+ "Description": "Total count of records"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/MakerStreamResponse.json b/source/json_tables/indexer/injective_rfqrpc/MakerStreamResponse.json
new file mode 100644
index 00000000..b34bc253
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/MakerStreamResponse.json
@@ -0,0 +1,22 @@
+[
+ {
+ "Parameter": "message_type",
+ "Type": "string",
+ "Description": "Type: 'request', 'quote_ack', 'error', 'pong'"
+ },
+ {
+ "Parameter": "request",
+ "Type": "RFQRequestType",
+ "Description": "RFQ request from taker"
+ },
+ {
+ "Parameter": "quote_ack",
+ "Type": "StreamAck",
+ "Description": "Acknowledgment for quote submission"
+ },
+ {
+ "Parameter": "error",
+ "Type": "StreamError",
+ "Description": "Error message"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/MakerStreamStreamingRequest.json b/source/json_tables/indexer/injective_rfqrpc/MakerStreamStreamingRequest.json
new file mode 100644
index 00000000..8585999d
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/MakerStreamStreamingRequest.json
@@ -0,0 +1,14 @@
+[
+ {
+ "Parameter": "message_type",
+ "Type": "string",
+ "Description": "Type: 'quote', 'ping'",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "quote",
+ "Type": "RFQQuoteType",
+ "Description": "Quote to submit",
+ "Required": "No"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/QuoteRequest.json b/source/json_tables/indexer/injective_rfqrpc/QuoteRequest.json
new file mode 100644
index 00000000..702ee0ee
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/QuoteRequest.json
@@ -0,0 +1,8 @@
+[
+ {
+ "Parameter": "quote",
+ "Type": "RFQQuoteType",
+ "Description": "RFQ quote to create",
+ "Required": "No"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/QuoteResponse.json b/source/json_tables/indexer/injective_rfqrpc/QuoteResponse.json
new file mode 100644
index 00000000..75bc6675
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/QuoteResponse.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status of the operation"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RFQQuoteType.json b/source/json_tables/indexer/injective_rfqrpc/RFQQuoteType.json
new file mode 100644
index 00000000..14f12306
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RFQQuoteType.json
@@ -0,0 +1,92 @@
+[
+ {
+ "Parameter": "chain_id",
+ "Type": "string",
+ "Description": "Chain ID"
+ },
+ {
+ "Parameter": "contract_address",
+ "Type": "string",
+ "Description": "Contract address"
+ },
+ {
+ "Parameter": "market_id",
+ "Type": "string",
+ "Description": "Market ID"
+ },
+ {
+ "Parameter": "rfq_id",
+ "Type": "uint64",
+ "Description": "RFQ ID"
+ },
+ {
+ "Parameter": "taker_direction",
+ "Type": "string",
+ "Description": "Taker direction (long/short)"
+ },
+ {
+ "Parameter": "margin",
+ "Type": "string",
+ "Description": "Margin amount"
+ },
+ {
+ "Parameter": "quantity",
+ "Type": "string",
+ "Description": "Quantity"
+ },
+ {
+ "Parameter": "price",
+ "Type": "string",
+ "Description": "Price"
+ },
+ {
+ "Parameter": "expiry",
+ "Type": "uint64",
+ "Description": "Expiry timestamp"
+ },
+ {
+ "Parameter": "maker",
+ "Type": "string",
+ "Description": "Maker address"
+ },
+ {
+ "Parameter": "taker",
+ "Type": "string",
+ "Description": "Taker address"
+ },
+ {
+ "Parameter": "signature",
+ "Type": "string",
+ "Description": "Signature"
+ },
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status (pending, accepted, rejected, expired)"
+ },
+ {
+ "Parameter": "created_at",
+ "Type": "int64",
+ "Description": "Creation timestamp"
+ },
+ {
+ "Parameter": "updated_at",
+ "Type": "int64",
+ "Description": "Last update timestamp"
+ },
+ {
+ "Parameter": "height",
+ "Type": "uint64",
+ "Description": "Block height"
+ },
+ {
+ "Parameter": "event_time",
+ "Type": "uint64",
+ "Description": "Event time timestamp"
+ },
+ {
+ "Parameter": "transaction_time",
+ "Type": "uint64",
+ "Description": "Transaction time timestamp"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RFQRequestType.json b/source/json_tables/indexer/injective_rfqrpc/RFQRequestType.json
new file mode 100644
index 00000000..64a5b84d
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RFQRequestType.json
@@ -0,0 +1,67 @@
+[
+ {
+ "Parameter": "rfq_id",
+ "Type": "uint64",
+ "Description": "RFQ ID"
+ },
+ {
+ "Parameter": "market_id",
+ "Type": "string",
+ "Description": "Market ID"
+ },
+ {
+ "Parameter": "direction",
+ "Type": "string",
+ "Description": "Direction (long/short)"
+ },
+ {
+ "Parameter": "margin",
+ "Type": "string",
+ "Description": "Margin amount"
+ },
+ {
+ "Parameter": "quantity",
+ "Type": "string",
+ "Description": "Quantity"
+ },
+ {
+ "Parameter": "worst_price",
+ "Type": "string",
+ "Description": "Worst acceptable price"
+ },
+ {
+ "Parameter": "request_address",
+ "Type": "string",
+ "Description": "Requester address"
+ },
+ {
+ "Parameter": "expiry",
+ "Type": "uint64",
+ "Description": "Expiry timestamp"
+ },
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status (open, cancelled, completed)"
+ },
+ {
+ "Parameter": "created_at",
+ "Type": "int64",
+ "Description": "Creation timestamp"
+ },
+ {
+ "Parameter": "updated_at",
+ "Type": "int64",
+ "Description": "Last update timestamp"
+ },
+ {
+ "Parameter": "transaction_time",
+ "Type": "uint64",
+ "Description": "Transaction time timestamp"
+ },
+ {
+ "Parameter": "height",
+ "Type": "uint64",
+ "Description": "Block height"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RFQSettlementLimitActionType.json b/source/json_tables/indexer/injective_rfqrpc/RFQSettlementLimitActionType.json
new file mode 100644
index 00000000..c7a0185d
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RFQSettlementLimitActionType.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "price",
+ "Type": "string",
+ "Description": "Limit price"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RFQSettlementType.json b/source/json_tables/indexer/injective_rfqrpc/RFQSettlementType.json
new file mode 100644
index 00000000..e8776189
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RFQSettlementType.json
@@ -0,0 +1,77 @@
+[
+ {
+ "Parameter": "rfq_id",
+ "Type": "uint64",
+ "Description": "RFQ ID"
+ },
+ {
+ "Parameter": "market_id",
+ "Type": "string",
+ "Description": "Market ID"
+ },
+ {
+ "Parameter": "taker",
+ "Type": "string",
+ "Description": "Taker address"
+ },
+ {
+ "Parameter": "direction",
+ "Type": "string",
+ "Description": "Direction (long/short)"
+ },
+ {
+ "Parameter": "margin",
+ "Type": "string",
+ "Description": "Margin amount"
+ },
+ {
+ "Parameter": "quantity",
+ "Type": "string",
+ "Description": "Quantity"
+ },
+ {
+ "Parameter": "worst_price",
+ "Type": "string",
+ "Description": "Worst acceptable price"
+ },
+ {
+ "Parameter": "unfilled_action",
+ "Type": "RFQSettlementUnfilledActionType",
+ "Description": "Unfilled action details"
+ },
+ {
+ "Parameter": "fallback_quantity",
+ "Type": "string",
+ "Description": "Fallback quantity"
+ },
+ {
+ "Parameter": "fallback_margin",
+ "Type": "string",
+ "Description": "Fallback margin"
+ },
+ {
+ "Parameter": "transaction_time",
+ "Type": "uint64",
+ "Description": "Transaction time timestamp"
+ },
+ {
+ "Parameter": "created_at",
+ "Type": "int64",
+ "Description": "Creation timestamp"
+ },
+ {
+ "Parameter": "updated_at",
+ "Type": "int64",
+ "Description": "Last update timestamp"
+ },
+ {
+ "Parameter": "event_time",
+ "Type": "uint64",
+ "Description": "Event time timestamp"
+ },
+ {
+ "Parameter": "height",
+ "Type": "uint64",
+ "Description": "Block height"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RFQSettlementUnfilledActionType.json b/source/json_tables/indexer/injective_rfqrpc/RFQSettlementUnfilledActionType.json
new file mode 100644
index 00000000..fe268ab2
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RFQSettlementUnfilledActionType.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "limit",
+ "Type": "RFQSettlementLimitActionType",
+ "Description": "Limit order action"
+ },
+ {
+ "Parameter": "market",
+ "Type": "RFQSettlementMarketActionType",
+ "Description": "Market order action"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RequestRequest.json b/source/json_tables/indexer/injective_rfqrpc/RequestRequest.json
new file mode 100644
index 00000000..5c32fada
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RequestRequest.json
@@ -0,0 +1,8 @@
+[
+ {
+ "Parameter": "request",
+ "Type": "RFQRequestType",
+ "Description": "RFQ request to create",
+ "Required": "No"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/RequestResponse.json b/source/json_tables/indexer/injective_rfqrpc/RequestResponse.json
new file mode 100644
index 00000000..75bc6675
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/RequestResponse.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status of the operation"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamAck.json b/source/json_tables/indexer/injective_rfqrpc/StreamAck.json
new file mode 100644
index 00000000..55167fc0
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamAck.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "rfq_id",
+ "Type": "uint64",
+ "Description": "RFQ ID"
+ },
+ {
+ "Parameter": "status",
+ "Type": "string",
+ "Description": "Status of the operation"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamError.json b/source/json_tables/indexer/injective_rfqrpc/StreamError.json
new file mode 100644
index 00000000..837a7abb
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamError.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "code",
+ "Type": "string",
+ "Description": "Error code"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamQuoteRequest.json b/source/json_tables/indexer/injective_rfqrpc/StreamQuoteRequest.json
new file mode 100644
index 00000000..ca69a6ba
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamQuoteRequest.json
@@ -0,0 +1,8 @@
+[
+ {
+ "Parameter": "addresses",
+ "Type": "string array",
+ "Description": "Filter by addresses",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamQuoteResponse.json b/source/json_tables/indexer/injective_rfqrpc/StreamQuoteResponse.json
new file mode 100644
index 00000000..bd993dc9
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamQuoteResponse.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "quote",
+ "Type": "RFQQuoteType",
+ "Description": "RFQ quote update"
+ },
+ {
+ "Parameter": "stream_operation",
+ "Type": "string",
+ "Description": "Operation type (insert, update, delete)"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamRequestRequest.json b/source/json_tables/indexer/injective_rfqrpc/StreamRequestRequest.json
new file mode 100644
index 00000000..9eceb098
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamRequestRequest.json
@@ -0,0 +1,8 @@
+[
+ {
+ "Parameter": "market_ids",
+ "Type": "string array",
+ "Description": "Filter by market IDs",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamRequestResponse.json b/source/json_tables/indexer/injective_rfqrpc/StreamRequestResponse.json
new file mode 100644
index 00000000..5a2f9938
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamRequestResponse.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "request",
+ "Type": "RFQRequestType",
+ "Description": "RFQ request update"
+ },
+ {
+ "Parameter": "stream_operation",
+ "Type": "string",
+ "Description": "Operation type (insert, update, delete)"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamSettlementRequest.json b/source/json_tables/indexer/injective_rfqrpc/StreamSettlementRequest.json
new file mode 100644
index 00000000..ca69a6ba
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamSettlementRequest.json
@@ -0,0 +1,8 @@
+[
+ {
+ "Parameter": "addresses",
+ "Type": "string array",
+ "Description": "Filter by addresses",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/StreamSettlementResponse.json b/source/json_tables/indexer/injective_rfqrpc/StreamSettlementResponse.json
new file mode 100644
index 00000000..73325433
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/StreamSettlementResponse.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "settlement",
+ "Type": "RFQSettlementType",
+ "Description": "RFQ settlement update"
+ },
+ {
+ "Parameter": "stream_operation",
+ "Type": "string",
+ "Description": "Operation type (insert, update, delete)"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/TakerStreamResponse.json b/source/json_tables/indexer/injective_rfqrpc/TakerStreamResponse.json
new file mode 100644
index 00000000..54a54673
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/TakerStreamResponse.json
@@ -0,0 +1,22 @@
+[
+ {
+ "Parameter": "message_type",
+ "Type": "string",
+ "Description": "Type: 'quote', 'request_ack', 'error', 'pong'"
+ },
+ {
+ "Parameter": "quote",
+ "Type": "RFQQuoteType",
+ "Description": "Quote from market maker"
+ },
+ {
+ "Parameter": "request_ack",
+ "Type": "StreamAck",
+ "Description": "Acknowledgment for request creation"
+ },
+ {
+ "Parameter": "error",
+ "Type": "StreamError",
+ "Description": "Error message"
+ }
+]
diff --git a/source/json_tables/indexer/injective_rfqrpc/TakerStreamStreamingRequest.json b/source/json_tables/indexer/injective_rfqrpc/TakerStreamStreamingRequest.json
new file mode 100644
index 00000000..c7e3f913
--- /dev/null
+++ b/source/json_tables/indexer/injective_rfqrpc/TakerStreamStreamingRequest.json
@@ -0,0 +1,14 @@
+[
+ {
+ "Parameter": "message_type",
+ "Type": "string",
+ "Description": "Type: 'request', 'ping'",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "request",
+ "Type": "CreateRFQRequestType",
+ "Description": "RFQ request to create",
+ "Required": "No"
+ }
+]
diff --git a/source/json_tables/injective/evm/MsgEthereumTxResponse.json b/source/json_tables/injective/evm/MsgEthereumTxResponse.json
index 0e98fa95..01ea1b4d 100644
--- a/source/json_tables/injective/evm/MsgEthereumTxResponse.json
+++ b/source/json_tables/injective/evm/MsgEthereumTxResponse.json
@@ -28,5 +28,10 @@
"Parameter": "block_hash",
"Type": "byte array",
"Description": "include the block hash for json-rpc to use"
+ },
+ {
+ "Parameter": "execution_gas_used",
+ "Type": "uint64",
+ "Description": "execution_gas_used specifies the actual gas consumed during EVM execution. This is used for accurate gas estimation."
}
]
diff --git a/source/json_tables/injective/exchange/v1beta1/ExecutionType.json b/source/json_tables/injective/exchange/v1beta1/ExecutionType.json
index 59644573..69116c5a 100644
--- a/source/json_tables/injective/exchange/v1beta1/ExecutionType.json
+++ b/source/json_tables/injective/exchange/v1beta1/ExecutionType.json
@@ -26,5 +26,13 @@
{
"Code": "6",
"Name": "ExpiryMarketSettlement"
+ },
+ {
+ "Code": "7",
+ "Name": "OffsettingPosition"
+ },
+ {
+ "Code": "8",
+ "Name": "Synthetic"
}
]
diff --git a/source/json_tables/injective/exchange/v2/BinaryOptionsMarket.json b/source/json_tables/injective/exchange/v2/BinaryOptionsMarket.json
index 1a33d873..8908c180 100644
--- a/source/json_tables/injective/exchange/v2/BinaryOptionsMarket.json
+++ b/source/json_tables/injective/exchange/v2/BinaryOptionsMarket.json
@@ -103,5 +103,15 @@
"Parameter": "open_notional_cap",
"Type": "OpenNotionalCap",
"Description": "open_notional_cap defines the maximum open notional for the market"
+ },
+ {
+ "Parameter": "has_disabled_minimal_protocol_fee",
+ "Type": "bool",
+ "Description": "has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market"
+ },
+ {
+ "Parameter": "force_paused_info",
+ "Type": "ForcePausedInfo",
+ "Description": "force_paused_info defines additional info for force paused markets, only set when status == ForcePaused"
}
]
diff --git a/source/json_tables/injective/exchange/v2/BinaryOptionsMarketParamUpdateProposal.json b/source/json_tables/injective/exchange/v2/BinaryOptionsMarketParamUpdateProposal.json
index 428aed18..68896b3b 100644
--- a/source/json_tables/injective/exchange/v2/BinaryOptionsMarketParamUpdateProposal.json
+++ b/source/json_tables/injective/exchange/v2/BinaryOptionsMarketParamUpdateProposal.json
@@ -83,5 +83,10 @@
"Parameter": "open_notional_cap",
"Type": "OpenNotionalCap",
"Description": "open_notional_cap defines the maximum open notional for the market"
+ },
+ {
+ "Parameter": "has_disabled_minimal_protocol_fee",
+ "Type": "DisableMinimalProtocolFeeUpdate",
+ "Description": "has_disabled_minimal_protocol_fee defines whether the minimal protocol fee is disabled for the market"
}
]
diff --git a/source/json_tables/injective/exchange/v2/DerivativeMarket.json b/source/json_tables/injective/exchange/v2/DerivativeMarket.json
index 4faac92f..8479e267 100644
--- a/source/json_tables/injective/exchange/v2/DerivativeMarket.json
+++ b/source/json_tables/injective/exchange/v2/DerivativeMarket.json
@@ -108,5 +108,15 @@
"Parameter": "open_notional_cap",
"Type": "OpenNotionalCap",
"Description": "open_notional_cap defines the maximum open notional for the market"
+ },
+ {
+ "Parameter": "has_disabled_minimal_protocol_fee",
+ "Type": "bool",
+ "Description": "has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market"
+ },
+ {
+ "Parameter": "force_paused_info",
+ "Type": "ForcePausedInfo",
+ "Description": "force_paused_info defines additional info for force paused markets, only set when status == ForcePaused"
}
]
diff --git a/source/json_tables/injective/exchange/v2/DerivativeMarketParamUpdateProposal.json b/source/json_tables/injective/exchange/v2/DerivativeMarketParamUpdateProposal.json
index 384a7a21..aa66e1de 100644
--- a/source/json_tables/injective/exchange/v2/DerivativeMarketParamUpdateProposal.json
+++ b/source/json_tables/injective/exchange/v2/DerivativeMarketParamUpdateProposal.json
@@ -93,5 +93,10 @@
"Parameter": "open_notional_cap",
"Type": "OpenNotionalCap",
"Description": "open_notional_cap defines the maximum open notional for the market"
+ },
+ {
+ "Parameter": "has_disabled_minimal_protocol_fee",
+ "Type": "DisableMinimalProtocolFeeUpdate",
+ "Description": "has_disabled_minimal_protocol_fee defines whether the minimal protocol fee is disabled for the market"
}
]
diff --git a/source/json_tables/injective/exchange/v2/DisableMinimalProtocolFeeUpdate.json b/source/json_tables/injective/exchange/v2/DisableMinimalProtocolFeeUpdate.json
new file mode 100644
index 00000000..4a33355c
--- /dev/null
+++ b/source/json_tables/injective/exchange/v2/DisableMinimalProtocolFeeUpdate.json
@@ -0,0 +1,14 @@
+[
+ {
+ "Code": "0",
+ "Name": "NoUpdate"
+ },
+ {
+ "Code": "1",
+ "Name": "False"
+ },
+ {
+ "Code": "2",
+ "Name": "True"
+ }
+]
diff --git a/source/json_tables/injective/exchange/v2/EnforcedRestrictionsContract.json b/source/json_tables/injective/exchange/v2/EnforcedRestrictionsContract.json
new file mode 100644
index 00000000..dae4d2c6
--- /dev/null
+++ b/source/json_tables/injective/exchange/v2/EnforcedRestrictionsContract.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "contract_address",
+ "Type": "string",
+ "Description": "EVM address of the contract"
+ },
+ {
+ "Parameter": "pause_event_signature",
+ "Type": "string",
+ "Description": "Pause event signature for the contract (e.g. \"Pause()\", or \"Pause(address)\"). If left empty, it will default to \"Pause()\"."
+ }
+]
diff --git a/source/json_tables/injective/exchange/v2/ExecutionType.json b/source/json_tables/injective/exchange/v2/ExecutionType.json
index 2bbae26f..69116c5a 100644
--- a/source/json_tables/injective/exchange/v2/ExecutionType.json
+++ b/source/json_tables/injective/exchange/v2/ExecutionType.json
@@ -30,5 +30,9 @@
{
"Code": "7",
"Name": "OffsettingPosition"
+ },
+ {
+ "Code": "8",
+ "Name": "Synthetic"
}
]
diff --git a/source/json_tables/injective/exchange/v2/ExpiryFuturesMarketInfo.json b/source/json_tables/injective/exchange/v2/ExpiryFuturesMarketInfo.json
index 1606a03b..38b7c707 100644
--- a/source/json_tables/injective/exchange/v2/ExpiryFuturesMarketInfo.json
+++ b/source/json_tables/injective/exchange/v2/ExpiryFuturesMarketInfo.json
@@ -17,11 +17,21 @@
{
"Parameter": "expiration_twap_start_price_cumulative",
"Type": "cosmossdk_io_math.LegacyDec",
- "Description": "expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format)"
+ "Description": "expiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format) Deprecated: For correctly calculating the expiration price using TWAP, we need to keep the cumulative price at the start of TWAP calculation separately for the base asset and the quote asset. Use expiration_twap_start_base_cumulative_price and expiration_twap_start_quote_cumulative_price instead."
},
{
"Parameter": "settlement_price",
"Type": "cosmossdk_io_math.LegacyDec",
"Description": "settlement_price defines the settlement price for a time expiry futures market (in human readable format)"
+ },
+ {
+ "Parameter": "expiration_twap_start_base_cumulative_price",
+ "Type": "cosmossdk_io_math.LegacyDec",
+ "Description": "expiration_twap_start_base_cumulative_price defines the cumulative price for the base asset at the start of the TWAP calculation window (in human readable format)"
+ },
+ {
+ "Parameter": "expiration_twap_start_quote_cumulative_price",
+ "Type": "cosmossdk_io_math.LegacyDec",
+ "Description": "expiration_twap_start_quote_cumulative_price defines the cumulative price for the quote asset at the start of the TWAP calculation window (in human readable format)"
}
]
diff --git a/source/json_tables/injective/exchange/v2/ForcePausedInfo.json b/source/json_tables/injective/exchange/v2/ForcePausedInfo.json
new file mode 100644
index 00000000..d698bbca
--- /dev/null
+++ b/source/json_tables/injective/exchange/v2/ForcePausedInfo.json
@@ -0,0 +1,12 @@
+[
+ {
+ "Parameter": "reason",
+ "Type": "ForcePausedReason",
+ "Description": ""
+ },
+ {
+ "Parameter": "mark_price_at_pausing",
+ "Type": "cosmossdk_io_math.LegacyDec",
+ "Description": ""
+ }
+]
diff --git a/source/json_tables/injective/exchange/v2/ForcePausedReason.json b/source/json_tables/injective/exchange/v2/ForcePausedReason.json
new file mode 100644
index 00000000..2ac16f22
--- /dev/null
+++ b/source/json_tables/injective/exchange/v2/ForcePausedReason.json
@@ -0,0 +1,6 @@
+[
+ {
+ "Code": "0",
+ "Name": "QuoteDenomPaused"
+ }
+]
diff --git a/source/json_tables/injective/exchange/v2/MarketStatus.json b/source/json_tables/injective/exchange/v2/MarketStatus.json
index 2cf70b03..8d3acf0e 100644
--- a/source/json_tables/injective/exchange/v2/MarketStatus.json
+++ b/source/json_tables/injective/exchange/v2/MarketStatus.json
@@ -18,5 +18,9 @@
{
"Code": "4",
"Name": "Expired"
+ },
+ {
+ "Code": "5",
+ "Name": "ForcePaused"
}
]
diff --git a/source/json_tables/injective/exchange/v2/MsgActivatePostOnlyMode.json b/source/json_tables/injective/exchange/v2/MsgActivatePostOnlyMode.json
new file mode 100644
index 00000000..c9c69364
--- /dev/null
+++ b/source/json_tables/injective/exchange/v2/MsgActivatePostOnlyMode.json
@@ -0,0 +1,14 @@
+[
+ {
+ "Parameter": "sender",
+ "Type": "string",
+ "Description": "the sender's Injective address",
+ "Required": "Yes"
+ },
+ {
+ "Parameter": "blocks_amount",
+ "Type": "uint32",
+ "Description": "the number of blocks to activate post-only mode for",
+ "Required": "Yes"
+ }
+]
diff --git a/source/json_tables/injective/exchange/v2/Params.json b/source/json_tables/injective/exchange/v2/Params.json
index 3337b16e..18ac844e 100644
--- a/source/json_tables/injective/exchange/v2/Params.json
+++ b/source/json_tables/injective/exchange/v2/Params.json
@@ -168,5 +168,10 @@
"Parameter": "post_only_mode_blocks_amount_after_downtime",
"Type": "uint64",
"Description": "post_only_mode_blocks_amount defines the amount of blocks the post only mode will be enabled after the downtime-detector module detects a chain downtime"
+ },
+ {
+ "Parameter": "enforced_restrictions_contracts",
+ "Type": "EnforcedRestrictionsContract array",
+ "Description": "Contracts that exchange will be listening to pause markets denominated in respective erc20: denoms, with their pause event signatures"
}
]
diff --git a/source/json_tables/injective/exchange/v2/SpotMarket.json b/source/json_tables/injective/exchange/v2/SpotMarket.json
index 5a86d694..00606455 100644
--- a/source/json_tables/injective/exchange/v2/SpotMarket.json
+++ b/source/json_tables/injective/exchange/v2/SpotMarket.json
@@ -73,5 +73,10 @@
"Parameter": "quote_decimals",
"Type": "uint32",
"Description": "quote token decimals"
+ },
+ {
+ "Parameter": "has_disabled_minimal_protocol_fee",
+ "Type": "bool",
+ "Description": "has_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market"
}
]
diff --git a/source/json_tables/injective/exchange/v2/SpotMarketParamUpdateProposal.json b/source/json_tables/injective/exchange/v2/SpotMarketParamUpdateProposal.json
index df7d58b3..98ee631a 100644
--- a/source/json_tables/injective/exchange/v2/SpotMarketParamUpdateProposal.json
+++ b/source/json_tables/injective/exchange/v2/SpotMarketParamUpdateProposal.json
@@ -68,5 +68,10 @@
"Parameter": "quote_decimals",
"Type": "uint32",
"Description": "quote token decimals"
+ },
+ {
+ "Parameter": "has_disabled_minimal_protocol_fee",
+ "Type": "DisableMinimalProtocolFeeUpdate",
+ "Description": "has_disabled_minimal_protocol_fee defines whether the minimal protocol fee is disabled for the market"
}
]
diff --git a/source/json_tables/injective/oracle/ChainlinkDataStreamsPriceState.json b/source/json_tables/injective/oracle/ChainlinkDataStreamsPriceState.json
new file mode 100644
index 00000000..b60b9ee4
--- /dev/null
+++ b/source/json_tables/injective/oracle/ChainlinkDataStreamsPriceState.json
@@ -0,0 +1,27 @@
+[
+ {
+ "Parameter": "feed_id",
+ "Type": "string",
+ "Description": ""
+ },
+ {
+ "Parameter": "report_price",
+ "Type": "cosmossdk_io_math.Int",
+ "Description": ""
+ },
+ {
+ "Parameter": "valid_from_timestamp",
+ "Type": "uint64",
+ "Description": ""
+ },
+ {
+ "Parameter": "observations_timestamp",
+ "Type": "uint64",
+ "Description": ""
+ },
+ {
+ "Parameter": "price_state",
+ "Type": "PriceState",
+ "Description": ""
+ }
+]
diff --git a/source/json_tables/injective/oracle/ChainlinkReport.json b/source/json_tables/injective/oracle/ChainlinkReport.json
new file mode 100644
index 00000000..3e5e53d0
--- /dev/null
+++ b/source/json_tables/injective/oracle/ChainlinkReport.json
@@ -0,0 +1,22 @@
+[
+ {
+ "Parameter": "feed_id",
+ "Type": "byte array",
+ "Description": ""
+ },
+ {
+ "Parameter": "full_report",
+ "Type": "byte array",
+ "Description": ""
+ },
+ {
+ "Parameter": "valid_from_timestamp",
+ "Type": "uint64",
+ "Description": ""
+ },
+ {
+ "Parameter": "observations_timestamp",
+ "Type": "uint64",
+ "Description": ""
+ }
+]
diff --git a/source/json_tables/injective/oracle/GenesisState.json b/source/json_tables/injective/oracle/GenesisState.json
index d9fce23d..4fb4b71e 100644
--- a/source/json_tables/injective/oracle/GenesisState.json
+++ b/source/json_tables/injective/oracle/GenesisState.json
@@ -83,5 +83,10 @@
"Parameter": "stork_publishers",
"Type": "string array",
"Description": ""
+ },
+ {
+ "Parameter": "chainlink_data_streams_price_states",
+ "Type": "ChainlinkDataStreamsPriceState array",
+ "Description": ""
}
]
diff --git a/source/json_tables/injective/oracle/MsgRelayBandRates.json b/source/json_tables/injective/oracle/MsgRelayBandRates.json
deleted file mode 100644
index 00d28af8..00000000
--- a/source/json_tables/injective/oracle/MsgRelayBandRates.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
- "Parameter": "relayer",
- "Type": "string",
- "Description": "",
- "Required": "Yes"
- },
- {
- "Parameter": "symbols",
- "Type": "string array",
- "Description": "",
- "Required": "Yes"
- },
- {
- "Parameter": "rates",
- "Type": "uint64 array",
- "Description": "",
- "Required": "Yes"
- },
- {
- "Parameter": "resolve_times",
- "Type": "uint64 array",
- "Description": "",
- "Required": "Yes"
- },
- {
- "Parameter": "requestIDs",
- "Type": "uint64 array",
- "Description": "",
- "Required": "Yes"
- }
-]
diff --git a/source/json_tables/injective/oracle/MsgRequestBandIBCRates.json b/source/json_tables/injective/oracle/MsgRelayChainlinkPrices.json
similarity index 61%
rename from source/json_tables/injective/oracle/MsgRequestBandIBCRates.json
rename to source/json_tables/injective/oracle/MsgRelayChainlinkPrices.json
index c6c39050..eb0e8aa3 100644
--- a/source/json_tables/injective/oracle/MsgRequestBandIBCRates.json
+++ b/source/json_tables/injective/oracle/MsgRelayChainlinkPrices.json
@@ -6,9 +6,9 @@
"Required": "Yes"
},
{
- "Parameter": "request_id",
- "Type": "uint64",
+ "Parameter": "reports",
+ "Type": "ChainlinkReport array",
"Description": "",
- "Required": "Yes"
+ "Required": "No"
}
]
diff --git a/source/json_tables/injective/oracle/Params.json b/source/json_tables/injective/oracle/Params.json
index 45d99138..c9d76e2d 100644
--- a/source/json_tables/injective/oracle/Params.json
+++ b/source/json_tables/injective/oracle/Params.json
@@ -3,5 +3,20 @@
"Parameter": "pyth_contract",
"Type": "string",
"Description": ""
+ },
+ {
+ "Parameter": "chainlink_verifier_proxy_contract",
+ "Type": "string",
+ "Description": ""
+ },
+ {
+ "Parameter": "accept_unverified_chainlink_data_streams_reports",
+ "Type": "bool",
+ "Description": ""
+ },
+ {
+ "Parameter": "chainlink_data_streams_verification_gas_limit",
+ "Type": "uint64",
+ "Description": ""
}
]
diff --git a/source/json_tables/injective/oracle/QueryChainlinkDataStreamsPriceStatesResponse.json b/source/json_tables/injective/oracle/QueryChainlinkDataStreamsPriceStatesResponse.json
new file mode 100644
index 00000000..8fbe123e
--- /dev/null
+++ b/source/json_tables/injective/oracle/QueryChainlinkDataStreamsPriceStatesResponse.json
@@ -0,0 +1,7 @@
+[
+ {
+ "Parameter": "price_states",
+ "Type": "ChainlinkDataStreamsPriceState array",
+ "Description": ""
+ }
+]
diff --git a/source/json_tables/injective/oracle/v1beta1/OracleType.json b/source/json_tables/injective/oracle/v1beta1/OracleType.json
index 08121931..ccde2a87 100644
--- a/source/json_tables/injective/oracle/v1beta1/OracleType.json
+++ b/source/json_tables/injective/oracle/v1beta1/OracleType.json
@@ -50,5 +50,9 @@
{
"Code": "12",
"Name": "Stork"
+ },
+ {
+ "Code": "13",
+ "Name": "ChainlinkDataStreams"
}
]
diff --git a/source/json_tables/injective/permissions/MsgUpdateNamespace.json b/source/json_tables/injective/permissions/MsgUpdateNamespace.json
index d7fc72d5..0d64f591 100644
--- a/source/json_tables/injective/permissions/MsgUpdateNamespace.json
+++ b/source/json_tables/injective/permissions/MsgUpdateNamespace.json
@@ -12,9 +12,9 @@
"Required": "Yes"
},
{
- "Parameter": "contract_hook",
+ "Parameter": "wasm_hook",
"Type": "MsgUpdateNamespace_SetContractHook",
- "Description": "address of smart contract to apply code-based restrictions",
+ "Description": "address of wasm smart contract to apply code-based restrictions",
"Required": "No"
},
{
@@ -40,5 +40,11 @@
"Type": "PolicyManagerCapability array",
"Description": "policy manager capabilities to update",
"Required": "No"
+ },
+ {
+ "Parameter": "evm_hook",
+ "Type": "MsgUpdateNamespace_SetContractHook",
+ "Description": "address of EVM smart contract to apply code-based restrictions",
+ "Required": "No"
}
]
diff --git a/source/json_tables/injective/permissions/Namespace.json b/source/json_tables/injective/permissions/Namespace.json
index e4d91f84..4694fa73 100644
--- a/source/json_tables/injective/permissions/Namespace.json
+++ b/source/json_tables/injective/permissions/Namespace.json
@@ -5,9 +5,9 @@
"Description": "The tokenfactory denom to which this namespace applies to"
},
{
- "Parameter": "contract_hook",
+ "Parameter": "wasm_hook",
"Type": "string",
- "Description": "The address of smart contract to apply code-based restrictions"
+ "Description": "The address of cosmwasm contract to apply code-based restrictions"
},
{
"Parameter": "role_permissions",
@@ -33,5 +33,10 @@
"Parameter": "policy_manager_capabilities",
"Type": "PolicyManagerCapability array",
"Description": "capabilities for each manager for each policy"
+ },
+ {
+ "Parameter": "evm_hook",
+ "Type": "string",
+ "Description": "The address of the EVM contract to map code-based permissions"
}
]
diff --git a/source/json_tables/injective/permissions/Params.json b/source/json_tables/injective/permissions/Params.json
index 0d871bfd..546471b8 100644
--- a/source/json_tables/injective/permissions/Params.json
+++ b/source/json_tables/injective/permissions/Params.json
@@ -1,7 +1,12 @@
[
{
- "Parameter": "wasm_hook_query_max_gas",
+ "Parameter": "contract_hook_max_gas",
"Type": "uint64",
- "Description": "Max amount of gas allowed for wasm hook queries"
+ "Description": "Max amount of gas allowed for contract hook queries"
+ },
+ {
+ "Parameter": "enforced_restrictions_contracts",
+ "Type": "string array",
+ "Description": "EVM addresses of contracts that will not bypass module-to-module transfers"
}
]