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_notionalcosmossdk_io_math.LegacyDecmin_notional defines the minimum notional (in quote asset) required for orders in the market (in human readable format) admin_permissionsuint32level of admin permissions quote_decimalsuint32quote token decimals -open_notional_capOpenNotionalCapopen_notional_cap defines the maximum open notional for the market +open_notional_capOpenNotionalCapopen_notional_cap defines the maximum open notional for the market +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market +force_paused_infoForcePausedInfoforce_paused_info defines additional info for force paused markets, only set when status == ForcePaused
@@ -214,7 +216,8 @@ func main() { 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams
@@ -254,6 +257,23 @@ func main() {
ParameterTypeDescription
valuecosmossdk_io_math.LegacyDec
+
+ +**ForcePausedInfo** + + + +
ParameterTypeDescription
reasonForcePausedReason
mark_price_at_pausingcosmossdk_io_math.LegacyDec
+ + +
+ +**ForcePausedReason** + + +
CodeName
0QuoteDenomPaused
+ + ## MsgInstantBinaryOptionsMarketLaunch @@ -409,7 +429,8 @@ func main() { 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams
@@ -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__": 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused ### 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_permissionsuint32level of admin permissions quote_decimalsuint32quote token decimals reduce_margin_ratiocosmossdk_io_math.LegacyDecreduce_margin_ratio defines the ratio of the margin that is reduced -open_notional_capOpenNotionalCapopen_notional_cap defines the maximum open notional for the market +open_notional_capOpenNotionalCapopen_notional_cap defines the maximum open notional for the market +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market +force_paused_infoForcePausedInfoforce_paused_info defines additional info for force paused markets, only set when status == ForcePaused
@@ -1340,7 +1342,8 @@ func main() { 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams
@@ -1352,7 +1355,8 @@ func main() { 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused
@@ -1418,8 +1422,10 @@ func main() { - -
ParameterTypeDescription
market_idstringmarket ID.
expiration_timestampint64expiration_timestamp defines the expiration time for a time expiry futures market.
twap_start_timestampint64expiration_twap_start_timestamp defines the start time of the TWAP calculation window
expiration_twap_start_price_cumulativecosmossdk_io_math.LegacyDecexpiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format)
settlement_pricecosmossdk_io_math.LegacyDecsettlement_price defines the settlement price for a time expiry futures market (in human readable format)
+expiration_twap_start_price_cumulativecosmossdk_io_math.LegacyDecexpiration_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_pricecosmossdk_io_math.LegacyDecsettlement_price defines the settlement price for a time expiry futures market (in human readable format) +expiration_twap_start_base_cumulative_pricecosmossdk_io_math.LegacyDecexpiration_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_pricecosmossdk_io_math.LegacyDecexpiration_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() { 32Maintenance Margin Ratio Permission +
+ +**ForcePausedInfo** + + + +
ParameterTypeDescription
reasonForcePausedReason
mark_price_at_pausingcosmossdk_io_math.LegacyDec
+ + +
+ +**ForcePausedReason** + + +
CodeName
0QuoteDenomPaused
+ + ## DerivativeMarket @@ -1650,7 +1673,9 @@ func main() { admin_permissionsuint32level of admin permissions quote_decimalsuint32quote token decimals reduce_margin_ratiocosmossdk_io_math.LegacyDecreduce_margin_ratio defines the ratio of the margin that is reduced -open_notional_capOpenNotionalCapopen_notional_cap defines the maximum open notional for the market +open_notional_capOpenNotionalCapopen_notional_cap defines the maximum open notional for the market +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market +force_paused_infoForcePausedInfoforce_paused_info defines additional info for force paused markets, only set when status == ForcePaused
@@ -1670,7 +1695,8 @@ func main() { 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams
@@ -1682,7 +1708,8 @@ func main() { 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused
@@ -1748,8 +1775,10 @@ func main() { - -
ParameterTypeDescription
market_idstringmarket ID.
expiration_timestampint64expiration_timestamp defines the expiration time for a time expiry futures market.
twap_start_timestampint64expiration_twap_start_timestamp defines the start time of the TWAP calculation window
expiration_twap_start_price_cumulativecosmossdk_io_math.LegacyDecexpiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format)
settlement_pricecosmossdk_io_math.LegacyDecsettlement_price defines the settlement price for a time expiry futures market (in human readable format)
+expiration_twap_start_price_cumulativecosmossdk_io_math.LegacyDecexpiration_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_pricecosmossdk_io_math.LegacyDecsettlement_price defines the settlement price for a time expiry futures market (in human readable format) +expiration_twap_start_base_cumulative_pricecosmossdk_io_math.LegacyDecexpiration_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_pricecosmossdk_io_math.LegacyDecexpiration_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() { 32Maintenance Margin Ratio Permission +
+ +**ForcePausedInfo** + + + +
ParameterTypeDescription
reasonForcePausedReason
mark_price_at_pausingcosmossdk_io_math.LegacyDec
+ + +
+ +**ForcePausedReason** + + +
CodeName
0QuoteDenomPaused
+ + ## DerivativeMarketAddress @@ -3084,8 +3130,10 @@ func main() { - -
ParameterTypeDescription
market_idstringmarket ID.
expiration_timestampint64expiration_timestamp defines the expiration time for a time expiry futures market.
twap_start_timestampint64expiration_twap_start_timestamp defines the start time of the TWAP calculation window
expiration_twap_start_price_cumulativecosmossdk_io_math.LegacyDecexpiration_twap_start_price_cumulative defines the cumulative price for the start of the TWAP window (in human readable format)
settlement_pricecosmossdk_io_math.LegacyDecsettlement_price defines the settlement price for a time expiry futures market (in human readable format)
+expiration_twap_start_price_cumulativecosmossdk_io_math.LegacyDecexpiration_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_pricecosmossdk_io_math.LegacyDecsettlement_price defines the settlement price for a time expiry futures market (in human readable format) +expiration_twap_start_base_cumulative_pricecosmossdk_io_math.LegacyDecexpiration_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_pricecosmossdk_io_math.LegacyDecexpiration_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() { 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams
@@ -3941,7 +3990,8 @@ func main() { 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams
@@ -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_atint64Position updated timestamp in UNIX millis. denomstringMarket quote denom funding_laststringLast funding fees since position opened -funding_sumstringNet funding fees since position opened +funding_sumstringNet funding fees since position opened +cumulative_funding_entrystringCumulative funding entry of the position +effective_cumulative_funding_entrystringEffective cumulative funding entry of the position
@@ -2764,7 +2766,9 @@ func main() { updated_atint64Position updated timestamp in UNIX millis. denomstringMarket quote denom funding_laststringLast funding fees since position opened -funding_sumstringNet funding fees since position opened +funding_sumstringNet funding fees since position opened +cumulative_funding_entrystringCumulative funding entry of the position +effective_cumulative_funding_entrystringEffective cumulative funding entry of the position @@ -3081,7 +3085,9 @@ func main() { updated_atint64Position updated timestamp in UNIX millis. created_atint64Position created timestamp in UNIX millis. funding_laststringLast funding fees since position opened -funding_sumstringNet funding fees since position opened +funding_sumstringNet funding fees since position opened +cumulative_funding_entrystringCumulative funding entry of the position +effective_cumulative_funding_entrystringEffective 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 authz12max tokens should be positive -## Bandoracle module - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
module_nameerror_codedescription
bandoracle1owasm compilation failed
bandoracle2bad wasm execution
bandoracle3data source not found
bandoracle4oracle script not found
bandoracle5request not found
bandoracle6raw request not found
bandoracle7reporter not found
bandoracle8result not found
bandoracle9reporter already exists
bandoracle10validator not requested
bandoracle11validator already reported
bandoracle12invalid report size
bandoracle13reporter not authorized
bandoracle14editor not authorized
bandoracle16validator already active
bandoracle17too soon to activate
bandoracle18too long name
bandoracle19too long description
bandoracle20empty executable
bandoracle21empty wasm code
bandoracle22too large executable
bandoracle23too large wasm code
bandoracle24invalid min count
bandoracle25invalid ask count
bandoracle26too large calldata
bandoracle27too long client id
bandoracle28empty raw requests
bandoracle29empty report
bandoracle30duplicate external id
bandoracle31too long schema
bandoracle32too long url
bandoracle33too large raw report data
bandoracle34insufficient available validators
bandoracle35cannot create with [do-not-modify] content
bandoracle36cannot reference self as reporter
bandoracle37obi decode failed
bandoracle38uncompression failed
bandoracle39request already expired
bandoracle40bad drbg initialization
bandoracle41max oracle channels
bandoracle42invalid ICS20 version
bandoracle43not enough fee
bandoracle44invalid owasm gas
bandoracle45sending oracle request via IBC is disabled
bandoracle46invalid request key
bandoracle47too long request key
- - ## Bank module @@ -295,7 +244,8 @@ This section lists all error codes from various modules in the Injective ecosyst erc208error uploading ERC20 contract erc209invalid token factory denom erc2010respective erc20:... denom has existing supply -erc2011invalid query request +erc2011invalid query request +erc2012can't charge denom creation fee ## Evidence module @@ -447,7 +397,9 @@ This section lists all error codes from various modules in the Injective ecosyst exchange108v1 perpetual and expiry market launch proposal is not supported exchange109position not offsettable exchange110offsetting subaccount IDs cannot be empty -exchange111invalid open notional cap +exchange111invalid open notional cap +exchange112open notional cap breached +exchange113no valid offsetting positions found ## Feegrant module @@ -662,7 +614,9 @@ This section lists all error codes from various modules in the Injective ecosyst oracle40bad Stork message timestamp oracle41sender stork is empty oracle42invalid stork signature -oracle43stork asset id not unique +oracle43stork asset id not unique +oracle44chainlink report verification failed +oracle45Band 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 peggy12supply cannot exceed max ERC20 value peggy13invalid ethereum sender on claim peggy14invalid ethereum destination -peggy15missing previous claim for validator +peggy15missing previous claim for validator +peggy16eth address already in use +peggy17validator is unbonded ## Permissions module @@ -709,11 +665,13 @@ This section lists all error codes from various modules in the Injective ecosyst permissions9restricted action permissions10invalid role permissions11namespace for denom does not exist -permissions12wasm hook query error +permissions12contract hook query error permissions13voucher was not found -permissions14invalid contract hook +permissions14invalid wasm hook permissions15unknown policy -permissions16unauthorized policy change +permissions16unauthorized policy change +permissions17invalid evm hook +permissions18invalid 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__": 9Pyth 10BandIBC 11Provider -12Stork +12Stork +13ChainlinkDataStreams 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() { ``` + + + + +
ParameterTypeDescriptionRequired
symbolstringFilter by oracle symbolYes
oracle_typestringFilter by oracle typeYes
per_pageint32Number of results per pageYes
tokenstringPagination token from previous responseYes
+ + +
+ +**Coin** + + + +
ParameterTypeDescription
denomstring
amountcosmossdk_io_math.Int
+ + ### Response Parameters > Response Example: @@ -150,7 +169,8 @@ func main() { ``` -
ParameterTypeDescription
oraclesOracle array
+ +
ParameterTypeDescription
oraclesOracle arrayList of oracles
nextstring arrayNext 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 - + -
ParameterTypeDescription
denomstringThe tokenfactory denom to which this namespace applies to
contract_hookstringThe address of smart contract to apply code-based restrictions
wasm_hookstringThe address of cosmwasm contract to apply code-based restrictions
role_permissionsRole arraypermissions for each role
actor_rolesActorRoles arrayroles for each actor
role_managersRoleManager arraymanagers for each role
policy_statusesPolicyStatus arraystatus for each policy
policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy
+policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy +evm_hookstringThe address of the EVM contract to map code-based permissions
@@ -1095,12 +1096,13 @@ func main() { - + -
ParameterTypeDescription
denomstringThe tokenfactory denom to which this namespace applies to
contract_hookstringThe address of smart contract to apply code-based restrictions
wasm_hookstringThe address of cosmwasm contract to apply code-based restrictions
role_permissionsRole arraypermissions for each role
actor_rolesActorRoles arrayroles for each actor
role_managersRoleManager arraymanagers for each role
policy_statusesPolicyStatus arraystatus for each policy
policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy
+policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy +evm_hookstringThe address of the EVM contract to map code-based permissions
@@ -2849,7 +2851,8 @@ No parameters **Params** -
ParameterTypeDescription
wasm_hook_query_max_gasuint64Max amount of gas allowed for wasm hook queries
+ +
ParameterTypeDescription
contract_hook_max_gasuint64Max amount of gas allowed for contract hook queries
enforced_restrictions_contractsstring arrayEVM addresses of contracts that will not bypass module-to-module transfers

@@ -2858,12 +2861,13 @@ No parameters - + -
ParameterTypeDescription
denomstringThe tokenfactory denom to which this namespace applies to
contract_hookstringThe address of smart contract to apply code-based restrictions
wasm_hookstringThe address of cosmwasm contract to apply code-based restrictions
role_permissionsRole arraypermissions for each role
actor_rolesActorRoles arrayroles for each actor
role_managersRoleManager arraymanagers for each role
policy_statusesPolicyStatus arraystatus for each policy
policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy
+policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy +evm_hookstringThe 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() { - + -
ParameterTypeDescription
denomstringThe tokenfactory denom to which this namespace applies to
contract_hookstringThe address of smart contract to apply code-based restrictions
wasm_hookstringThe address of cosmwasm contract to apply code-based restrictions
role_permissionsRole arraypermissions for each role
actor_rolesActorRoles arrayroles for each actor
role_managersRoleManager arraymanagers for each role
policy_statusesPolicyStatus arraystatus for each policy
policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy
+policy_manager_capabilitiesPolicyManagerCapability arraycapabilities for each manager for each policy +evm_hookstringThe 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() { - + -
ParameterTypeDescriptionRequired
senderstringThe sender's Injective addressYes
denomstringdenom whose namespace updates are to be appliedYes
contract_hookMsgUpdateNamespace_SetContractHookaddress of smart contract to apply code-based restrictionsNo
wasm_hookMsgUpdateNamespace_SetContractHookaddress of wasm smart contract to apply code-based restrictionsNo
role_permissionsRole arrayrole permissions to updateNo
role_managersRoleManager arrayrole managers to updateNo
policy_statusesPolicyStatus arraypolicy statuses to updateNo
policy_manager_capabilitiesPolicyManagerCapability arraypolicy manager capabilities to updateNo
+policy_manager_capabilitiesPolicyManagerCapability arraypolicy manager capabilities to updateNo +evm_hookMsgUpdateNamespace_SetContractHookaddress of EVM smart contract to apply code-based restrictionsNo
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() { adminstringcurrent market admin admin_permissionsuint32level of admin permissions base_decimalsuint32base token decimals -quote_decimalsuint32quote token decimals +quote_decimalsuint32quote token decimals +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market
@@ -323,7 +324,8 @@ func main() { 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused
@@ -503,7 +505,8 @@ func main() { adminstringcurrent market admin admin_permissionsuint32level of admin permissions base_decimalsuint32base token decimals -quote_decimalsuint32quote token decimals +quote_decimalsuint32quote token decimals +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market
@@ -515,7 +518,8 @@ func main() { 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused
@@ -719,7 +723,8 @@ func main() { adminstringcurrent market admin admin_permissionsuint32level of admin permissions base_decimalsuint32base token decimals -quote_decimalsuint32quote token decimals +quote_decimalsuint32quote token decimals +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market
@@ -731,7 +736,8 @@ func main() { 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused
@@ -940,7 +946,8 @@ func main() { adminstringcurrent market admin admin_permissionsuint32level of admin permissions base_decimalsuint32base token decimals -quote_decimalsuint32quote token decimals +quote_decimalsuint32quote token decimals +has_disabled_minimal_protocol_feeboolhas_disabled_minimal_protocol_fee indicates whether the minimal protocol fee is disabled for the market
@@ -952,7 +959,8 @@ func main() { 1Active 2Paused 3Demolished -4Expired +4Expired +5ForcePaused
@@ -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" } ]