diff --git a/CHANGELOG.md b/CHANGELOG.md index cfaaa926..9ea9ec7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. +## [1.9.0] - 9999-99-99 +### Added +- Added support for Exchange V2 proto queries and types +- Updated all chain exchange module examples to use the new Exchange V2 proto queries and types + +### Removed +- Removed all methods marked as deprecated in AsyncClient and Composer + ## [1.8.0] - 2024-11-14 ### Changed - The markets initialization in AsyncClient has been modified to get markets information from the chain endpoints instead of the Indexer endpoints diff --git a/buf.gen.yaml b/buf.gen.yaml index 1cb56c02..7151c257 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -12,18 +12,18 @@ inputs: - module: buf.build/googleapis/googleapis - module: buf.build/cosmos/ics23 - git_repo: https://github.com/InjectiveLabs/cosmos-sdk - tag: v0.50.8-inj-0 + tag: v0.50.9-inj-2 - git_repo: https://github.com/InjectiveLabs/ibc-go tag: v8.3.2-inj-0 - git_repo: https://github.com/InjectiveLabs/wasmd - tag: v0.51.0-inj-0 + tag: v0.52.0-inj-0 # - git_repo: https://github.com/InjectiveLabs/wasmd # branch: v0.51.x-inj # subdir: proto - - git_repo: https://github.com/InjectiveLabs/injective-core - tag: v1.13.0 - subdir: proto # - git_repo: https://github.com/InjectiveLabs/injective-core -# branch: master +# tag: v1.13.0 # subdir: proto + - git_repo: https://github.com/InjectiveLabs/injective-core + branch: feat/add_exchange_v1_compatibility_to_chain_stream + subdir: proto - directory: proto diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index fbec8988..22c6aec7 100644 --- a/examples/chain_client/1_LocalOrderHash.py +++ b/examples/chain_client/1_LocalOrderHash.py @@ -41,7 +41,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -50,7 +50,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -62,7 +62,7 @@ async def main() -> None: ] derivative_orders = [ - composer.derivative_order( + composer.create_derivative_order_v2( market_id=deriv_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -74,7 +74,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.derivative_order( + composer.create_derivative_order_v2( market_id=deriv_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -89,9 +89,9 @@ async def main() -> None: ] # prepare tx msg - spot_msg = composer.msg_batch_create_spot_limit_orders(sender=address.to_acc_bech32(), orders=spot_orders) + spot_msg = composer.msg_batch_create_spot_limit_orders_v2(sender=address.to_acc_bech32(), orders=spot_orders) - deriv_msg = composer.msg_batch_create_derivative_limit_orders( + deriv_msg = composer.msg_batch_create_derivative_limit_orders_v2( sender=address.to_acc_bech32(), orders=derivative_orders ) @@ -218,9 +218,9 @@ async def main() -> None: ] # prepare tx msg - spot_msg = composer.msg_batch_create_spot_limit_orders(sender=address.to_acc_bech32(), orders=spot_orders) + spot_msg = composer.msg_batch_create_spot_limit_orders_v2(sender=address.to_acc_bech32(), orders=spot_orders) - deriv_msg = composer.msg_batch_create_derivative_limit_orders( + deriv_msg = composer.msg_batch_create_derivative_limit_orders_v2( sender=address.to_acc_bech32(), orders=derivative_orders ) diff --git a/examples/chain_client/2_StreamEventOrderFail.py b/examples/chain_client/2_StreamEventOrderFail.py index 62aed601..d9eea258 100644 --- a/examples/chain_client/2_StreamEventOrderFail.py +++ b/examples/chain_client/2_StreamEventOrderFail.py @@ -11,8 +11,8 @@ async def main() -> None: network = Network.mainnet() event_filter = ( "tm.event='Tx' AND message.sender='inj1rwv4zn3jptsqs7l8lpa3uvzhs57y8duemete9e' " - "AND message.action='/injective.exchange.v1beta1.MsgBatchUpdateOrders' " - "AND injective.exchange.v1beta1.EventOrderFail.flags EXISTS" + "AND message.action='/injective.exchange.v2.MsgBatchUpdateOrders' " + "AND injective.exchange.v2.EventOrderFail.flags EXISTS" ) query = json.dumps( { @@ -32,8 +32,8 @@ async def main() -> None: if result == {}: continue - failed_order_hashes = json.loads(result["events"]["injective.exchange.v1beta1.EventOrderFail.hashes"][0]) - failed_order_codes = json.loads(result["events"]["injective.exchange.v1beta1.EventOrderFail.flags"][0]) + failed_order_hashes = json.loads(result["events"]["injective.exchange.v2.EventOrderFail.hashes"][0]) + failed_order_codes = json.loads(result["events"]["injective.exchange.v2.EventOrderFail.flags"][0]) dict = {} for i, order_hash in enumerate(failed_order_hashes): diff --git a/examples/chain_client/3_MessageBroadcaster.py b/examples/chain_client/3_MessageBroadcaster.py index 735b92e3..3360c68b 100644 --- a/examples/chain_client/3_MessageBroadcaster.py +++ b/examples/chain_client/3_MessageBroadcaster.py @@ -35,7 +35,7 @@ async def main() -> None: spot_market_id_create = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" spot_orders_to_create = [ - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -44,7 +44,7 @@ async def main() -> None: order_type="BUY", cid=(str(uuid.uuid4())), ), - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -56,7 +56,7 @@ async def main() -> None: ] # prepare tx msg - msg = composer.msg_batch_update_orders( + msg = composer.msg_batch_update_orders_v2( sender=address.to_acc_bech32(), spot_orders_to_create=spot_orders_to_create, ) diff --git a/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py b/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py index 4e08397b..bf9ef101 100644 --- a/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py +++ b/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py @@ -41,7 +41,7 @@ async def main() -> None: granter_address = Address.from_acc_bech32(granter_inj_address) granter_subaccount_id = granter_address.get_subaccount_id(index=0) - msg = composer.msg_create_spot_limit_order( + msg = composer.msg_create_spot_limit_order_v2( market_id=market_id, sender=granter_inj_address, subaccount_id=granter_subaccount_id, diff --git a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py index 8c4f685f..3c915647 100644 --- a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py +++ b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py @@ -35,7 +35,7 @@ async def main() -> None: spot_market_id_create = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" spot_orders_to_create = [ - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -44,7 +44,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -56,7 +56,7 @@ async def main() -> None: ] # prepare tx msg - msg = composer.msg_batch_update_orders( + msg = composer.msg_batch_update_orders_v2( sender=address.to_acc_bech32(), spot_orders_to_create=spot_orders_to_create, ) diff --git a/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py b/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py index 4b7fbd2e..6f06691d 100644 --- a/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py +++ b/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py @@ -40,7 +40,7 @@ async def main() -> None: granter_address = Address.from_acc_bech32(granter_inj_address) granter_subaccount_id = granter_address.get_subaccount_id(index=0) - msg = composer.msg_create_spot_limit_order( + msg = composer.msg_create_spot_limit_order_v2( market_id=market_id, sender=granter_inj_address, subaccount_id=granter_subaccount_id, diff --git a/examples/chain_client/7_ChainStream.py b/examples/chain_client/7_ChainStream.py index 05a5bbdc..d63ff6ea 100644 --- a/examples/chain_client/7_ChainStream.py +++ b/examples/chain_client/7_ChainStream.py @@ -31,29 +31,29 @@ async def main() -> None: inj_usdt_market = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" inj_usdt_perp_market = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - bank_balances_filter = composer.chain_stream_bank_balances_filter( + bank_balances_filter = composer.chain_stream_bank_balances_v2_filter( accounts=["inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"] ) - subaccount_deposits_filter = composer.chain_stream_subaccount_deposits_filter(subaccount_ids=[subaccount_id]) - spot_trades_filter = composer.chain_stream_trades_filter(subaccount_ids=["*"], market_ids=[inj_usdt_market]) - derivative_trades_filter = composer.chain_stream_trades_filter( + subaccount_deposits_filter = composer.chain_stream_subaccount_deposits_v2_filter(subaccount_ids=[subaccount_id]) + spot_trades_filter = composer.chain_stream_trades_v2_filter(subaccount_ids=["*"], market_ids=[inj_usdt_market]) + derivative_trades_filter = composer.chain_stream_trades_v2_filter( subaccount_ids=["*"], market_ids=[inj_usdt_perp_market] ) - spot_orders_filter = composer.chain_stream_orders_filter( + spot_orders_filter = composer.chain_stream_orders_v2_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_market] ) - derivative_orders_filter = composer.chain_stream_orders_filter( + derivative_orders_filter = composer.chain_stream_orders_v2_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_perp_market] ) - spot_orderbooks_filter = composer.chain_stream_orderbooks_filter(market_ids=[inj_usdt_market]) - derivative_orderbooks_filter = composer.chain_stream_orderbooks_filter(market_ids=[inj_usdt_perp_market]) - positions_filter = composer.chain_stream_positions_filter( + spot_orderbooks_filter = composer.chain_stream_orderbooks_v2_filter(market_ids=[inj_usdt_market]) + derivative_orderbooks_filter = composer.chain_stream_orderbooks_v2_filter(market_ids=[inj_usdt_perp_market]) + positions_filter = composer.chain_stream_positions_v2_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_perp_market] ) - oracle_price_filter = composer.chain_stream_oracle_price_filter(symbols=["INJ", "USDT"]) + oracle_price_filter = composer.chain_stream_oracle_price_v2_filter(symbols=["INJ", "USDT"]) task = asyncio.get_event_loop().create_task( - client.listen_chain_stream_updates( + client.listen_chain_stream_v2_updates( callback=chain_stream_event_processor, on_end_callback=stream_closed_processor, on_status_callback=stream_error_processor, diff --git a/examples/chain_client/authz/1_MsgGrant.py b/examples/chain_client/authz/1_MsgGrant.py index 111a050c..fcf88b0a 100644 --- a/examples/chain_client/authz/1_MsgGrant.py +++ b/examples/chain_client/authz/1_MsgGrant.py @@ -38,7 +38,7 @@ async def main() -> None: msg = composer.MsgGrantGeneric( granter=address.to_acc_bech32(), grantee=grantee_public_address, - msg_type="/injective.exchange.v1beta1.MsgCreateSpotLimitOrder", + msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", expire_in=31536000, # 1 year ) diff --git a/examples/chain_client/authz/2_MsgExec.py b/examples/chain_client/authz/2_MsgExec.py index 8d9891a5..cccd7f29 100644 --- a/examples/chain_client/authz/2_MsgExec.py +++ b/examples/chain_client/authz/2_MsgExec.py @@ -38,7 +38,7 @@ async def main() -> None: granter_address = Address.from_acc_bech32(granter_inj_address) granter_subaccount_id = granter_address.get_subaccount_id(index=0) - msg0 = composer.msg_create_spot_limit_order( + msg0 = composer.msg_create_spot_limit_order_v2( sender=granter_inj_address, market_id=market_id, subaccount_id=granter_subaccount_id, diff --git a/examples/chain_client/authz/3_MsgRevoke.py b/examples/chain_client/authz/3_MsgRevoke.py index 91bb192d..cd27b02d 100644 --- a/examples/chain_client/authz/3_MsgRevoke.py +++ b/examples/chain_client/authz/3_MsgRevoke.py @@ -34,7 +34,7 @@ async def main() -> None: msg = composer.MsgRevoke( granter=address.to_acc_bech32(), grantee=grantee_public_address, - msg_type="/injective.exchange.v1beta1.MsgCreateSpotLimitOrder", + msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", ) # build sim tx diff --git a/examples/chain_client/authz/query/1_Grants.py b/examples/chain_client/authz/query/1_Grants.py index 9ab27f22..b11fb486 100644 --- a/examples/chain_client/authz/query/1_Grants.py +++ b/examples/chain_client/authz/query/1_Grants.py @@ -14,7 +14,7 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) - msg_type_url = "/injective.exchange.v1beta1.MsgCreateDerivativeLimitOrder" + msg_type_url = "/injective.exchange.v2.MsgCreateDerivativeLimitOrder" authorizations = await client.fetch_grants(granter=granter, grantee=grantee, msg_type_url=msg_type_url) print(authorizations) diff --git a/examples/chain_client/bank/1_MsgSend.py b/examples/chain_client/bank/1_MsgSend.py index 1d926898..fe1c20de 100644 --- a/examples/chain_client/bank/1_MsgSend.py +++ b/examples/chain_client/bank/1_MsgSend.py @@ -30,11 +30,11 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - msg = composer.MsgSend( + msg = composer.msg_send( from_address=address.to_acc_bech32(), to_address="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", - amount=0.000000000000000001, - denom="INJ", + amount=1, + denom="inj", ) # build sim tx diff --git a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py index 4e0ff327..80d80730 100644 --- a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py +++ b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_derivative_limit_order( + msg = composer.msg_create_derivative_limit_order_v2( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py index 7b561970..6f99d75f 100644 --- a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py +++ b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_derivative_market_order( + msg = composer.msg_create_derivative_market_order_v2( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py index 20be2bd0..f1471a28 100644 --- a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py +++ b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py @@ -35,8 +35,14 @@ async def main() -> None: order_hash = "0x667ee6f37f6d06bf473f4e1434e92ac98ff43c785405e2a511a0843daeca2de9" # prepare tx msg - msg = composer.msg_cancel_derivative_order( - sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash + msg = composer.msg_cancel_derivative_order_v2( + sender=address.to_acc_bech32(), + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + is_buy=True, + is_market_order=False, + is_conditional=False, ) # build sim tx diff --git a/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py index c5786e8a..9d018bb8 100644 --- a/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py +++ b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py @@ -34,7 +34,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_instant_binary_options_market_launch( + message = composer.msg_instant_binary_options_market_launch_v2( sender=address.to_acc_bech32(), ticker="UFC-KHABIB-TKO-05/30/2023", oracle_symbol="UFC-KHABIB-TKO-05/30/2023", diff --git a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py index c15711b2..a56e3c15 100644 --- a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py +++ b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py @@ -10,7 +10,6 @@ from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE from pyinjective.core.network import Network from pyinjective.transaction import Transaction -from pyinjective.utils.denom import Denom from pyinjective.wallet import PrivateKey @@ -37,18 +36,8 @@ async def main() -> None: market_id = "0x767e1542fbc111e88901e223e625a4a8eb6d630c96884bbde672e8bc874075bb" fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - # set custom denom to bypass ini file load (optional) - denom = Denom( - description="desc", - base=0, - quote=6, - min_price_tick_size=1000, - min_quantity_tick_size=0.0001, - min_notional=0, - ) - # prepare tx msg - msg = composer.msg_create_binary_options_limit_order( + msg = composer.msg_create_binary_options_limit_order_v2( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, @@ -58,7 +47,6 @@ async def main() -> None: margin=Decimal("0.5"), order_type="BUY", cid=str(uuid.uuid4()), - denom=denom, ) # build sim tx diff --git a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py index 9b68bc85..e890299b 100644 --- a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py +++ b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_binary_options_market_order( + msg = composer.msg_create_binary_options_market_order_v2( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py index 582c6dc6..12d3c81e 100644 --- a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py +++ b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py @@ -35,8 +35,14 @@ async def main() -> None: order_hash = "a975fbd72b874bdbf5caf5e1e8e2653937f33ce6dd14d241c06c8b1f7b56be46" # prepare tx msg - msg = composer.msg_cancel_binary_options_order( - sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash + msg = composer.msg_cancel_binary_options_order_v2( + sender=address.to_acc_bech32(), + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + is_buy=True, + is_market_order=False, + is_conditional=False, ) # build sim tx tx = ( diff --git a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py index a50fc0cf..0c5d561f 100644 --- a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py +++ b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py @@ -1,6 +1,5 @@ import asyncio import os -from decimal import Decimal import dotenv from grpc import RpcError @@ -33,12 +32,12 @@ async def main() -> None: dest_subaccount_id = address.get_subaccount_id(index=1) # prepare tx msg - msg = composer.msg_subaccount_transfer( + msg = composer.msg_subaccount_transfer_v2( sender=address.to_acc_bech32(), source_subaccount_id=subaccount_id, destination_subaccount_id=dest_subaccount_id, - amount=Decimal(100), - denom="INJ", + amount=100, + denom="inj", ) # build sim tx diff --git a/examples/chain_client/exchange/18_MsgExternalTransfer.py b/examples/chain_client/exchange/18_MsgExternalTransfer.py index 2bcc86a1..5ce5cacd 100644 --- a/examples/chain_client/exchange/18_MsgExternalTransfer.py +++ b/examples/chain_client/exchange/18_MsgExternalTransfer.py @@ -1,6 +1,5 @@ import asyncio import os -from decimal import Decimal import dotenv from grpc import RpcError @@ -33,12 +32,12 @@ async def main() -> None: dest_subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" # prepare tx msg - msg = composer.msg_external_transfer( + msg = composer.msg_external_transfer_v2( sender=address.to_acc_bech32(), source_subaccount_id=subaccount_id, destination_subaccount_id=dest_subaccount_id, - amount=Decimal(100), - denom="INJ", + amount=100, + denom="inj", ) # build sim tx diff --git a/examples/chain_client/exchange/19_MsgLiquidatePosition.py b/examples/chain_client/exchange/19_MsgLiquidatePosition.py index 9788b865..7881efbf 100644 --- a/examples/chain_client/exchange/19_MsgLiquidatePosition.py +++ b/examples/chain_client/exchange/19_MsgLiquidatePosition.py @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" cid = str(uuid.uuid4()) - order = composer.derivative_order( + order = composer.create_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -51,7 +51,7 @@ async def main() -> None: ) # prepare tx msg - msg = composer.msg_liquidate_position( + msg = composer.msg_liquidate_position_v2( sender=address.to_acc_bech32(), subaccount_id="0x156df4d5bc8e7dd9191433e54bd6a11eeb390921000000000000000000000000", market_id=market_id, diff --git a/examples/chain_client/exchange/1_MsgDeposit.py b/examples/chain_client/exchange/1_MsgDeposit.py index bbf64710..c48ebfc7 100644 --- a/examples/chain_client/exchange/1_MsgDeposit.py +++ b/examples/chain_client/exchange/1_MsgDeposit.py @@ -31,9 +31,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) # prepare tx msg - msg = composer.msg_deposit( - sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=0.000001, denom="INJ" - ) + msg = composer.msg_deposit_v2(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom="inj") # build sim tx tx = ( diff --git a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py index 276276e7..686f3634 100644 --- a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py +++ b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py @@ -35,7 +35,7 @@ async def main() -> None: market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" # prepare tx msg - msg = composer.msg_increase_position_margin( + msg = composer.msg_increase_position_margin_v2( sender=address.to_acc_bech32(), market_id=market_id, source_subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py index 5914063d..a81a5747 100644 --- a/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py +++ b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py @@ -38,7 +38,7 @@ async def main() -> None: market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" # prepare tx msg - msg = composer.msg_decrease_position_margin( + msg = composer.msg_decrease_position_margin_v2( sender=address.to_acc_bech32(), market_id=market_id, source_subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py b/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py index 67d73a4d..b26e831e 100644 --- a/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py +++ b/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py @@ -35,7 +35,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_update_spot_market( + message = composer.msg_update_spot_market_v2( admin=address.to_acc_bech32(), market_id="0x215970bfdea5c94d8e964a759d3ce6eae1d113900129cc8428267db5ccdb3d1a", new_ticker="INJ/USDC 2", diff --git a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py index da2aa593..ed3e6137 100644 --- a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py +++ b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py @@ -35,7 +35,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_update_derivative_market( + message = composer.msg_update_derivative_market_v2( admin=address.to_acc_bech32(), market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", new_ticker="INJ/USDT PERP 2", diff --git a/examples/chain_client/exchange/2_MsgWithdraw.py b/examples/chain_client/exchange/2_MsgWithdraw.py index 1070d28c..89071f01 100644 --- a/examples/chain_client/exchange/2_MsgWithdraw.py +++ b/examples/chain_client/exchange/2_MsgWithdraw.py @@ -29,9 +29,10 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) + denom = "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" # prepare tx msg - msg = composer.msg_withdraw(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom="USDT") + msg = composer.msg_withdraw_v2(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom=denom) # build sim tx tx = ( diff --git a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py index fe7c5ad4..e456eb7e 100644 --- a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py +++ b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py @@ -35,14 +35,16 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_instant_spot_market_launch( + message = composer.msg_instant_spot_market_launch_v2( sender=address.to_acc_bech32(), ticker="INJ/USDC", - base_denom="INJ", - quote_denom="USDC", + base_denom="inj", + quote_denom="factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc", min_price_tick_size=Decimal("0.001"), min_quantity_tick_size=Decimal("0.01"), min_notional=Decimal("1"), + base_decimals=18, + quote_decimals=6, ) # broadcast the transaction diff --git a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py index 1cda2f20..7fde21a7 100644 --- a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py +++ b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py @@ -35,10 +35,10 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_instant_perpetual_market_launch( + message = composer.msg_instant_perpetual_market_launch_v2( sender=address.to_acc_bech32(), ticker="INJ/USDC PERP", - quote_denom="USDC", + quote_denom="factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc", oracle_base="INJ", oracle_quote="USDC", oracle_scale_factor=6, diff --git a/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py index 78d25d6c..a1e3264f 100644 --- a/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py +++ b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py @@ -35,10 +35,10 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_instant_expiry_futures_market_launch( + message = composer.msg_instant_expiry_futures_market_launch_v2( sender=address.to_acc_bech32(), ticker="INJ/USDC FUT", - quote_denom="USDC", + quote_denom="factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc", oracle_base="INJ", oracle_quote="USDC", oracle_scale_factor=6, diff --git a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py index 5b3b966a..4f20ee68 100644 --- a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py +++ b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py @@ -38,7 +38,7 @@ async def main() -> None: cid = str(uuid.uuid4()) # prepare tx msg - msg = composer.msg_create_spot_limit_order( + msg = composer.msg_create_spot_limit_order_v2( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py index 36ea27de..b353f3b9 100644 --- a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py +++ b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_spot_market_order( + msg = composer.msg_create_spot_market_order_v2( market_id=market_id, sender=address.to_acc_bech32(), subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py index 4bcedda8..a00259b2 100644 --- a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py +++ b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py @@ -35,7 +35,7 @@ async def main() -> None: order_hash = "0x52888d397d5ae821869c8acde5823dfd8018802d2ef642d3aa639e5308173fcf" # prepare tx msg - msg = composer.msg_cancel_spot_order( + msg = composer.msg_cancel_spot_order_v2( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash ) diff --git a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py index ac490216..fddce552 100644 --- a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py +++ b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py @@ -44,12 +44,12 @@ async def main() -> None: spot_market_id_cancel_2 = "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0" derivative_orders_to_cancel = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=derivative_market_id_cancel, subaccount_id=subaccount_id, order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=derivative_market_id_cancel_2, subaccount_id=subaccount_id, order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -57,12 +57,12 @@ async def main() -> None: ] spot_orders_to_cancel = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=spot_market_id_cancel, subaccount_id=subaccount_id, cid="0e5c3ad5-2cc4-4a2a-bbe5-b12697739163", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=spot_market_id_cancel_2, subaccount_id=subaccount_id, order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", @@ -70,7 +70,7 @@ async def main() -> None: ] derivative_orders_to_create = [ - composer.derivative_order( + composer.create_derivative_order_v2( market_id=derivative_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -82,7 +82,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.derivative_order( + composer.create_derivative_order_v2( market_id=derivative_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -97,7 +97,7 @@ async def main() -> None: ] spot_orders_to_create = [ - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -106,7 +106,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -118,7 +118,7 @@ async def main() -> None: ] # prepare tx msg - msg = composer.msg_batch_update_orders( + msg = composer.msg_batch_update_orders_v2( sender=address.to_acc_bech32(), derivative_orders_to_create=derivative_orders_to_create, spot_orders_to_create=spot_orders_to_create, diff --git a/examples/chain_client/exchange/query/10_SpotMarkets.py b/examples/chain_client/exchange/query/10_SpotMarkets.py index 4cedc9d7..54d7ee9a 100644 --- a/examples/chain_client/exchange/query/10_SpotMarkets.py +++ b/examples/chain_client/exchange/query/10_SpotMarkets.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_markets = await client.fetch_chain_spot_markets( + spot_markets = await client.fetch_chain_spot_markets_v2( status="Active", market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], ) diff --git a/examples/chain_client/exchange/query/11_SpotMarket.py b/examples/chain_client/exchange/query/11_SpotMarket.py index 0e774edf..e61b2c1e 100644 --- a/examples/chain_client/exchange/query/11_SpotMarket.py +++ b/examples/chain_client/exchange/query/11_SpotMarket.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_market = await client.fetch_chain_spot_market( + spot_market = await client.fetch_chain_spot_market_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", ) print(spot_market) diff --git a/examples/chain_client/exchange/query/12_FullSpotMarkets.py b/examples/chain_client/exchange/query/12_FullSpotMarkets.py index cfefee28..7b035ad1 100644 --- a/examples/chain_client/exchange/query/12_FullSpotMarkets.py +++ b/examples/chain_client/exchange/query/12_FullSpotMarkets.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_markets = await client.fetch_chain_full_spot_markets( + spot_markets = await client.fetch_chain_full_spot_markets_v2( status="Active", market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], with_mid_price_and_tob=True, diff --git a/examples/chain_client/exchange/query/13_FullSpotMarket.py b/examples/chain_client/exchange/query/13_FullSpotMarket.py index 6a39269d..0f19c442 100644 --- a/examples/chain_client/exchange/query/13_FullSpotMarket.py +++ b/examples/chain_client/exchange/query/13_FullSpotMarket.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_market = await client.fetch_chain_full_spot_market( + spot_market = await client.fetch_chain_full_spot_market_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", with_mid_price_and_tob=True, ) diff --git a/examples/chain_client/exchange/query/14_SpotOrderbook.py b/examples/chain_client/exchange/query/14_SpotOrderbook.py index 7b5a9aa1..601b8c87 100644 --- a/examples/chain_client/exchange/query/14_SpotOrderbook.py +++ b/examples/chain_client/exchange/query/14_SpotOrderbook.py @@ -14,7 +14,7 @@ async def main() -> None: pagination = PaginationOption(limit=2) - orderbook = await client.fetch_chain_spot_orderbook( + orderbook = await client.fetch_chain_spot_orderbook_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", order_side="Buy", pagination=pagination, diff --git a/examples/chain_client/exchange/query/15_TraderSpotOrders.py b/examples/chain_client/exchange/query/15_TraderSpotOrders.py index 0cc96b6f..3d817404 100644 --- a/examples/chain_client/exchange/query/15_TraderSpotOrders.py +++ b/examples/chain_client/exchange/query/15_TraderSpotOrders.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_trader_spot_orders( + orders = await client.fetch_chain_trader_spot_orders_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id=subaccount_id, ) diff --git a/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py b/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py index 8e50fa95..cfd732d4 100644 --- a/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py +++ b/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py @@ -24,7 +24,7 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - orders = await client.fetch_chain_account_address_spot_orders( + orders = await client.fetch_chain_account_address_spot_orders_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", account_address=address.to_acc_bech32(), ) diff --git a/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py b/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py index 641eb6f5..dbc4cfcd 100644 --- a/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py +++ b/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_spot_orders_by_hashes( + orders = await client.fetch_chain_spot_orders_by_hashes_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id=subaccount_id, order_hashes=["0x57a01cd26f1e2080860af3264e865d7c9c034a701e30946d01c1dc7a303cf2c1"], diff --git a/examples/chain_client/exchange/query/18_SubaccountOrders.py b/examples/chain_client/exchange/query/18_SubaccountOrders.py index 4983f827..75669295 100644 --- a/examples/chain_client/exchange/query/18_SubaccountOrders.py +++ b/examples/chain_client/exchange/query/18_SubaccountOrders.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_subaccount_orders( + orders = await client.fetch_chain_subaccount_orders_v2( subaccount_id=subaccount_id, market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", ) diff --git a/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py b/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py index 2b29c2c0..557ff649 100644 --- a/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py +++ b/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_trader_spot_transient_orders( + orders = await client.fetch_chain_trader_spot_transient_orders_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id=subaccount_id, ) diff --git a/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py b/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py index 35493ffd..66a25482 100644 --- a/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py +++ b/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - prices = await client.fetch_spot_mid_price_and_tob( + prices = await client.fetch_spot_mid_price_and_tob_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", ) print(prices) diff --git a/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py b/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py index 5b5c5fff..0c0acbc0 100644 --- a/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py +++ b/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - prices = await client.fetch_derivative_mid_price_and_tob( + prices = await client.fetch_derivative_mid_price_and_tob_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) print(prices) diff --git a/examples/chain_client/exchange/query/22_DerivativeOrderbook.py b/examples/chain_client/exchange/query/22_DerivativeOrderbook.py index 465a62b6..946b099f 100644 --- a/examples/chain_client/exchange/query/22_DerivativeOrderbook.py +++ b/examples/chain_client/exchange/query/22_DerivativeOrderbook.py @@ -14,7 +14,7 @@ async def main() -> None: pagination = PaginationOption(limit=2) - orderbook = await client.fetch_chain_derivative_orderbook( + orderbook = await client.fetch_chain_derivative_orderbook_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", pagination=pagination, ) diff --git a/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py b/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py index 244a61b4..86d3908b 100644 --- a/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py +++ b/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_trader_derivative_orders( + orders = await client.fetch_chain_trader_derivative_orders_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", subaccount_id=subaccount_id, ) diff --git a/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py b/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py index 2ecc6e2d..639d8407 100644 --- a/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py +++ b/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py @@ -24,7 +24,7 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - orders = await client.fetch_chain_account_address_derivative_orders( + orders = await client.fetch_chain_account_address_derivative_orders_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", account_address=address.to_acc_bech32(), ) diff --git a/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py b/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py index 825f5523..7b4111d7 100644 --- a/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py +++ b/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_derivative_orders_by_hashes( + orders = await client.fetch_chain_derivative_orders_by_hashes_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", subaccount_id=subaccount_id, order_hashes=["0x57a01cd26f1e2080860af3264e865d7c9c034a701e30946d01c1dc7a303cf2c1"], diff --git a/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py b/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py index c5548d59..9bcd2e32 100644 --- a/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py +++ b/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_trader_derivative_transient_orders( + orders = await client.fetch_chain_trader_derivative_transient_orders_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", subaccount_id=subaccount_id, ) diff --git a/examples/chain_client/exchange/query/27_DerivativeMarkets.py b/examples/chain_client/exchange/query/27_DerivativeMarkets.py index 2f4bbc5a..ab7ba653 100644 --- a/examples/chain_client/exchange/query/27_DerivativeMarkets.py +++ b/examples/chain_client/exchange/query/27_DerivativeMarkets.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - derivative_markets = await client.fetch_chain_derivative_markets( + derivative_markets = await client.fetch_chain_derivative_markets_v2( status="Active", market_ids=["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"], ) diff --git a/examples/chain_client/exchange/query/28_DerivativeMarket.py b/examples/chain_client/exchange/query/28_DerivativeMarket.py index 152381f5..4e5418fe 100644 --- a/examples/chain_client/exchange/query/28_DerivativeMarket.py +++ b/examples/chain_client/exchange/query/28_DerivativeMarket.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - derivative_market = await client.fetch_chain_derivative_market( + derivative_market = await client.fetch_chain_derivative_market_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) print(derivative_market) diff --git a/examples/chain_client/exchange/query/31_Positions.py b/examples/chain_client/exchange/query/31_Positions.py index ae494b6a..f2011166 100644 --- a/examples/chain_client/exchange/query/31_Positions.py +++ b/examples/chain_client/exchange/query/31_Positions.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - positions = await client.fetch_chain_positions() + positions = await client.fetch_chain_positions_v2() print(positions) diff --git a/examples/chain_client/exchange/query/32_SubaccountPositions.py b/examples/chain_client/exchange/query/32_SubaccountPositions.py index 000d95b6..2103352d 100644 --- a/examples/chain_client/exchange/query/32_SubaccountPositions.py +++ b/examples/chain_client/exchange/query/32_SubaccountPositions.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - positions = await client.fetch_chain_subaccount_positions( + positions = await client.fetch_chain_subaccount_positions_v2( subaccount_id=subaccount_id, ) print(positions) diff --git a/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py b/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py index 4e0f1ddb..9bcde762 100644 --- a/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py +++ b/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - position = await client.fetch_chain_subaccount_position_in_market( + position = await client.fetch_chain_subaccount_position_in_market_v2( subaccount_id=subaccount_id, market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) diff --git a/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py b/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py index e729e77c..1c4307b1 100644 --- a/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py +++ b/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - position = await client.fetch_chain_subaccount_effective_position_in_market( + position = await client.fetch_chain_subaccount_effective_position_in_market_v2( subaccount_id=subaccount_id, market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) diff --git a/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py b/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py index 4053013c..d8bc392f 100644 --- a/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py +++ b/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - market_info = await client.fetch_chain_expiry_futures_market_info( + market_info = await client.fetch_chain_expiry_futures_market_info_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) print(market_info) diff --git a/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py b/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py index 099c2a0f..d735c2c2 100644 --- a/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py +++ b/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - funding = await client.fetch_chain_perpetual_market_funding( + funding = await client.fetch_chain_perpetual_market_funding_v2( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) print(funding) diff --git a/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py b/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py index f4af9d38..3f9caa8f 100644 --- a/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py +++ b/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - metadata = await client.fetch_subaccount_order_metadata( + metadata = await client.fetch_subaccount_order_metadata_v2( subaccount_id=subaccount_id, ) print(metadata) diff --git a/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py b/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py index 15fbb7ce..ab349de3 100644 --- a/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py +++ b/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py @@ -24,7 +24,7 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - fee_discount = await client.fetch_fee_discount_account_info( + fee_discount = await client.fetch_fee_discount_account_info_v2( account=address.to_acc_bech32(), ) print(fee_discount) diff --git a/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py b/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py index a0ae96cb..a0856bc5 100644 --- a/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py +++ b/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - schedule = await client.fetch_fee_discount_schedule() + schedule = await client.fetch_fee_discount_schedule_v2() print(schedule) diff --git a/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py b/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py index 6b93200f..a2d5adeb 100644 --- a/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py +++ b/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - records = await client.fetch_historical_trade_records( + records = await client.fetch_historical_trade_records_v2( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" ) print(records) diff --git a/examples/chain_client/exchange/query/4_AggregateVolume.py b/examples/chain_client/exchange/query/4_AggregateVolume.py index 35c334a5..b7ca7b59 100644 --- a/examples/chain_client/exchange/query/4_AggregateVolume.py +++ b/examples/chain_client/exchange/query/4_AggregateVolume.py @@ -25,10 +25,10 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - volume = await client.fetch_aggregate_volume(account=address.to_acc_bech32()) + volume = await client.fetch_aggregate_volume_v2(account=address.to_acc_bech32()) print(volume) - volume = await client.fetch_aggregate_volume(account=subaccount_id) + volume = await client.fetch_aggregate_volume_v2(account=subaccount_id) print(volume) diff --git a/examples/chain_client/exchange/query/52_MarketVolatility.py b/examples/chain_client/exchange/query/52_MarketVolatility.py index 3173ca39..6f532675 100644 --- a/examples/chain_client/exchange/query/52_MarketVolatility.py +++ b/examples/chain_client/exchange/query/52_MarketVolatility.py @@ -16,7 +16,7 @@ async def main() -> None: max_age = 0 include_raw_history = True include_metadata = True - volatility = await client.fetch_market_volatility( + volatility = await client.fetch_market_volatility_v2( market_id=market_id, trade_grouping_sec=trade_grouping_sec, max_age=max_age, diff --git a/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py b/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py index 4448a4ec..3068bf33 100644 --- a/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py +++ b/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - markets = await client.fetch_chain_binary_options_markets(status="Active") + markets = await client.fetch_chain_binary_options_markets_v2(status="Active") print(markets) diff --git a/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py b/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py index fd65e68f..7481c7df 100644 --- a/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py +++ b/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_trader_derivative_conditional_orders( + orders = await client.fetch_trader_derivative_conditional_orders_v2( subaccount_id=subaccount_id, market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) diff --git a/examples/chain_client/exchange/query/56_ActiveStakeGrant.py b/examples/chain_client/exchange/query/56_ActiveStakeGrant.py new file mode 100644 index 00000000..f5c66c9b --- /dev/null +++ b/examples/chain_client/exchange/query/56_ActiveStakeGrant.py @@ -0,0 +1,27 @@ +import asyncio +import os + +import dotenv + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + dotenv.load_dotenv() + grantee_public_address = os.getenv("INJECTIVE_GRANTEE_PUBLIC_ADDRESS") + + # select network: local, testnet, mainnet + network = Network.testnet() + + # initialize grpc client + client = AsyncClient(network) + + active_grant = await client.fetch_active_stake_grant( + grantee=grantee_public_address, + ) + print(active_grant) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/57_GrantAuthorization.py b/examples/chain_client/exchange/query/57_GrantAuthorization.py new file mode 100644 index 00000000..c9509987 --- /dev/null +++ b/examples/chain_client/exchange/query/57_GrantAuthorization.py @@ -0,0 +1,34 @@ +import asyncio +import os + +import dotenv + +from pyinjective import PrivateKey +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + dotenv.load_dotenv() + configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + grantee_public_address = os.getenv("INJECTIVE_GRANTEE_PUBLIC_ADDRESS") + + # select network: local, testnet, mainnet + network = Network.testnet() + + # initialize grpc client + client = AsyncClient(network) + + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + + active_grant = await client.fetch_grant_authorization( + granter=address.to_acc_bech32(), + grantee=grantee_public_address, + ) + print(active_grant) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/58_GrantAuthorizations.py b/examples/chain_client/exchange/query/58_GrantAuthorizations.py new file mode 100644 index 00000000..0dc140f4 --- /dev/null +++ b/examples/chain_client/exchange/query/58_GrantAuthorizations.py @@ -0,0 +1,32 @@ +import asyncio +import os + +import dotenv + +from pyinjective import PrivateKey +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + dotenv.load_dotenv() + configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + + # select network: local, testnet, mainnet + network = Network.testnet() + + # initialize grpc client + client = AsyncClient(network) + + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + + active_grant = await client.fetch_grant_authorizations( + granter=address.to_acc_bech32(), + ) + print(active_grant) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py b/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py new file mode 100644 index 00000000..5d605f26 --- /dev/null +++ b/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py @@ -0,0 +1,21 @@ +import asyncio + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + # select network: local, testnet, mainnet + network = Network.testnet() + + # initialize grpc client + client = AsyncClient(network) + + orderbook = await client.fetch_l3_derivative_orderbook_v2( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + print(orderbook) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/5_AggregateVolumes.py b/examples/chain_client/exchange/query/5_AggregateVolumes.py index 6effe4be..506cea2f 100644 --- a/examples/chain_client/exchange/query/5_AggregateVolumes.py +++ b/examples/chain_client/exchange/query/5_AggregateVolumes.py @@ -23,7 +23,7 @@ async def main() -> None: pub_key = priv_key.to_public_key() address = pub_key.to_address() - volume = await client.fetch_aggregate_volumes( + volume = await client.fetch_aggregate_volumes_v2( accounts=[address.to_acc_bech32()], market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], ) diff --git a/examples/chain_client/exchange/query/60_L3SpotOrderBook.py b/examples/chain_client/exchange/query/60_L3SpotOrderBook.py new file mode 100644 index 00000000..21e55aff --- /dev/null +++ b/examples/chain_client/exchange/query/60_L3SpotOrderBook.py @@ -0,0 +1,21 @@ +import asyncio + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + # select network: local, testnet, mainnet + network = Network.testnet() + + # initialize grpc client + client = AsyncClient(network) + + orderbook = await client.fetch_l3_spot_orderbook_v2( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) + print(orderbook) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py index b3262d82..55f34d9a 100644 --- a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py +++ b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py @@ -13,7 +13,7 @@ async def main() -> None: market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - volume = await client.fetch_aggregate_market_volume(market_id=market_id) + volume = await client.fetch_aggregate_market_volume_v2(market_id=market_id) print(volume) diff --git a/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py b/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py index 23dfa0ec..7eb22a26 100644 --- a/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py +++ b/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - volume = await client.fetch_aggregate_market_volumes( + volume = await client.fetch_aggregate_market_volumes_v2( market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], ) print(volume) diff --git a/examples/chain_client/ibc/transfer/1_MsgTransfer.py b/examples/chain_client/ibc/transfer/1_MsgTransfer.py index 604ece6e..a99b3fdc 100644 --- a/examples/chain_client/ibc/transfer/1_MsgTransfer.py +++ b/examples/chain_client/ibc/transfer/1_MsgTransfer.py @@ -36,7 +36,10 @@ async def main() -> None: source_port = "transfer" source_channel = "channel-126" - token_amount = composer.create_coin_amount(amount=Decimal("0.1"), token_name="INJ") + token_decimals = 18 + transfer_amount = Decimal("0.1") * Decimal(f"1e{token_decimals}") + inj_chain_denom = "inj" + token_amount = composer.coin(amount=int(transfer_amount), denom=inj_chain_denom) sender = address.to_acc_bech32() receiver = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" timeout_height = 10 diff --git a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py index 99c10fc0..77ec34d4 100644 --- a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py +++ b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py @@ -30,13 +30,13 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - msg = composer.MsgCreateInsuranceFund( + msg = composer.msg_create_insurance_fund( sender=address.to_acc_bech32(), ticker="5202d32a9-1701406800-SF", - quote_denom="USDT", + quote_denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", oracle_base="Frontrunner", oracle_quote="Frontrunner", - oracle_type=11, + oracle_type="Band", expiry=-2, initial_deposit=1000, ) diff --git a/examples/chain_client/insurance/2_MsgUnderwrite.py b/examples/chain_client/insurance/2_MsgUnderwrite.py index 16b75e70..accaa1c0 100644 --- a/examples/chain_client/insurance/2_MsgUnderwrite.py +++ b/examples/chain_client/insurance/2_MsgUnderwrite.py @@ -1,5 +1,6 @@ import asyncio import os +from decimal import Decimal import dotenv from grpc import RpcError @@ -30,11 +31,15 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - msg = composer.MsgUnderwrite( + token_decimals = 6 + amount = 100 + chain_amount = Decimal(str(amount)) * Decimal(f"1e{token_decimals}") + + msg = composer.msg_underwrite( sender=address.to_acc_bech32(), market_id="0x141e3c92ed55107067ceb60ee412b86256cedef67b1227d6367b4cdf30c55a74", - quote_denom="USDT", - amount=100, + quote_denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", + amount=int(chain_amount), ) # build sim tx diff --git a/examples/chain_client/peggy/1_MsgSendToEth.py b/examples/chain_client/peggy/1_MsgSendToEth.py index 06e2d78c..b2e28047 100644 --- a/examples/chain_client/peggy/1_MsgSendToEth.py +++ b/examples/chain_client/peggy/1_MsgSendToEth.py @@ -1,5 +1,6 @@ import asyncio import os +from decimal import Decimal import dotenv import requests @@ -36,14 +37,16 @@ async def main() -> None: token_price = requests.get(coingecko_endpoint).json()[asset]["usd"] minimum_bridge_fee_usd = 10 bridge_fee = minimum_bridge_fee_usd / token_price + token_decimals = 6 + chain_bridge_fee = int(Decimal(str(bridge_fee)) * Decimal(f"1e{token_decimals}")) # prepare tx msg - msg = composer.MsgSendToEth( + msg = composer.msg_send_to_eth( sender=address.to_acc_bech32(), - denom="INJ", + denom="inj", eth_dest="0xaf79152ac5df276d9a8e1e2e22822f9713474902", amount=23, - bridge_fee=bridge_fee, + bridge_fee=chain_bridge_fee, ) # build sim tx diff --git a/examples/chain_client/tx/query/1_GetTx.py b/examples/chain_client/tx/query/1_GetTx.py index f645dba7..38d13342 100644 --- a/examples/chain_client/tx/query/1_GetTx.py +++ b/examples/chain_client/tx/query/1_GetTx.py @@ -5,9 +5,9 @@ async def main() -> None: - network = Network.testnet() + network = Network.devnet() client = AsyncClient(network) - tx_hash = "D265527E3171C47D01D7EC9B839A95F8F794D4E683F26F5564025961C96EFDDA" + tx_hash = "EA598BB5297341636DD62D378DEB87ECE6F95AFB4F45966AA6A53D36EF022DA5" tx_logs = await client.fetch_tx(hash=tx_hash) print(tx_logs) diff --git a/poetry.lock b/poetry.lock index af67930c..70559b72 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,140 +2,127 @@ [[package]] name = "aiohappyeyeballs" -version = "2.4.0" +version = "2.4.3" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.8" files = [ - {file = "aiohappyeyeballs-2.4.0-py3-none-any.whl", hash = "sha256:7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd"}, - {file = "aiohappyeyeballs-2.4.0.tar.gz", hash = "sha256:55a1714f084e63d49639800f95716da97a1f173d46a16dfcfda0016abb93b6b2"}, + {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"}, + {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"}, ] [[package]] name = "aiohttp" -version = "3.10.5" +version = "3.11.6" description = "Async http client/server framework (asyncio)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "aiohttp-3.10.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:18a01eba2574fb9edd5f6e5fb25f66e6ce061da5dab5db75e13fe1558142e0a3"}, - {file = "aiohttp-3.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:94fac7c6e77ccb1ca91e9eb4cb0ac0270b9fb9b289738654120ba8cebb1189c6"}, - {file = "aiohttp-3.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f1f1c75c395991ce9c94d3e4aa96e5c59c8356a15b1c9231e783865e2772699"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f7acae3cf1a2a2361ec4c8e787eaaa86a94171d2417aae53c0cca6ca3118ff6"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:94c4381ffba9cc508b37d2e536b418d5ea9cfdc2848b9a7fea6aebad4ec6aac1"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c31ad0c0c507894e3eaa843415841995bf8de4d6b2d24c6e33099f4bc9fc0d4f"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0912b8a8fadeb32ff67a3ed44249448c20148397c1ed905d5dac185b4ca547bb"}, - {file = "aiohttp-3.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d93400c18596b7dc4794d48a63fb361b01a0d8eb39f28800dc900c8fbdaca91"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d00f3c5e0d764a5c9aa5a62d99728c56d455310bcc288a79cab10157b3af426f"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d742c36ed44f2798c8d3f4bc511f479b9ceef2b93f348671184139e7d708042c"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:814375093edae5f1cb31e3407997cf3eacefb9010f96df10d64829362ae2df69"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8224f98be68a84b19f48e0bdc14224b5a71339aff3a27df69989fa47d01296f3"}, - {file = "aiohttp-3.10.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d9a487ef090aea982d748b1b0d74fe7c3950b109df967630a20584f9a99c0683"}, - {file = "aiohttp-3.10.5-cp310-cp310-win32.whl", hash = "sha256:d9ef084e3dc690ad50137cc05831c52b6ca428096e6deb3c43e95827f531d5ef"}, - {file = "aiohttp-3.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:66bf9234e08fe561dccd62083bf67400bdbf1c67ba9efdc3dac03650e97c6088"}, - {file = "aiohttp-3.10.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c6a4e5e40156d72a40241a25cc226051c0a8d816610097a8e8f517aeacd59a2"}, - {file = "aiohttp-3.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c634a3207a5445be65536d38c13791904fda0748b9eabf908d3fe86a52941cf"}, - {file = "aiohttp-3.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4aff049b5e629ef9b3e9e617fa6e2dfeda1bf87e01bcfecaf3949af9e210105e"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1942244f00baaacaa8155eca94dbd9e8cc7017deb69b75ef67c78e89fdad3c77"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e04a1f2a65ad2f93aa20f9ff9f1b672bf912413e5547f60749fa2ef8a644e061"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f2bfc0032a00405d4af2ba27f3c429e851d04fad1e5ceee4080a1c570476697"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:424ae21498790e12eb759040bbb504e5e280cab64693d14775c54269fd1d2bb7"}, - {file = "aiohttp-3.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:975218eee0e6d24eb336d0328c768ebc5d617609affaca5dbbd6dd1984f16ed0"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4120d7fefa1e2d8fb6f650b11489710091788de554e2b6f8347c7a20ceb003f5"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b90078989ef3fc45cf9221d3859acd1108af7560c52397ff4ace8ad7052a132e"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ba5a8b74c2a8af7d862399cdedce1533642fa727def0b8c3e3e02fcb52dca1b1"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:02594361128f780eecc2a29939d9dfc870e17b45178a867bf61a11b2a4367277"}, - {file = "aiohttp-3.10.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8fb4fc029e135859f533025bc82047334e24b0d489e75513144f25408ecaf058"}, - {file = "aiohttp-3.10.5-cp311-cp311-win32.whl", hash = "sha256:e1ca1ef5ba129718a8fc827b0867f6aa4e893c56eb00003b7367f8a733a9b072"}, - {file = "aiohttp-3.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:349ef8a73a7c5665cca65c88ab24abe75447e28aa3bc4c93ea5093474dfdf0ff"}, - {file = "aiohttp-3.10.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:305be5ff2081fa1d283a76113b8df7a14c10d75602a38d9f012935df20731487"}, - {file = "aiohttp-3.10.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3a1c32a19ee6bbde02f1cb189e13a71b321256cc1d431196a9f824050b160d5a"}, - {file = "aiohttp-3.10.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:61645818edd40cc6f455b851277a21bf420ce347baa0b86eaa41d51ef58ba23d"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c225286f2b13bab5987425558baa5cbdb2bc925b2998038fa028245ef421e75"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ba01ebc6175e1e6b7275c907a3a36be48a2d487549b656aa90c8a910d9f3178"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8eaf44ccbc4e35762683078b72bf293f476561d8b68ec8a64f98cf32811c323e"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c43eb1ab7cbf411b8e387dc169acb31f0ca0d8c09ba63f9eac67829585b44f"}, - {file = "aiohttp-3.10.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de7a5299827253023c55ea549444e058c0eb496931fa05d693b95140a947cb73"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4790f0e15f00058f7599dab2b206d3049d7ac464dc2e5eae0e93fa18aee9e7bf"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:44b324a6b8376a23e6ba25d368726ee3bc281e6ab306db80b5819999c737d820"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0d277cfb304118079e7044aad0b76685d30ecb86f83a0711fc5fb257ffe832ca"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:54d9ddea424cd19d3ff6128601a4a4d23d54a421f9b4c0fff740505813739a91"}, - {file = "aiohttp-3.10.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4f1c9866ccf48a6df2b06823e6ae80573529f2af3a0992ec4fe75b1a510df8a6"}, - {file = "aiohttp-3.10.5-cp312-cp312-win32.whl", hash = "sha256:dc4826823121783dccc0871e3f405417ac116055bf184ac04c36f98b75aacd12"}, - {file = "aiohttp-3.10.5-cp312-cp312-win_amd64.whl", hash = "sha256:22c0a23a3b3138a6bf76fc553789cb1a703836da86b0f306b6f0dc1617398abc"}, - {file = "aiohttp-3.10.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7f6b639c36734eaa80a6c152a238242bedcee9b953f23bb887e9102976343092"}, - {file = "aiohttp-3.10.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f29930bc2921cef955ba39a3ff87d2c4398a0394ae217f41cb02d5c26c8b1b77"}, - {file = "aiohttp-3.10.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f489a2c9e6455d87eabf907ac0b7d230a9786be43fbe884ad184ddf9e9c1e385"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:123dd5b16b75b2962d0fff566effb7a065e33cd4538c1692fb31c3bda2bfb972"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b98e698dc34966e5976e10bbca6d26d6724e6bdea853c7c10162a3235aba6e16"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3b9162bab7e42f21243effc822652dc5bb5e8ff42a4eb62fe7782bcbcdfacf6"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1923a5c44061bffd5eebeef58cecf68096e35003907d8201a4d0d6f6e387ccaa"}, - {file = "aiohttp-3.10.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d55f011da0a843c3d3df2c2cf4e537b8070a419f891c930245f05d329c4b0689"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:afe16a84498441d05e9189a15900640a2d2b5e76cf4efe8cbb088ab4f112ee57"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8112fb501b1e0567a1251a2fd0747baae60a4ab325a871e975b7bb67e59221f"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1e72589da4c90337837fdfe2026ae1952c0f4a6e793adbbfbdd40efed7c63599"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:4d46c7b4173415d8e583045fbc4daa48b40e31b19ce595b8d92cf639396c15d5"}, - {file = "aiohttp-3.10.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:33e6bc4bab477c772a541f76cd91e11ccb6d2efa2b8d7d7883591dfb523e5987"}, - {file = "aiohttp-3.10.5-cp313-cp313-win32.whl", hash = "sha256:c58c6837a2c2a7cf3133983e64173aec11f9c2cd8e87ec2fdc16ce727bcf1a04"}, - {file = "aiohttp-3.10.5-cp313-cp313-win_amd64.whl", hash = "sha256:38172a70005252b6893088c0f5e8a47d173df7cc2b2bd88650957eb84fcf5022"}, - {file = "aiohttp-3.10.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f6f18898ace4bcd2d41a122916475344a87f1dfdec626ecde9ee802a711bc569"}, - {file = "aiohttp-3.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5ede29d91a40ba22ac1b922ef510aab871652f6c88ef60b9dcdf773c6d32ad7a"}, - {file = "aiohttp-3.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:673f988370f5954df96cc31fd99c7312a3af0a97f09e407399f61583f30da9bc"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58718e181c56a3c02d25b09d4115eb02aafe1a732ce5714ab70326d9776457c3"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b38b1570242fbab8d86a84128fb5b5234a2f70c2e32f3070143a6d94bc854cf"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:074d1bff0163e107e97bd48cad9f928fa5a3eb4b9d33366137ffce08a63e37fe"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd31f176429cecbc1ba499d4aba31aaccfea488f418d60376b911269d3b883c5"}, - {file = "aiohttp-3.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7384d0b87d4635ec38db9263e6a3f1eb609e2e06087f0aa7f63b76833737b471"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8989f46f3d7ef79585e98fa991e6ded55d2f48ae56d2c9fa5e491a6e4effb589"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c83f7a107abb89a227d6c454c613e7606c12a42b9a4ca9c5d7dad25d47c776ae"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cde98f323d6bf161041e7627a5fd763f9fd829bcfcd089804a5fdce7bb6e1b7d"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:676f94c5480d8eefd97c0c7e3953315e4d8c2b71f3b49539beb2aa676c58272f"}, - {file = "aiohttp-3.10.5-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2d21ac12dc943c68135ff858c3a989f2194a709e6e10b4c8977d7fcd67dfd511"}, - {file = "aiohttp-3.10.5-cp38-cp38-win32.whl", hash = "sha256:17e997105bd1a260850272bfb50e2a328e029c941c2708170d9d978d5a30ad9a"}, - {file = "aiohttp-3.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:1c19de68896747a2aa6257ae4cf6ef59d73917a36a35ee9d0a6f48cff0f94db8"}, - {file = "aiohttp-3.10.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7e2fe37ac654032db1f3499fe56e77190282534810e2a8e833141a021faaab0e"}, - {file = "aiohttp-3.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5bf3ead3cb66ab990ee2561373b009db5bc0e857549b6c9ba84b20bc462e172"}, - {file = "aiohttp-3.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1b2c16a919d936ca87a3c5f0e43af12a89a3ce7ccbce59a2d6784caba945b68b"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad146dae5977c4dd435eb31373b3fe9b0b1bf26858c6fc452bf6af394067e10b"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c5c6fa16412b35999320f5c9690c0f554392dc222c04e559217e0f9ae244b92"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:95c4dc6f61d610bc0ee1edc6f29d993f10febfe5b76bb470b486d90bbece6b22"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da452c2c322e9ce0cfef392e469a26d63d42860f829026a63374fde6b5c5876f"}, - {file = "aiohttp-3.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:898715cf566ec2869d5cb4d5fb4be408964704c46c96b4be267442d265390f32"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:391cc3a9c1527e424c6865e087897e766a917f15dddb360174a70467572ac6ce"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:380f926b51b92d02a34119d072f178d80bbda334d1a7e10fa22d467a66e494db"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce91db90dbf37bb6fa0997f26574107e1b9d5ff939315247b7e615baa8ec313b"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9093a81e18c45227eebe4c16124ebf3e0d893830c6aca7cc310bfca8fe59d857"}, - {file = "aiohttp-3.10.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ee40b40aa753d844162dcc80d0fe256b87cba48ca0054f64e68000453caead11"}, - {file = "aiohttp-3.10.5-cp39-cp39-win32.whl", hash = "sha256:03f2645adbe17f274444953bdea69f8327e9d278d961d85657cb0d06864814c1"}, - {file = "aiohttp-3.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:d17920f18e6ee090bdd3d0bfffd769d9f2cb4c8ffde3eb203777a3895c128862"}, - {file = "aiohttp-3.10.5.tar.gz", hash = "sha256:f071854b47d39591ce9a17981c46790acb30518e2f83dfca8db2dfa091178691"}, + {file = "aiohttp-3.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7510b3ca2275691875ddf072a5b6cd129278d11fe09301add7d292fc8d3432de"}, + {file = "aiohttp-3.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bfab0d2c3380c588fc925168533edb21d3448ad76c3eadc360ff963019161724"}, + {file = "aiohttp-3.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf02dba0f342f3a8228f43fae256aafc21c4bc85bffcf537ce4582e2b1565188"}, + {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92daedf7221392e7a7984915ca1b0481a94c71457c2f82548414a41d65555e70"}, + {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2274a7876e03429e3218589a6d3611a194bdce08c3f1e19962e23370b47c0313"}, + {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a2e1eae2d2f62f3660a1591e16e543b2498358593a73b193006fb89ee37abc6"}, + {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:978ec3fb0a42efcd98aae608f58c6cfcececaf0a50b4e86ee3ea0d0a574ab73b"}, + {file = "aiohttp-3.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51f87b27d9219ed4e202ed8d6f1bb96f829e5eeff18db0d52f592af6de6bdbf"}, + {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:04d1a02a669d26e833c8099992c17f557e3b2fdb7960a0c455d7b1cbcb05121d"}, + {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3679d5fcbc7f1ab518ab4993f12f80afb63933f6afb21b9b272793d398303b98"}, + {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a4b24e03d04893b5c8ec9cd5f2f11dc9c8695c4e2416d2ac2ce6c782e4e5ffa5"}, + {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d9abdfd35ecff1c95f270b7606819a0e2de9e06fa86b15d9080de26594cf4c23"}, + {file = "aiohttp-3.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8b5c3e7928a0ad80887a5eba1c1da1830512ddfe7394d805badda45c03db3109"}, + {file = "aiohttp-3.11.6-cp310-cp310-win32.whl", hash = "sha256:913dd9e9378f3c38aeb5c4fb2b8383d6490bc43f3b427ae79f2870651ae08f22"}, + {file = "aiohttp-3.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:4ac26d482c2000c3a59bf757a77adc972828c9d4177b4bd432a46ba682ca7271"}, + {file = "aiohttp-3.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:26ac4c960ea8debf557357a172b3ef201f2236a462aefa1bc17683a75483e518"}, + {file = "aiohttp-3.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8b1f13ebc99fb98c7c13057b748f05224ccc36d17dee18136c695ef23faaf4ff"}, + {file = "aiohttp-3.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4679f1a47516189fab1774f7e45a6c7cac916224c91f5f94676f18d0b64ab134"}, + {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74491fdb3d140ff561ea2128cb7af9ba0a360067ee91074af899c9614f88a18f"}, + {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f51e1a90412d387e62aa2d243998c5eddb71373b199d811e6ed862a9f34f9758"}, + {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72ab89510511c3bb703d0bb5504787b11e0ed8be928ed2a7cf1cda9280628430"}, + {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6681c9e046d99646e8059266688374a063da85b2e4c0ebfa078cda414905d080"}, + {file = "aiohttp-3.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a17f8a6d3ab72cbbd137e494d1a23fbd3ea973db39587941f32901bb3c5c350"}, + {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:867affc7612a314b95f74d93aac550ce0909bc6f0b6c658cc856890f4d326542"}, + {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:00d894ebd609d5a423acef885bd61e7f6a972153f99c5b3ea45fc01fe909196c"}, + {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:614c87be9d0d64477d1e4b663bdc5d1534fc0a7ebd23fb08347ab9fd5fe20fd7"}, + {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:533ed46cf772f28f3bffae81c0573d916a64dee590b5dfaa3f3d11491da05b95"}, + {file = "aiohttp-3.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:589884cfbc09813afb1454816b45677e983442e146183143f988f7f5a040791a"}, + {file = "aiohttp-3.11.6-cp311-cp311-win32.whl", hash = "sha256:1da63633ba921669eec3d7e080459d4ceb663752b3dafb2f31f18edd248d2170"}, + {file = "aiohttp-3.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:d778ddda09622e7d83095cc8051698a0084c155a1474bfee9bac27d8613dbc31"}, + {file = "aiohttp-3.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:943a952df105a5305257984e7a1f5c2d0fd8564ff33647693c4d07eb2315446d"}, + {file = "aiohttp-3.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d24ec28b7658970a1f1d98608d67f88376c7e503d9d45ff2ba1949c09f2b358c"}, + {file = "aiohttp-3.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6720e809a660fdb9bec7c168c582e11cfedce339af0a5ca847a5d5b588dce826"}, + {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4252d30da0ada6e6841b325869c7ef5104b488e8dd57ec439892abbb8d7b3615"}, + {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f65f43ff01b238aa0b5c47962c83830a49577efe31bd37c1400c3d11d8a32835"}, + {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dc5933f6c9b26404444d36babb650664f984b8e5fa0694540e7b7315d11a4ff"}, + {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bf546ba0c029dfffc718c4b67748687fd4f341b07b7c8f1719d6a3a46164798"}, + {file = "aiohttp-3.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c351d05bbeae30c088009c0bb3b17dda04fd854f91cc6196c448349cc98f71c3"}, + {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:10499079b063576fad1597898de3f9c0a2ce617c19cc7cd6b62fdcff6b408bf7"}, + {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:442ee82eda47dd59798d6866ce020fb8d02ea31ac9ac82b3d719ed349e6a9d52"}, + {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:86fce9127bc317119b34786d9e9ae8af4508a103158828a535f56d201da6ab19"}, + {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:973d26a5537ce5d050302eb3cd876457451745b1da0624cbb483217970e12567"}, + {file = "aiohttp-3.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:532b8f038a4e001137d3600cea5d3439d1881df41bdf44d0f9651264d562fdf0"}, + {file = "aiohttp-3.11.6-cp312-cp312-win32.whl", hash = "sha256:4863c59f748dbe147da82b389931f2a676aebc9d3419813ed5ca32d057c9cb32"}, + {file = "aiohttp-3.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:5d7f481f82c18ac1f7986e31ba6eea9be8b2e2c86f1ef035b6866179b6c5dd68"}, + {file = "aiohttp-3.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:40f502350496ba4c6820816d3164f8a0297b9aa4e95d910da31beb189866a9df"}, + {file = "aiohttp-3.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9072669b0bffb40f1f6977d0b5e8a296edc964f9cefca3a18e68649c214d0ce3"}, + {file = "aiohttp-3.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:518160ecf4e6ffd61715bc9173da0925fcce44ae6c7ca3d3f098fe42585370fb"}, + {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69cc1b45115ac44795b63529aa5caa9674be057f11271f65474127b24fc1ce6"}, + {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6be90a6beced41653bda34afc891617c6d9e8276eef9c183f029f851f0a3c3d"}, + {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00c22fe2486308770d22ef86242101d7b0f1e1093ce178f2358f860e5149a551"}, + {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2607ebb783e3aeefa017ec8f34b506a727e6b6ab2c4b037d65f0bc7151f4430a"}, + {file = "aiohttp-3.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f761d6819870c2a8537f75f3e2fc610b163150cefa01f9f623945840f601b2c"}, + {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e44d1bc6c88f5234115011842219ba27698a5f2deee245c963b180080572aaa2"}, + {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7e0cb6a1b1f499cb2aa0bab1c9f2169ad6913c735b7447e058e0c29c9e51c0b5"}, + {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a76b4d4ca34254dca066acff2120811e2a8183997c135fcafa558280f2cc53f3"}, + {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:69051c1e45fb18c0ae4d39a075532ff0b015982e7997f19eb5932eb4a3e05c17"}, + {file = "aiohttp-3.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aff2ed18274c0bfe0c1d772781c87d5ca97ae50f439729007cec9644ee9b15fe"}, + {file = "aiohttp-3.11.6-cp313-cp313-win32.whl", hash = "sha256:2fbea25f2d44df809a46414a8baafa5f179d9dda7e60717f07bded56300589b3"}, + {file = "aiohttp-3.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:f77bc29a465c0f9f6573d1abe656d385fa673e34efe615bd4acc50899280ee47"}, + {file = "aiohttp-3.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:de6123b298d17bca9e53581f50a275b36e10d98e8137eb743ce69ee766dbdfe9"}, + {file = "aiohttp-3.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a10200f705f4fff00e148b7f41e5d1d929c7cd4ac523c659171a0ea8284cd6fb"}, + {file = "aiohttp-3.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b7776ef6901b54dd557128d96c71e412eec0c39ebc07567e405ac98737995aad"}, + {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e5c2a55583cd91936baf73d223807bb93ace6eb1fe54424782690f2707162ab"}, + {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b032bd6cf7422583bf44f233f4a1489fee53c6d35920123a208adc54e2aba41e"}, + {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fe2d99acbc5cf606f75d7347bf3a027c24c27bc052d470fb156f4cfcea5739"}, + {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84a79c366375c2250934d1238abe5d5ea7754c823a1c7df0c52bf0a2bfded6a9"}, + {file = "aiohttp-3.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c33cbbe97dc94a34d1295a7bb68f82727bcbff2b284f73ae7e58ecc05903da97"}, + {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:19e4fb9ac727834b003338dcdd27dcfe0de4fb44082b01b34ed0ab67c3469fc9"}, + {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a97f6b2afbe1d27220c0c14ea978e09fb4868f462ef3d56d810d206bd2e057a2"}, + {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c3f7afeea03a9bc49be6053dfd30809cd442cc12627d6ca08babd1c1f9e04ccf"}, + {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:0d10967600ce5bb69ddcb3e18d84b278efb5199d8b24c3c71a4959c2f08acfd0"}, + {file = "aiohttp-3.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:60f2f631b9fe7aa321fa0f0ff3f5d8b9f7f9b72afd4eecef61c33cf1cfea5d58"}, + {file = "aiohttp-3.11.6-cp39-cp39-win32.whl", hash = "sha256:4d2b75333deb5c5f61bac5a48bba3dbc142eebbd3947d98788b6ef9cc48628ae"}, + {file = "aiohttp-3.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:8908c235421972a2e02abcef87d16084aabfe825d14cc9a1debd609b3cfffbea"}, + {file = "aiohttp-3.11.6.tar.gz", hash = "sha256:fd9f55c1b51ae1c20a1afe7216a64a88d38afee063baa23c7fce03757023c999"}, ] [package.dependencies] aiohappyeyeballs = ">=2.3.0" aiosignal = ">=1.1.2" -async-timeout = {version = ">=4.0,<5.0", markers = "python_version < \"3.11\""} +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" -yarl = ">=1.0,<2.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" [package.extras] speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] [[package]] name = "aioresponses" -version = "0.7.6" +version = "0.7.7" description = "Mock out requests made by ClientSession from aiohttp package" optional = false python-versions = "*" files = [ - {file = "aioresponses-0.7.6-py2.py3-none-any.whl", hash = "sha256:d2c26defbb9b440ea2685ec132e90700907fd10bcca3e85ec2f157219f0d26f7"}, - {file = "aioresponses-0.7.6.tar.gz", hash = "sha256:f795d9dbda2d61774840e7e32f5366f45752d1adc1b74c9362afd017296c7ee1"}, + {file = "aioresponses-0.7.7-py2.py3-none-any.whl", hash = "sha256:6975f31fe5e7f2113a41bd387221f31854f285ecbc05527272cd8ba4c50764a3"}, + {file = "aioresponses-0.7.7.tar.gz", hash = "sha256:66292f1d5c94a3cb984f3336d806446042adb17347d3089f2d3962dd6e5ba55a"}, ] [package.dependencies] aiohttp = ">=3.3.0,<4.0.0" +packaging = ">=22.0" [[package]] name = "aiosignal" @@ -164,13 +151,13 @@ files = [ [[package]] name = "async-timeout" -version = "4.0.3" +version = "5.0.1" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, - {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, ] [[package]] @@ -219,133 +206,148 @@ coincurve = ">=15.0,<21" [[package]] name = "bitarray" -version = "2.9.2" +version = "3.0.0" description = "efficient arrays of booleans -- C extension" optional = false python-versions = "*" files = [ - {file = "bitarray-2.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:917905de565d9576eb20f53c797c15ba88b9f4f19728acabec8d01eee1d3756a"}, - {file = "bitarray-2.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b35bfcb08b7693ab4bf9059111a6e9f14e07d57ac93cd967c420db58ab9b71e1"}, - {file = "bitarray-2.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea1923d2e7880f9e1959e035da661767b5a2e16a45dfd57d6aa831e8b65ee1bf"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0b63a565e8a311cc8348ff1262d5784df0f79d64031d546411afd5dd7ef67d"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf0620da2b81946d28c0b16f3e3704d38e9837d85ee4f0652816e2609aaa4fed"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79a9b8b05f2876c7195a2b698c47528e86a73c61ea203394ff8e7a4434bda5c8"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:345c76b349ff145549652436235c5532e5bfe9db690db6f0a6ad301c62b9ef21"}, - {file = "bitarray-2.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e2936f090bf3f4d1771f44f9077ebccdbc0415d2b598d51a969afcb519df505"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f9346e98fc2abcef90b942973087e2462af6d3e3710e82938078d3493f7fef52"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e6ec283d4741befb86e8c3ea2e9ac1d17416c956d392107e45263e736954b1f7"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:962892646599529917ef26266091e4cb3077c88b93c3833a909d68dcc971c4e3"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e8da5355d7d75a52df5b84750989e34e39919ec7e59fafc4c104cc1607ab2d31"}, - {file = "bitarray-2.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:603e7d640e54ad764d2b4da6b61e126259af84f253a20f512dd10689566e5478"}, - {file = "bitarray-2.9.2-cp310-cp310-win32.whl", hash = "sha256:f00079f8e69d75c2a417de7961a77612bb77ef46c09bc74607d86de4740771ef"}, - {file = "bitarray-2.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:1bb33673e7f7190a65f0a940c1ef63266abdb391f4a3e544a47542d40a81f536"}, - {file = "bitarray-2.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fe71fd4b76380c2772f96f1e53a524da7063645d647a4fcd3b651bdd80ca0f2e"}, - {file = "bitarray-2.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d527172919cdea1e13994a66d9708a80c3d33dedcf2f0548e4925e600fef3a3a"}, - {file = "bitarray-2.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:052c5073bdcaa9dd10628d99d37a2f33ec09364b86dd1f6281e2d9f8d3db3060"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e064caa55a6ed493aca1eda06f8b3f689778bc780a75e6ad7724642ba5dc62f7"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:508069a04f658210fdeee85a7a0ca84db4bcc110cbb1d21f692caa13210f24a7"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4da73ebd537d75fa7bccfc2228fcaedea0803f21dd9d0bf0d3b67fef3c4af294"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cb378eaa65cd43098f11ff5d27e48ee3b956d2c00d2d6b5bfc2a09fe183be47"}, - {file = "bitarray-2.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d14c790b91f6cbcd9b718f88ed737c78939980c69ac8c7f03dd7e60040c12951"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eea9318293bc0ea6447e9ebfba600a62f3428bea7e9c6d42170ae4f481dbab3"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b76ffec27c7450b8a334f967366a9ebadaea66ee43f5b530c12861b1a991f503"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:76b76a07d4ee611405045c6950a1e24c4362b6b44808d4ad6eea75e0dbc59af4"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:c7d16beeaaab15b075990cd26963d6b5b22e8c5becd131781514a00b8bdd04bd"}, - {file = "bitarray-2.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60df43e868a615c7e15117a1e1c2e5e11f48f6457280eba6ddf8fbefbec7da99"}, - {file = "bitarray-2.9.2-cp311-cp311-win32.whl", hash = "sha256:e788608ed7767b7b3bbde6d49058bccdf94df0de9ca75d13aa99020cc7e68095"}, - {file = "bitarray-2.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:a23397da092ef0a8cfe729571da64c2fc30ac18243caa82ac7c4f965087506ff"}, - {file = "bitarray-2.9.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:90e3a281ffe3897991091b7c46fca38c2675bfd4399ffe79dfeded6c52715436"}, - {file = "bitarray-2.9.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bed637b674db5e6c8a97a4a321e3e4d73e72d50b5c6b29950008a93069cc64cd"}, - {file = "bitarray-2.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e49066d251dbbe4e6e3a5c3937d85b589e40e2669ad0eef41a00f82ec17d844b"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4344e96642e2211fb3a50558feff682c31563a4c64529a931769d40832ca79"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aeb60962ec4813c539a59fbd4f383509c7222b62c3fb1faa76b54943a613e33a"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed0f7982f10581bb16553719e5e8f933e003f5b22f7d25a68bdb30fac630a6ff"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c71d1cabdeee0cdda4669168618f0e46b7dace207b29da7b63aaa1adc2b54081"}, - {file = "bitarray-2.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0ef2d0a6f1502d38d911d25609b44c6cc27bee0a4363dd295df78b075041b60"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6f71d92f533770fb027388b35b6e11988ab89242b883f48a6fe7202d238c61f8"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ba0734aa300757c924f3faf8148e1b8c247176a0ac8e16aefdf9c1eb19e868f7"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:d91406f413ccbf4af6ab5ae7bc78f772a95609f9ddd14123db36ef8c37116d95"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:87abb7f80c0a042f3fe8e5264da1a2756267450bb602110d5327b8eaff7682e7"}, - {file = "bitarray-2.9.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b558ce85579b51a2e38703877d1e93b7728a7af664dd45a34e833534f0b755d"}, - {file = "bitarray-2.9.2-cp312-cp312-win32.whl", hash = "sha256:dac2399ee2889fbdd3472bfc2ede74c34cceb1ccf29a339964281a16eb1d3188"}, - {file = "bitarray-2.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:48a30d718d1a6dfc22a49547450107abe8f4afdf2abdcbe76eb9ed88edc49498"}, - {file = "bitarray-2.9.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2c6be1b651fad8f3adb7a5aa12c65b612cd9b89530969af941844ae680f7d981"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5b399ae6ab975257ec359f03b48fc00b1c1cd109471e41903548469b8feae5c"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0b3543c8a1cb286ad105f11c25d8d0f712f41c5c55f90be39f0e5a1376c7d0b0"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:03adaacb79e2fb8f483ab3a67665eec53bb3fd0cd5dbd7358741aef124688db3"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae5b0657380d2581e13e46864d147a52c1e2bbac9f59b59c576e42fa7d10cf0"}, - {file = "bitarray-2.9.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c1f4bf6ea8eb9d7f30808c2e9894237a96650adfecbf5f3643862dc5982f89e"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a8873089be2aa15494c0f81af1209f6e1237d762c5065bc4766c1b84321e1b50"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:677e67f50e2559efc677a4366707070933ad5418b8347a603a49a070890b19bc"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:a620d8ce4ea2f1c73c6b6b1399e14cb68c6915e2be3fad5808c2998ed55b4acf"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:64115ccabbdbe279c24c367b629c6b1d3da9ed36c7420129e27c338a3971bfee"}, - {file = "bitarray-2.9.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:5d6fb422772e75385b76ad1c52f45a68bd4efafd8be8d0061c11877be74c4d43"}, - {file = "bitarray-2.9.2-cp36-cp36m-win32.whl", hash = "sha256:852e202875dd6dfd6139ce7ec4e98dac2b17d8d25934dc99900831e81c3adaef"}, - {file = "bitarray-2.9.2-cp36-cp36m-win_amd64.whl", hash = "sha256:7dfefdcb0dc6a3ba9936063cec65a74595571b375beabe18742b3d91d087eefd"}, - {file = "bitarray-2.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b306c4cf66912511422060f7f5e1149c8bdb404f8e00e600561b0749fdd45659"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a09c4f81635408e3387348f415521d4b94198c562c23330f560596a6aaa26eaf"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5361413fd2ecfdf44dc8f065177dc6aba97fa80a91b815586cb388763acf7f8d"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e8a9475d415ef1eaae7942df6f780fa4dcd48fce32825eda591a17abba869299"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9b87baa7bfff9a5878fcc1bffe49ecde6e647a72a64b39a69cd8a2992a43a34"}, - {file = "bitarray-2.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb6b86cfdfc503e92cb71c68766a24565359136961642504a7cc9faf936d9c88"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cd56b8ae87ebc71bcacbd73615098e8a8de952ecbb5785b6b4e2b07da8a06e1f"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3fa909cfd675004aed8b4cc9df352415933656e0155a6209d878b7cb615c787e"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b069ca9bf728e0c5c5b60e00a89df9af34cc170c695c3bfa3b372d8f40288efb"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:6067f2f07a7121749858c7daa93c8774325c91590b3e81a299621e347740c2ae"}, - {file = "bitarray-2.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:321841cdad1dd0f58fe62e80e9c9c7531f8ebf8be93f047401e930dc47425b1e"}, - {file = "bitarray-2.9.2-cp37-cp37m-win32.whl", hash = "sha256:54e16e32e60973bb83c315de9975bc1bcfc9bd50bb13001c31da159bc49b0ca1"}, - {file = "bitarray-2.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:f4dcadb7b8034aa3491ee8f5a69b3d9ba9d7d1e55c3cc1fc45be313e708277f8"}, - {file = "bitarray-2.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c8919fdbd3bb596b104388b56ae4b266eb28da1f2f7dff2e1f9334a21840fe96"}, - {file = "bitarray-2.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eb7a9d8a2e400a1026de341ad48e21670a6261a75b06df162c5c39b0d0e7c8f4"}, - {file = "bitarray-2.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6ec84668dd7b937874a2b2c293cd14ba84f37be0d196dead852e0ada9815d807"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2de9a31c34e543ae089fd2a5ced01292f725190e379921384f695e2d7184bd3"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9521f49ae121a17c0a41e5112249e6fa7f6a571245b1118de81fb86e7c1bc1ce"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6cc6545d6d76542aee3d18c1c9485fb7b9812b8df4ebe52c4535ec42081b48f"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:856bbe1616425f71c0df5ef2e8755e878d9504d5a531acba58ab4273c52c117a"}, - {file = "bitarray-2.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4bba8042ea6ab331ade91bc435d81ad72fddb098e49108610b0ce7780c14e68"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a035da89c959d98afc813e3c62f052690d67cfd55a36592f25d734b70de7d4b0"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6d70b1579da7fb71be5a841a1f965d19aca0ef27f629cfc07d06b09aafd0a333"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:405b83bed28efaae6d86b6ab287c75712ead0adbfab2a1075a1b7ab47dad4d62"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7eb8be687c50da0b397d5e0ab7ca200b5ebb639e79a9f5e285851d1944c94be9"}, - {file = "bitarray-2.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eceb551dfeaf19c609003a69a0cf8264b0efd7abc3791a11dfabf4788daf0d19"}, - {file = "bitarray-2.9.2-cp38-cp38-win32.whl", hash = "sha256:bb198c6ed1edbcdaf3d1fa3c9c9d1cdb7e179a5134ef5ee660b53cdec43b34e7"}, - {file = "bitarray-2.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:648d2f2685590b0103c67a937c2fb9e09bcc8dfb166f0c7c77bd341902a6f5b3"}, - {file = "bitarray-2.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ea816dc8f8e65841a8bbdd30e921edffeeb6f76efe6a1eb0da147b60d539d1cf"}, - {file = "bitarray-2.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4d0e32530f941c41eddfc77600ec89b65184cb909c549336463a738fab3ed285"}, - {file = "bitarray-2.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4a22266fb416a3b6c258bf7f83c9fe531ba0b755a56986a81ad69dc0f3bcc070"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc6d3e80dd8239850f2604833ff3168b28909c8a9357abfed95632cccd17e3e7"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f135e804986b12bf14f2cd1eb86674c47dea86c4c5f0fa13c88978876b97ebe6"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87580c7f7d14f7ec401eda7adac1e2a25e95153e9c339872c8ae61b3208819a1"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64b433e26993127732ac7b66a7821b2537c3044355798de7c5fcb0af34b8296f"}, - {file = "bitarray-2.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e497c535f2a9b68c69d36631bf2dba243e05eb343b00b9c7bbdc8c601c6802d"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e40b3cb9fa1edb4e0175d7c06345c49c7925fe93e39ef55ecb0bc40c906b0c09"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f2f8692f95c9e377eb19ca519d30d1f884b02feb7e115f798de47570a359e43f"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f0b84fc50b6dbeced4fa390688c07c10a73222810fb0e08392bd1a1b8259de36"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d656ad38c942e38a470ddbce26b5020e08e1a7ea86b8fd413bb9024b5189993a"}, - {file = "bitarray-2.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6ab0f1dbfe5070db98771a56aa14797595acd45a1af9eadfb193851a270e7996"}, - {file = "bitarray-2.9.2-cp39-cp39-win32.whl", hash = "sha256:0a99b23ac845a9ea3157782c97465e6ae026fe0c7c4c1ed1d88f759fd6ea52d9"}, - {file = "bitarray-2.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:9bbcfc7c279e8d74b076e514e669b683f77b4a2a328585b3f16d4c5259c91222"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:43847799461d8ba71deb4d97b47250c2c2fb66d82cd3cb8b4caf52bb97c03034"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4f44381b0a4bdf64416082f4f0e7140377ae962c0ced6f983c6d7bbfc034040"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a484061616fb4b158b80789bd3cb511f399d2116525a8b29b6334c68abc2310f"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ff9e38356cc803e06134cf8ae9758e836ccd1b793135ef3db53c7c5d71e93bc"}, - {file = "bitarray-2.9.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b44105792fbdcfbda3e26ee88786790fda409da4c71f6c2b73888108cf8f062f"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7e913098de169c7fc890638ce5e171387363eb812579e637c44261460ac00aa2"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6fe315355cdfe3ed22ef355b8bdc81a805ca4d0949d921576560e5b227a1112"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f708e91fdbe443f3bec2df394ed42328fb9b0446dff5cb4199023ac6499e09fd"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b7b09489b71f9f1f64c0fa0977e250ec24500767dab7383ba9912495849cadf"}, - {file = "bitarray-2.9.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:128cc3488176145b9b137fdcf54c1c201809bbb8dd30b260ee40afe915843b43"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:21f21e7f56206be346bdbda2a6bdb2165a5e6a11821f88fd4911c5a6bbbdc7e2"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f4dd3af86dd8a617eb6464622fb64ca86e61ce99b59b5c35d8cd33f9c30603d"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6465de861aff7a2559f226b37982007417eab8c3557543879987f58b453519bd"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbaf2bb71d6027152d603f1d5f31e0dfd5e50173d06f877bec484e5396d4594b"}, - {file = "bitarray-2.9.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2f32948c86e0d230a296686db28191b67ed229756f84728847daa0c7ab7406e3"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be94e5a685e60f9d24532af8fe5c268002e9016fa80272a94727f435de3d1003"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5cc9381fd54f3c23ae1039f977bfd6d041a5c3c1518104f616643c3a5a73b15"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd926e8ae4d1ed1ac4a8f37212a62886292f692bc1739fde98013bf210c2d175"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:461a3dafb9d5fda0bb3385dc507d78b1984b49da3fe4c6d56c869a54373b7008"}, - {file = "bitarray-2.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:393cb27fd859af5fd9c16eb26b1c59b17b390ff66b3ae5d0dd258270191baf13"}, - {file = "bitarray-2.9.2.tar.gz", hash = "sha256:a8f286a51a32323715d77755ed959f94bef13972e9a2fe71b609e40e6d27957e"}, + {file = "bitarray-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5ddbf71a97ad1d6252e6e93d2d703b624d0a5b77c153b12f9ea87d83e1250e0c"}, + {file = "bitarray-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0e7f24a0b01e6e6a0191c50b06ca8edfdec1988d9d2b264d669d2487f4f4680"}, + {file = "bitarray-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:150b7b29c36d9f1a24779aea723fdfc73d1c1c161dc0ea14990da27d4e947092"}, + {file = "bitarray-3.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8330912be6cb8e2fbfe8eb69f82dee139d605730cadf8d50882103af9ac83bb4"}, + {file = "bitarray-3.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e56ba8be5f17dee0ffa6d6ce85251e062ded2faa3cbd2558659c671e6c3bf96d"}, + {file = "bitarray-3.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd94b4803811c738e504a4b499fb2f848b2f7412d71e6b517508217c1d7929d"}, + {file = "bitarray-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0255bd05ec7165e512c115423a5255a3f301417973d20a80fc5bfc3f3640bcb"}, + {file = "bitarray-3.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe606e728842389943a939258809dc5db2de831b1d2e0118515059e87f7bbc1a"}, + {file = "bitarray-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e89ea59a3ed86a6eb150d016ed28b1bedf892802d0ed32b5659d3199440f3ced"}, + {file = "bitarray-3.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cf0cc2e91dd38122dec2e6541efa99aafb0a62e118179218181eff720b4b8153"}, + {file = "bitarray-3.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:2d9fe3ee51afeb909b68f97e14c6539ace3f4faa99b21012e610bbe7315c388d"}, + {file = "bitarray-3.0.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:37be5482b9df3105bad00fdf7dc65244e449b130867c3879c9db1db7d72e508b"}, + {file = "bitarray-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0027b8f3bb2bba914c79115e96a59b9924aafa1a578223a7c4f0a7242d349842"}, + {file = "bitarray-3.0.0-cp310-cp310-win32.whl", hash = "sha256:628f93e9c2c23930bd1cfe21c634d6c84ec30f45f23e69aefe1fcd262186d7bb"}, + {file = "bitarray-3.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:0b655c3110e315219e266b2732609fddb0857bc69593de29f3c2ba74b7d3f51a"}, + {file = "bitarray-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:44c3e78b60070389b824d5a654afa1c893df723153c81904088d4922c3cfb6ac"}, + {file = "bitarray-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:545d36332de81e4742a845a80df89530ff193213a50b4cbef937ed5a44c0e5e5"}, + {file = "bitarray-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8a9eb510cde3fa78c2e302bece510bf5ed494ec40e6b082dec753d6e22d5d1b1"}, + {file = "bitarray-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e3727ab63dfb6bde00b281934e2212bb7529ea3006c0031a556a84d2268bea5"}, + {file = "bitarray-3.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2055206ed653bee0b56628f6a4d248d53e5660228d355bbec0014bdfa27050ae"}, + {file = "bitarray-3.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:147542299f458bdb177f798726e5f7d39ab8491de4182c3c6d9885ed275a3c2b"}, + {file = "bitarray-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f761184b93092077c7f6b7dad7bd4e671c1620404a76620da7872ceb576a94"}, + {file = "bitarray-3.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e008b7b4ce6c7f7a54b250c45c28d4243cc2a3bbfd5298fa7dac92afda229842"}, + {file = "bitarray-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dfea514e665af278b2e1d4deb542de1cd4f77413bee83dd15ae16175976ea8d5"}, + {file = "bitarray-3.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:66d6134b7bb737b88f1d16478ad0927c571387f6054f4afa5557825a4c1b78e2"}, + {file = "bitarray-3.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3cd565253889940b4ec4768d24f101d9fe111cad4606fdb203ea16f9797cf9ed"}, + {file = "bitarray-3.0.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:4800c91a14656789d2e67d9513359e23e8a534c8ee1482bb9b517a4cfc845200"}, + {file = "bitarray-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c2945e0390d1329c585c584c6b6d78be017d9c6a1288f9c92006fe907f69cc28"}, + {file = "bitarray-3.0.0-cp311-cp311-win32.whl", hash = "sha256:c23286abba0cb509733c6ce8f4013cd951672c332b2e184dbefbd7331cd234c8"}, + {file = "bitarray-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ca79f02a98cbda1472449d440592a2fe2ad96fe55515a0447fa8864a38017cf8"}, + {file = "bitarray-3.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:184972c96e1c7e691be60c3792ca1a51dd22b7f25d96ebea502fe3c9b554f25d"}, + {file = "bitarray-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:787db8da5e9e29be712f7a6bce153c7bc8697ccc2c38633e347bb9c82475d5c9"}, + {file = "bitarray-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2da91ab3633c66999c2a352f0ca9ae064f553e5fc0eca231d28e7e305b83e942"}, + {file = "bitarray-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7edb83089acbf2c86c8002b96599071931dc4ea5e1513e08306f6f7df879a48b"}, + {file = "bitarray-3.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996d1b83eb904589f40974538223eaed1ab0f62be8a5105c280b9bd849e685c4"}, + {file = "bitarray-3.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4817d73d995bd2b977d9cde6050be8d407791cf1f84c8047fa0bea88c1b815bc"}, + {file = "bitarray-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d47bc4ff9b0e1624d613563c6fa7b80aebe7863c56c3df5ab238bb7134e8755"}, + {file = "bitarray-3.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aca0a9cd376beaccd9f504961de83e776dd209c2de5a4c78dc87a78edf61839b"}, + {file = "bitarray-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:572a61fba7e3a710a8324771322fba8488d134034d349dcd036a7aef74723a80"}, + {file = "bitarray-3.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a817ad70c1aff217530576b4f037dd9b539eb2926603354fcac605d824082ad1"}, + {file = "bitarray-3.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2ac67b658fa5426503e9581a3fb44a26a3b346c1abd17105735f07db572195b3"}, + {file = "bitarray-3.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:12f19ede03e685c5c588ab5ed63167999295ffab5e1126c5fe97d12c0718c18f"}, + {file = "bitarray-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fcef31b062f756ba7eebcd7890c5d5de84b9d64ee877325257bcc9782288564a"}, + {file = "bitarray-3.0.0-cp312-cp312-win32.whl", hash = "sha256:656db7bdf1d81ec3b57b3cad7ec7276765964bcfd0eb81c5d1331f385298169c"}, + {file = "bitarray-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f785af6b7cb07a9b1e5db0dea9ef9e3e8bb3d74874a0a61303eab9c16acc1999"}, + {file = "bitarray-3.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7cb885c043000924554fe2124d13084c8fdae03aec52c4086915cd4cb87fe8be"}, + {file = "bitarray-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7814c9924a0b30ecd401f02f082d8697fc5a5be3f8d407efa6e34531ff3c306a"}, + {file = "bitarray-3.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bcf524a087b143ba736aebbb054bb399d49e77cf7c04ed24c728e411adc82bfa"}, + {file = "bitarray-3.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1d5abf1d6d910599ac16afdd9a0ed3e24f3b46af57f3070cf2792f236f36e0b"}, + {file = "bitarray-3.0.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9929051feeaf8d948cc0b1c9ce57748079a941a1a15c89f6014edf18adaade84"}, + {file = "bitarray-3.0.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96cf0898f8060b2d3ae491762ae871b071212ded97ff9e1e3a5229e9fefe544c"}, + {file = "bitarray-3.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab37da66a8736ad5a75a58034180e92c41e864da0152b84e71fcc253a2f69cd4"}, + {file = "bitarray-3.0.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeb79e476d19b91fd6a3439853e4e5ba1b3b475920fa40d62bde719c8af786f"}, + {file = "bitarray-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f75fc0198c955d840b836059bd43e0993edbf119923029ca60c4fc017cefa54a"}, + {file = "bitarray-3.0.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f12cc7c7638074918cdcc7491aff897df921b092ffd877227892d2686e98f876"}, + {file = "bitarray-3.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dbe1084935b942fab206e609fa1ed3f46ad1f2612fb4833e177e9b2a5e006c96"}, + {file = "bitarray-3.0.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ac06dd72ee1e1b6e312504d06f75220b5894af1fb58f0c20643698f5122aea76"}, + {file = "bitarray-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:00f9a88c56e373009ac3c73c55205cfbd9683fbd247e2f9a64bae3da78795252"}, + {file = "bitarray-3.0.0-cp313-cp313-win32.whl", hash = "sha256:9c6e52005e91803eb4e08c0a08a481fb55ddce97f926bae1f6fa61b3396b5b61"}, + {file = "bitarray-3.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:cb98d5b6eac4b2cf2a5a69f60a9c499844b8bea207059e9fc45c752436e6bb49"}, + {file = "bitarray-3.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:eb27c01b747649afd7e1c342961680893df6d8d81f832a6f04d8c8e03a8a54cc"}, + {file = "bitarray-3.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4683bff52f5a0fd523fb5d3138161ef87611e63968e1fcb6cf4b0c6a86970fe0"}, + {file = "bitarray-3.0.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb7302dbcfcb676f0b66f15891f091d0233c4fc23e1d4b9dc9b9e958156e347f"}, + {file = "bitarray-3.0.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:153d7c416a70951dcfa73487af05d2f49c632e95602f1620cd9a651fa2033695"}, + {file = "bitarray-3.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251cd5bd47f542893b2b61860eded54f34920ea47fd5bff038d85e7a2f7ae99b"}, + {file = "bitarray-3.0.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fa4b4d9fa90124b33b251ef74e44e737021f253dc7a9174e1b39f097451f7ca"}, + {file = "bitarray-3.0.0-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:18abdce7ab5d2104437c39670821cba0b32fdb9b2da9e6d17a4ff295362bd9dc"}, + {file = "bitarray-3.0.0-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:2855cc01ee370f7e6e3ec97eebe44b1453c83fb35080313145e2c8c3c5243afb"}, + {file = "bitarray-3.0.0-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:0cecaf2981c9cd2054547f651537b4f4939f9fe225d3fc2b77324b597c124e40"}, + {file = "bitarray-3.0.0-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:22b00f65193fafb13aa644e16012c8b49e7d5cbb6bb72825105ff89aadaa01e3"}, + {file = "bitarray-3.0.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:20f30373f0af9cb583e4122348cefde93c82865dbcbccc4997108b3d575ece84"}, + {file = "bitarray-3.0.0-cp36-cp36m-win32.whl", hash = "sha256:aef404d5400d95c6ec86664df9924bde667c8865f8e33c9b7bd79823d53b3e5d"}, + {file = "bitarray-3.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:ec5b0f2d13da53e0975ac15ecbe8badb463bdb0bebaa09457f4df3320421915c"}, + {file = "bitarray-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:041c889e69c847b8a96346650e50f728b747ae176889199c49a3f31ae1de0e23"}, + {file = "bitarray-3.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc83ea003dd75e9ade3291ef0585577dd5524aec0c8c99305c0aaa2a7570d6db"}, + {file = "bitarray-3.0.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c33129b49196aa7965ac0f16fcde7b6ad8614b606caf01669a0277cef1afe1d"}, + {file = "bitarray-3.0.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ef5c787c8263c082a73219a69eb60a500e157a4ac69d1b8515ad836b0e71fb4"}, + {file = "bitarray-3.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e15c94d79810c5ab90ddf4d943f71f14332890417be896ca253f21fa3d78d2b1"}, + {file = "bitarray-3.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7cd021ada988e73d649289cee00428b75564c46d55fbdcb0e3402e504b0ae5ea"}, + {file = "bitarray-3.0.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7f1c24be7519f16a47b7e2ad1a1ef73023d34d8cbe1a3a59b185fc14baabb132"}, + {file = "bitarray-3.0.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:000df24c183011b5d27c23d79970f49b6762e5bb5aacd25da9c3e9695c693222"}, + {file = "bitarray-3.0.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:42bf1b222c698b467097f58b9f59dc850dfa694dde4e08237407a6a103757aa3"}, + {file = "bitarray-3.0.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:648e7ce794928e8d11343b5da8ecc5b910af75a82ea1a4264d5d0a55c3785faa"}, + {file = "bitarray-3.0.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:f536fc4d1a683025f9caef0bebeafd60384054579ffe0825bb9bd8c59f8c55b8"}, + {file = "bitarray-3.0.0-cp37-cp37m-win32.whl", hash = "sha256:a754c1464e7b946b1cac7300c582c6fba7d66e535cd1dab76d998ad285ac5a37"}, + {file = "bitarray-3.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e91d46d12781a14ccb8b284566b14933de4e3b29f8bc5e1c17de7a2001ad3b5b"}, + {file = "bitarray-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:904c1d5e3bd24f0c0d37a582d2461312033c91436a6a4f3bdeeceb4bea4a899d"}, + {file = "bitarray-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:47ccf9887bd595d4a0536f2310f0dcf89e17ab83b8befa7dc8727b8017120fda"}, + {file = "bitarray-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:71ad0139c95c9acf4fb62e203b428f9906157b15eecf3f30dc10b55919225896"}, + {file = "bitarray-3.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e002ac1073ac70e323a7a4bfa9ab95e7e1a85c79160799e265563f342b1557"}, + {file = "bitarray-3.0.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acc07211a59e2f245e9a06f28fa374d094fb0e71cf5366eef52abbb826ddc81e"}, + {file = "bitarray-3.0.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98a4070ddafabddaee70b2aa7cc6286cf73c37984169ab03af1782da2351059a"}, + {file = "bitarray-3.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7d09ef06ba57bea646144c29764bf6b870fb3c5558ca098191e07b6a1d40bf7"}, + {file = "bitarray-3.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce249ed981f428a8b61538ca82d3875847733d579dd40084ab8246549160f8a4"}, + {file = "bitarray-3.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea40e98d751ed4b255db4a88fe8fb743374183f78470b9e9305aab186bf28ede"}, + {file = "bitarray-3.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:928b8b6dfcd015e1a81334cfdac02815da2a2407854492a80cf8a3a922b04052"}, + {file = "bitarray-3.0.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:fbb645477595ce2a0fbb678d1cfd08d3b896e5d56196d40fb9e114eeab9382b3"}, + {file = "bitarray-3.0.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:dc1937a0ff2671797d35243db4b596329842480d125a65e9fe964bcffaf16dfc"}, + {file = "bitarray-3.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a4f49ac31734fe654a68e2515c0da7f5bbdf2d52755ba09a42ac406f1f08c9d0"}, + {file = "bitarray-3.0.0-cp38-cp38-win32.whl", hash = "sha256:6d2a2ce73f9897268f58857ad6893a1a6680c5a6b28f79d21c7d33285a5ae646"}, + {file = "bitarray-3.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:b1047999f1797c3ea7b7c85261649249c243308dcf3632840d076d18fa72f142"}, + {file = "bitarray-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:39b38a3d45dac39d528c87b700b81dfd5e8dc8e9e1a102503336310ef837c3fd"}, + {file = "bitarray-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0e104f9399144fab6a892d379ba1bb4275e56272eb465059beef52a77b4e5ce6"}, + {file = "bitarray-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0879f839ec8f079fa60c3255966c2e1aa7196699a234d4e5b7898fbc321901b5"}, + {file = "bitarray-3.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9502c2230d59a4ace2fddfd770dad8e8b414cbd99517e7e56c55c20997c28b8d"}, + {file = "bitarray-3.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57d5ef854f8ec434f2ffd9ddcefc25a10848393fe2976e2be2c8c773cf5fef42"}, + {file = "bitarray-3.0.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3c36b2fcfebe15ad1c10a90c1d52a42bebe960adcbce340fef867203028fbe7"}, + {file = "bitarray-3.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66a33a537e781eac3a352397ce6b07eedf3a8380ef4a804f8844f3f45e335544"}, + {file = "bitarray-3.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa54c7e1da8cf4be0aab941ea284ec64033ede5d6de3fd47d75e77cafe986e9d"}, + {file = "bitarray-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a667ea05ba1ea81b722682276dbef1d36990f8908cf51e570099fd505a89f931"}, + {file = "bitarray-3.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d756bfeb62ca4fe65d2af7a39249d442c05070c047d03729ad6cd4c2e9b0f0bd"}, + {file = "bitarray-3.0.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c9e9fef0754867d88e948ce8351c9fd7e507d8514e0f242fd67c907b9cdf98b3"}, + {file = "bitarray-3.0.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:67a0b56dd02f2713f6f52cacb3f251afd67c94c5f0748026d307d87a81a8e15c"}, + {file = "bitarray-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d8c36ddc1923bcc4c11b9994c54eaae25034812a42400b7b8a86fe6d242166a2"}, + {file = "bitarray-3.0.0-cp39-cp39-win32.whl", hash = "sha256:1414a7102a3c4986f241480544f5c99f5d32258fb9b85c9c04e84e48c490ab35"}, + {file = "bitarray-3.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:8c9733d2ff9b7838ac04bf1048baea153174753e6a47312be14c83c6a395424b"}, + {file = "bitarray-3.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fef4e3b3f2084b4dae3e5316b44cda72587dcc81f68b4eb2dbda1b8d15261b61"}, + {file = "bitarray-3.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e9eee03f187cef1e54a4545124109ee0afc84398628b4b32ebb4852b4a66393"}, + {file = "bitarray-3.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cb5702dd667f4bb10fed056ffdc4ddaae8193a52cd74cb2cdb54e71f4ef2dd1"}, + {file = "bitarray-3.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:666e44b0458bb2894b64264a29f2cc7b5b2cbcc4c5e9cedfe1fdbde37a8e329a"}, + {file = "bitarray-3.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c756a92cf1c1abf01e56a4cc40cb89f0ff9147f2a0be5b557ec436a23ff464d8"}, + {file = "bitarray-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7e51e7f8289bf6bb631e1ef2a8f5e9ca287985ff518fe666abbdfdb6a848cb26"}, + {file = "bitarray-3.0.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fa5d8e4b28388b337face6ce4029be73585651a44866901513df44be9a491ab"}, + {file = "bitarray-3.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3963b80a68aedcd722a9978d261ae53cb9bb6a8129cc29790f0f10ce5aca287a"}, + {file = "bitarray-3.0.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b555006a7dea53f6bebc616a4d0249cecbf8f1fadf77860120a2e5dbdc2f167"}, + {file = "bitarray-3.0.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:4ac2027ca650a7302864ed2528220d6cc6921501b383e9917afc7a2424a1e36d"}, + {file = "bitarray-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bf90aba4cff9e72e24ecdefe33bad608f147a23fa5c97790a5bab0e72fe62b6d"}, + {file = "bitarray-3.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a199e6d7c3bad5ba9d0e4dc00dde70ee7d111c9dfc521247fa646ef59fa57e"}, + {file = "bitarray-3.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43b6c7c4f4a7b80e86e24a76f4c6b9b67d03229ea16d7d403520616535c32196"}, + {file = "bitarray-3.0.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34fc13da3518f14825b239374734fce93c1a9299ed7b558c3ec1d659ec7e4c70"}, + {file = "bitarray-3.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:369b6d457af94af901d632c7e625ca6caf0a7484110fc91c6290ce26bc4f1478"}, + {file = "bitarray-3.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ee040ad3b7dfa05e459713099f16373c1f2a6f68b43cb0575a66718e7a5daef4"}, + {file = "bitarray-3.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dad7ba2af80f9ec1dd988c3aca7992408ec0d0b4c215b65d353d95ab0070b10"}, + {file = "bitarray-3.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4839d3b64af51e4b8bb4a602563b98b9faeb34fd6c00ed23d7834e40a9d080fc"}, + {file = "bitarray-3.0.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f71f24b58e75a889b9915e3197865302467f13e7390efdea5b6afc7424b3a2ea"}, + {file = "bitarray-3.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bcf0150ae0bcc4aa97bdfcb231b37bad1a59083c1b5012643b266012bf420e68"}, + {file = "bitarray-3.0.0.tar.gz", hash = "sha256:a2083dc20f0d828a7cdf7a16b20dae56aab0f43dc4f347a3b3039f6577992b03"}, ] [[package]] @@ -497,101 +499,116 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.3.2" +version = "3.4.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, ] [[package]] @@ -781,83 +798,73 @@ files = [ [[package]] name = "coverage" -version = "7.6.1" +version = "7.6.7" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, - {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, - {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, - {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, - {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, - {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, - {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, - {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, - {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, - {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, - {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, - {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, - {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, - {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, - {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, - {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, - {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, - {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, + {file = "coverage-7.6.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:108bb458827765d538abcbf8288599fee07d2743357bdd9b9dad456c287e121e"}, + {file = "coverage-7.6.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c973b2fe4dc445cb865ab369df7521df9c27bf40715c837a113edaa2aa9faf45"}, + {file = "coverage-7.6.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c6b24007c4bcd0b19fac25763a7cac5035c735ae017e9a349b927cfc88f31c1"}, + {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acbb8af78f8f91b3b51f58f288c0994ba63c646bc1a8a22ad072e4e7e0a49f1c"}, + {file = "coverage-7.6.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad32a981bcdedb8d2ace03b05e4fd8dace8901eec64a532b00b15217d3677dd2"}, + {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:34d23e28ccb26236718a3a78ba72744212aa383141961dd6825f6595005c8b06"}, + {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e25bacb53a8c7325e34d45dddd2f2fbae0dbc230d0e2642e264a64e17322a777"}, + {file = "coverage-7.6.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af05bbba896c4472a29408455fe31b3797b4d8648ed0a2ccac03e074a77e2314"}, + {file = "coverage-7.6.7-cp310-cp310-win32.whl", hash = "sha256:796c9b107d11d2d69e1849b2dfe41730134b526a49d3acb98ca02f4985eeff7a"}, + {file = "coverage-7.6.7-cp310-cp310-win_amd64.whl", hash = "sha256:987a8e3da7da4eed10a20491cf790589a8e5e07656b6dc22d3814c4d88faf163"}, + {file = "coverage-7.6.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7e61b0e77ff4dddebb35a0e8bb5a68bf0f8b872407d8d9f0c726b65dfabe2469"}, + {file = "coverage-7.6.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1a5407a75ca4abc20d6252efeb238377a71ce7bda849c26c7a9bece8680a5d99"}, + {file = "coverage-7.6.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df002e59f2d29e889c37abd0b9ee0d0e6e38c24f5f55d71ff0e09e3412a340ec"}, + {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:673184b3156cba06154825f25af33baa2671ddae6343f23175764e65a8c4c30b"}, + {file = "coverage-7.6.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69ad502f1a2243f739f5bd60565d14a278be58be4c137d90799f2c263e7049a"}, + {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60dcf7605c50ea72a14490d0756daffef77a5be15ed1b9fea468b1c7bda1bc3b"}, + {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9c2eb378bebb2c8f65befcb5147877fc1c9fbc640fc0aad3add759b5df79d55d"}, + {file = "coverage-7.6.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c0317288f032221d35fa4cbc35d9f4923ff0dfd176c79c9b356e8ef8ef2dff4"}, + {file = "coverage-7.6.7-cp311-cp311-win32.whl", hash = "sha256:951aade8297358f3618a6e0660dc74f6b52233c42089d28525749fc8267dccd2"}, + {file = "coverage-7.6.7-cp311-cp311-win_amd64.whl", hash = "sha256:5e444b8e88339a2a67ce07d41faabb1d60d1004820cee5a2c2b54e2d8e429a0f"}, + {file = "coverage-7.6.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f07ff574986bc3edb80e2c36391678a271d555f91fd1d332a1e0f4b5ea4b6ea9"}, + {file = "coverage-7.6.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:49ed5ee4109258973630c1f9d099c7e72c5c36605029f3a91fe9982c6076c82b"}, + {file = "coverage-7.6.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3e8796434a8106b3ac025fd15417315d7a58ee3e600ad4dbcfddc3f4b14342c"}, + {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3b925300484a3294d1c70f6b2b810d6526f2929de954e5b6be2bf8caa1f12c1"}, + {file = "coverage-7.6.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c42ec2c522e3ddd683dec5cdce8e62817afb648caedad9da725001fa530d354"}, + {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0266b62cbea568bd5e93a4da364d05de422110cbed5056d69339bd5af5685433"}, + {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e5f2a0f161d126ccc7038f1f3029184dbdf8f018230af17ef6fd6a707a5b881f"}, + {file = "coverage-7.6.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c132b5a22821f9b143f87446805e13580b67c670a548b96da945a8f6b4f2efbb"}, + {file = "coverage-7.6.7-cp312-cp312-win32.whl", hash = "sha256:7c07de0d2a110f02af30883cd7dddbe704887617d5c27cf373362667445a4c76"}, + {file = "coverage-7.6.7-cp312-cp312-win_amd64.whl", hash = "sha256:fd49c01e5057a451c30c9b892948976f5d38f2cbd04dc556a82743ba8e27ed8c"}, + {file = "coverage-7.6.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:46f21663e358beae6b368429ffadf14ed0a329996248a847a4322fb2e35d64d3"}, + {file = "coverage-7.6.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:40cca284c7c310d622a1677f105e8507441d1bb7c226f41978ba7c86979609ab"}, + {file = "coverage-7.6.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77256ad2345c29fe59ae861aa11cfc74579c88d4e8dbf121cbe46b8e32aec808"}, + {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87ea64b9fa52bf395272e54020537990a28078478167ade6c61da7ac04dc14bc"}, + {file = "coverage-7.6.7-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d608a7808793e3615e54e9267519351c3ae204a6d85764d8337bd95993581a8"}, + {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdd94501d65adc5c24f8a1a0eda110452ba62b3f4aeaba01e021c1ed9cb8f34a"}, + {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82c809a62e953867cf57e0548c2b8464207f5f3a6ff0e1e961683e79b89f2c55"}, + {file = "coverage-7.6.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb684694e99d0b791a43e9fc0fa58efc15ec357ac48d25b619f207c41f2fd384"}, + {file = "coverage-7.6.7-cp313-cp313-win32.whl", hash = "sha256:963e4a08cbb0af6623e61492c0ec4c0ec5c5cf74db5f6564f98248d27ee57d30"}, + {file = "coverage-7.6.7-cp313-cp313-win_amd64.whl", hash = "sha256:14045b8bfd5909196a90da145a37f9d335a5d988a83db34e80f41e965fb7cb42"}, + {file = "coverage-7.6.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f2c7a045eef561e9544359a0bf5784b44e55cefc7261a20e730baa9220c83413"}, + {file = "coverage-7.6.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dd4e4a49d9c72a38d18d641135d2fb0bdf7b726ca60a103836b3d00a1182acd"}, + {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c95e0fa3d1547cb6f021ab72f5c23402da2358beec0a8e6d19a368bd7b0fb37"}, + {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f63e21ed474edd23f7501f89b53280014436e383a14b9bd77a648366c81dce7b"}, + {file = "coverage-7.6.7-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead9b9605c54d15be228687552916c89c9683c215370c4a44f1f217d2adcc34d"}, + {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0573f5cbf39114270842d01872952d301027d2d6e2d84013f30966313cadb529"}, + {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e2c8e3384c12dfa19fa9a52f23eb091a8fad93b5b81a41b14c17c78e23dd1d8b"}, + {file = "coverage-7.6.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:70a56a2ec1869e6e9fa69ef6b76b1a8a7ef709972b9cc473f9ce9d26b5997ce3"}, + {file = "coverage-7.6.7-cp313-cp313t-win32.whl", hash = "sha256:dbba8210f5067398b2c4d96b4e64d8fb943644d5eb70be0d989067c8ca40c0f8"}, + {file = "coverage-7.6.7-cp313-cp313t-win_amd64.whl", hash = "sha256:dfd14bcae0c94004baba5184d1c935ae0d1231b8409eb6c103a5fd75e8ecdc56"}, + {file = "coverage-7.6.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37a15573f988b67f7348916077c6d8ad43adb75e478d0910957394df397d2874"}, + {file = "coverage-7.6.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b6cce5c76985f81da3769c52203ee94722cd5d5889731cd70d31fee939b74bf0"}, + {file = "coverage-7.6.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ab9763d291a17b527ac6fd11d1a9a9c358280adb320e9c2672a97af346ac2c"}, + {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6cf96ceaa275f071f1bea3067f8fd43bec184a25a962c754024c973af871e1b7"}, + {file = "coverage-7.6.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aee9cf6b0134d6f932d219ce253ef0e624f4fa588ee64830fcba193269e4daa3"}, + {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2bc3e45c16564cc72de09e37413262b9f99167803e5e48c6156bccdfb22c8327"}, + {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:623e6965dcf4e28a3debaa6fcf4b99ee06d27218f46d43befe4db1c70841551c"}, + {file = "coverage-7.6.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:850cfd2d6fc26f8346f422920ac204e1d28814e32e3a58c19c91980fa74d8289"}, + {file = "coverage-7.6.7-cp39-cp39-win32.whl", hash = "sha256:c296263093f099da4f51b3dff1eff5d4959b527d4f2f419e16508c5da9e15e8c"}, + {file = "coverage-7.6.7-cp39-cp39-win_amd64.whl", hash = "sha256:90746521206c88bdb305a4bf3342b1b7316ab80f804d40c536fc7d329301ee13"}, + {file = "coverage-7.6.7-pp39.pp310-none-any.whl", hash = "sha256:0ddcb70b3a3a57581b450571b31cb774f23eb9519c2aaa6176d3a84c9fc57671"}, + {file = "coverage-7.6.7.tar.gz", hash = "sha256:d79d4826e41441c9a118ff045e4bccb9fdbdcb1d02413e7ea6eb5c87b5439d24"}, ] [package.dependencies] @@ -868,115 +875,97 @@ toml = ["tomli"] [[package]] name = "cytoolz" -version = "0.12.3" +version = "1.0.0" description = "Cython implementation of Toolz: High performance functional utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "cytoolz-0.12.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bbe58e26c84b163beba0fbeacf6b065feabc8f75c6d3fe305550d33f24a2d346"}, - {file = "cytoolz-0.12.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c51b66ada9bfdb88cf711bf350fcc46f82b83a4683cf2413e633c31a64df6201"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e70d9c615e5c9dc10d279d1e32e846085fe1fd6f08d623ddd059a92861f4e3dd"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83f4532707963ae1a5108e51fdfe1278cc8724e3301fee48b9e73e1316de64f"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d028044524ee2e815f36210a793c414551b689d4f4eda28f8bbb0883ad78bf5f"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c2875bcd1397d0627a09a4f9172fa513185ad302c63758efc15b8eb33cc2a98"}, - {file = "cytoolz-0.12.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:131ff4820e5d64a25d7ad3c3556f2d8aa65c66b3f021b03f8a8e98e4180dd808"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:04afa90d9d9d18394c40d9bed48c51433d08b57c042e0e50c8c0f9799735dcbd"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:dc1ca9c610425f9854323669a671fc163300b873731584e258975adf50931164"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:bfa3f8e01bc423a933f2e1c510cbb0632c6787865b5242857cc955cae220d1bf"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:f702e295dddef5f8af4a456db93f114539b8dc2a7a9bc4de7c7e41d169aa6ec3"}, - {file = "cytoolz-0.12.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0fbad1fb9bb47e827d00e01992a099b0ba79facf5e5aa453be066033232ac4b5"}, - {file = "cytoolz-0.12.3-cp310-cp310-win32.whl", hash = "sha256:8587c3c3dbe78af90c5025288766ac10dc2240c1e76eb0a93a4e244c265ccefd"}, - {file = "cytoolz-0.12.3-cp310-cp310-win_amd64.whl", hash = "sha256:9e45803d9e75ef90a2f859ef8f7f77614730f4a8ce1b9244375734567299d239"}, - {file = "cytoolz-0.12.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3ac4f2fb38bbc67ff1875b7d2f0f162a247f43bd28eb7c9d15e6175a982e558d"}, - {file = "cytoolz-0.12.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0cf1e1e96dd86829a0539baf514a9c8473a58fbb415f92401a68e8e52a34ecd5"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08a438701c6141dd34eaf92e9e9a1f66e23a22f7840ef8a371eba274477de85d"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6b6f11b0d7ed91be53166aeef2a23a799e636625675bb30818f47f41ad31821"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7fde09384d23048a7b4ac889063761e44b89a0b64015393e2d1d21d5c1f534a"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d3bfe45173cc8e6c76206be3a916d8bfd2214fb2965563e288088012f1dabfc"}, - {file = "cytoolz-0.12.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27513a5d5b6624372d63313574381d3217a66e7a2626b056c695179623a5cb1a"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d294e5e81ff094fe920fd545052ff30838ea49f9e91227a55ecd9f3ca19774a0"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:727b01a2004ddb513496507a695e19b5c0cfebcdfcc68349d3efd92a1c297bf4"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:fe1e1779a39dbe83f13886d2b4b02f8c4b10755e3c8d9a89b630395f49f4f406"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:de74ef266e2679c3bf8b5fc20cee4fc0271ba13ae0d9097b1491c7a9bcadb389"}, - {file = "cytoolz-0.12.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e04d22049233394e0b08193aca9737200b4a2afa28659d957327aa780ddddf2"}, - {file = "cytoolz-0.12.3-cp311-cp311-win32.whl", hash = "sha256:20d36430d8ac809186736fda735ee7d595b6242bdb35f69b598ef809ebfa5605"}, - {file = "cytoolz-0.12.3-cp311-cp311-win_amd64.whl", hash = "sha256:780c06110f383344d537f48d9010d79fa4f75070d214fc47f389357dd4f010b6"}, - {file = "cytoolz-0.12.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:86923d823bd19ce35805953b018d436f6b862edd6a7c8b747a13d52b39ed5716"}, - {file = "cytoolz-0.12.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3e61acfd029bfb81c2c596249b508dfd2b4f72e31b7b53b62e5fb0507dd7293"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd728f4e6051af6af234651df49319da1d813f47894d4c3c8ab7455e01703a37"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe8c6267caa7ec67bcc37e360f0d8a26bc3bdce510b15b97f2f2e0143bdd3673"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99462abd8323c52204a2a0ce62454ce8fa0f4e94b9af397945c12830de73f27e"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da125221b1fa25c690fcd030a54344cecec80074df018d906fc6a99f46c1e3a6"}, - {file = "cytoolz-0.12.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c18e351956f70db9e2d04ff02f28e9a41839250d3f936a4c8a1eabd1c3094d2"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:921e6d2440ac758c4945c587b1d1d9b781b72737ac0c0ca5d5e02ca1db8bded2"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1651a9bd591a8326329ce1d6336f3129161a36d7061a4d5ea9e5377e033364cf"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8893223b87c2782bd59f9c4bd5c7bf733edd8728b523c93efb91d7468b486528"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:e4d2961644153c5ae186db964aa9f6109da81b12df0f1d3494b4e5cf2c332ee2"}, - {file = "cytoolz-0.12.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:71b6eb97f6695f7ba8ce69c49b707a351c5f46fd97f5aeb5f6f2fb0d6e72b887"}, - {file = "cytoolz-0.12.3-cp312-cp312-win32.whl", hash = "sha256:cee3de65584e915053412cd178729ff510ad5f8f585c21c5890e91028283518f"}, - {file = "cytoolz-0.12.3-cp312-cp312-win_amd64.whl", hash = "sha256:9eef0d23035fa4dcfa21e570961e86c375153a7ee605cdd11a8b088c24f707f6"}, - {file = "cytoolz-0.12.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9a38332cfad2a91e89405b7c18b3f00e2edc951c225accbc217597d3e4e9fde"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f501ae1353071fa5d6677437bbeb1aeb5622067dce0977cedc2c5ec5843b202"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56f899758146a52e2f8cfb3fb6f4ca19c1e5814178c3d584de35f9e4d7166d91"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:800f0526adf9e53d3c6acda748f4def1f048adaa780752f154da5cf22aa488a2"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0976a3fcb81d065473173e9005848218ce03ddb2ec7d40dd6a8d2dba7f1c3ae"}, - {file = "cytoolz-0.12.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c835eab01466cb67d0ce6290601ebef2d82d8d0d0a285ed0d6e46989e4a7a71a"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4fba0616fcd487e34b8beec1ad9911d192c62e758baa12fcb44448b9b6feae22"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6f6e8207d732651e0204779e1ba5a4925c93081834570411f959b80681f8d333"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:8119bf5961091cfe644784d0bae214e273b3b3a479f93ee3baab97bbd995ccfe"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:7ad1331cb68afeec58469c31d944a2100cee14eac221553f0d5218ace1a0b25d"}, - {file = "cytoolz-0.12.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:92c53d508fb8a4463acc85b322fa24734efdc66933a5c8661bdc862103a3373d"}, - {file = "cytoolz-0.12.3-cp37-cp37m-win32.whl", hash = "sha256:2c6dd75dae3d84fa8988861ab8b1189d2488cb8a9b8653828f9cd6126b5e7abd"}, - {file = "cytoolz-0.12.3-cp37-cp37m-win_amd64.whl", hash = "sha256:caf07a97b5220e6334dd32c8b6d8b2bd255ca694eca5dfe914bb5b880ee66cdb"}, - {file = "cytoolz-0.12.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ed0cfb9326747759e2ad81cb6e45f20086a273b67ac3a4c00b19efcbab007c60"}, - {file = "cytoolz-0.12.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:96a5a0292575c3697121f97cc605baf2fd125120c7dcdf39edd1a135798482ca"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b76f2f50a789c44d6fd7f773ec43d2a8686781cd52236da03f7f7d7998989bee"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2905fdccacc64b4beba37f95cab9d792289c80f4d70830b70de2fc66c007ec01"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ebe23028eac51251f22ba01dba6587d30aa9c320372ca0c14eeab67118ec3f"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96c715404a3825e37fe3966fe84c5f8a1f036e7640b2a02dbed96cac0c933451"}, - {file = "cytoolz-0.12.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bac0adffc1b6b6a4c5f1fd1dd2161afb720bcc771a91016dc6bdba59af0a5d3"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:37441bf4a2a4e2e0fe9c3b0ea5e72db352f5cca03903977ffc42f6f6c5467be9"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f04037302049cb30033f7fa4e1d0e44afe35ed6bfcf9b380fc11f2a27d3ed697"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:f37b60e66378e7a116931d7220f5352186abfcc950d64856038aa2c01944929c"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ec9be3e4b6f86ea8b294d34c990c99d2ba6c526ef1e8f46f1d52c263d4f32cd7"}, - {file = "cytoolz-0.12.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0e9199c9e3fbf380a92b8042c677eb9e7ed4bccb126de5e9c0d26f5888d96788"}, - {file = "cytoolz-0.12.3-cp38-cp38-win32.whl", hash = "sha256:18cd61e078bd6bffe088e40f1ed02001387c29174750abce79499d26fa57f5eb"}, - {file = "cytoolz-0.12.3-cp38-cp38-win_amd64.whl", hash = "sha256:765b8381d4003ceb1a07896a854eee2c31ebc950a4ae17d1e7a17c2a8feb2a68"}, - {file = "cytoolz-0.12.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b4a52dd2a36b0a91f7aa50ca6c8509057acc481a24255f6cb07b15d339a34e0f"}, - {file = "cytoolz-0.12.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:581f1ce479769fe7eeb9ae6d87eadb230df8c7c5fff32138162cdd99d7fb8fc3"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46f505d4c6eb79585c8ad0b9dc140ef30a138c880e4e3b40230d642690e36366"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59276021619b432a5c21c01cda8320b9cc7dbc40351ffc478b440bfccd5bbdd3"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e44f4c25e1e7cf6149b499c74945a14649c8866d36371a2c2d2164e4649e7755"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c64f8e60c1dd69e4d5e615481f2d57937746f4a6be2d0f86e9e7e3b9e2243b5e"}, - {file = "cytoolz-0.12.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33c63186f3bf9d7ef1347bc0537bb9a0b4111a0d7d6e619623cabc18fef0dc3b"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fdddb9d988405f24035234f1e8d1653ab2e48cc2404226d21b49a129aefd1d25"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6986632d8a969ea1e720990c818dace1a24c11015fd7c59b9fea0b65ef71f726"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0ba1cbc4d9cd7571c917f88f4a069568e5121646eb5d82b2393b2cf84712cf2a"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7d267ffc9a36c0a9a58c7e0adc9fa82620f22e4a72533e15dd1361f57fc9accf"}, - {file = "cytoolz-0.12.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:95e878868a172a41fbf6c505a4b967309e6870e22adc7b1c3b19653d062711fa"}, - {file = "cytoolz-0.12.3-cp39-cp39-win32.whl", hash = "sha256:8e21932d6d260996f7109f2a40b2586070cb0a0cf1d65781e156326d5ebcc329"}, - {file = "cytoolz-0.12.3-cp39-cp39-win_amd64.whl", hash = "sha256:0d8edfbc694af6c9bda4db56643fb8ed3d14e47bec358c2f1417de9a12d6d1fb"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:55f9bd1ae6c2a27eda5abe2a0b65a83029d2385c5a1da7b8ef47af5905d7e905"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2d271393c378282727f1231d40391ae93b93ddc0997448acc21dd0cb6a1e56d"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee98968d6a66ee83a8ceabf31182189ab5d8598998c8ce69b6d5843daeb2db60"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01cfb8518828c1189200c02a5010ea404407fb18fd5589e29c126e84bbeadd36"}, - {file = "cytoolz-0.12.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:456395d7aec01db32bf9e6db191d667347c78d8d48e77234521fa1078f60dabb"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:cd88028bb897fba99ddd84f253ca6bef73ecb7bdf3f3cf25bc493f8f97d3c7c5"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59b19223e7f7bd7a73ec3aa6fdfb73b579ff09c2bc0b7d26857eec2d01a58c76"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a79d72b08048a0980a59457c239555f111ac0c8bdc140c91a025f124104dbb4"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dd70141b32b717696a72b8876e86bc9c6f8eff995c1808e299db3541213ff82"}, - {file = "cytoolz-0.12.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a1445c91009eb775d479e88954c51d0b4cf9a1e8ce3c503c2672d17252882647"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ca6a9a9300d5bda417d9090107c6d2b007683efc59d63cc09aca0e7930a08a85"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be6feb903d2a08a4ba2e70e950e862fd3be9be9a588b7c38cee4728150a52918"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b6f43f086e5a965d33d62a145ae121b4ccb6e0789ac0acc895ce084fec8c65"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:534fa66db8564d9b13872d81d54b6b09ae592c585eb826aac235bd6f1830f8ad"}, - {file = "cytoolz-0.12.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:fea649f979def23150680de1bd1d09682da3b54932800a0f90f29fc2a6c98ba8"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a447247ed312dd64e3a8d9483841ecc5338ee26d6e6fbd29cd373ed030db0240"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba3f843aa89f35467b38c398ae5b980a824fdbdb94065adc6ec7c47a0a22f4c7"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:582c22f97a380211fb36a7b65b1beeb84ea11d82015fa84b054be78580390082"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47feb089506fc66e1593cd9ade3945693a9d089a445fbe9a11385cab200b9f22"}, - {file = "cytoolz-0.12.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ba9002d2f043943744a9dc8e50a47362bcb6e6f360dc0a1abcb19642584d87bb"}, - {file = "cytoolz-0.12.3.tar.gz", hash = "sha256:4503dc59f4ced53a54643272c61dc305d1dbbfbd7d6bdf296948de9f34c3a282"}, + {file = "cytoolz-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ecf5a887acb8f079ab1b81612b1c889bcbe6611aa7804fd2df46ed310aa5a345"}, + {file = "cytoolz-1.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0ef30c1e091d4d59d14d8108a16d50bd227be5d52a47da891da5019ac2f8e4"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7df2dfd679f0517a96ced1cdd22f5c6c6aeeed28d928a82a02bf4c3fd6fd7ac4"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c51452c938e610f57551aa96e34924169c9100c0448bac88c2fb395cbd3538c"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6433f03910c5e5345d82d6299457c26bf33821224ebb837c6b09d9cdbc414a6c"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:389ec328bb535f09e71dfe658bf0041f17194ca4cedaacd39bafe7893497a819"}, + {file = "cytoolz-1.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c64658e1209517ce4b54c1c9269a508b289d8d55fc742760e4b8579eacf09a33"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f6039a9bd5bb988762458b9ca82b39e60ca5e5baae2ba93913990dcc5d19fa88"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85c9c8c4465ed1b2c8d67003809aec9627b129cb531d2f6cf0bbfe39952e7e4d"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:49375aad431d76650f94877afb92f09f58b6ff9055079ef4f2cd55313f5a1b39"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4c45106171c824a61e755355520b646cb35a1987b34bbf5789443823ee137f63"}, + {file = "cytoolz-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3b319a7f0fed5db07d189db4046162ebc183c108df3562a65ba6ebe862d1f634"}, + {file = "cytoolz-1.0.0-cp310-cp310-win32.whl", hash = "sha256:9770e1b09748ad0d751853d994991e2592a9f8c464a87014365f80dac2e83faa"}, + {file = "cytoolz-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:20194dd02954c00c1f0755e636be75a20781f91a4ac9270c7f747e82d3c7f5a5"}, + {file = "cytoolz-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dffc22fd2c91be64dbdbc462d0786f8e8ac9a275cfa1869a1084d1867d4f67e0"}, + {file = "cytoolz-1.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a99e7e29274e293f4ffe20e07f76c2ac753a78f1b40c1828dfc54b2981b2f6c4"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c507a3e0a45c41d66b43f96797290d75d1e7a8549aa03a4a6b8854fdf3f7b8d8"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:643a593ec272ef7429099e1182a22f64ec2696c00d295d2a5be390db1b7ff176"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ce38e2e42cbae30446190c59b92a8a9029e1806fd79eaf88f48b0fe33003893"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810a6a168b8c5ecb412fbae3dd6f7ed6c6253a63caf4174ee9794ebd29b2224f"}, + {file = "cytoolz-1.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ce8a2a85c0741c1b19b16e6782c4a5abc54c3caecda66793447112ab2fa9884"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ea4ac72e6b830861035c4c7999af8e55813f57c6d1913a3d93cc4a6babc27bf7"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a09cdfb21dfb38aa04df43e7546a41f673377eb5485da88ceb784e327ec7603b"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:658dd85deb375ff7af990a674e5c9058cef1c9d1f5dc89bc87b77be499348144"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9715d1ff5576919d10b68f17241375f6a1eec8961c25b78a83e6ef1487053f39"}, + {file = "cytoolz-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f370a1f1f1afc5c1c8cc5edc1cfe0ba444263a0772af7ce094be8e734f41769d"}, + {file = "cytoolz-1.0.0-cp311-cp311-win32.whl", hash = "sha256:dbb2ec1177dca700f3db2127e572da20de280c214fc587b2a11c717fc421af56"}, + {file = "cytoolz-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:0983eee73df86e54bb4a79fcc4996aa8b8368fdbf43897f02f9c3bf39c4dc4fb"}, + {file = "cytoolz-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:10e3986066dc379e30e225b230754d9f5996aa8d84c2accc69c473c21d261e46"}, + {file = "cytoolz-1.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:16576f1bb143ee2cb9f719fcc4b845879fb121f9075c7c5e8a5ff4854bd02fc6"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3faa25a1840b984315e8b3ae517312375f4273ffc9a2f035f548b7f916884f37"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:781fce70a277b20fd95dc66811d1a97bb07b611ceea9bda8b7dd3c6a4b05d59a"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a562c25338eb24d419d1e80a7ae12133844ce6fdeb4ab54459daf250088a1b2"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f29d8330aaf070304f7cd5cb7e73e198753624eb0aec278557cccd460c699b5b"}, + {file = "cytoolz-1.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98a96c54aa55ed9c7cdb23c2f0df39a7b4ee518ac54888480b5bdb5ef69c7ef0"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:287d6d7f475882c2ddcbedf8da9a9b37d85b77690779a2d1cdceb5ae3998d52e"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:05a871688df749b982839239fcd3f8ec3b3b4853775d575ff9cd335fa7c75035"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:28bb88e1e2f7d6d4b8e0890b06d292c568984d717de3e8381f2ca1dd12af6470"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:576a4f1fc73d8836b10458b583f915849da6e4f7914f4ecb623ad95c2508cad5"}, + {file = "cytoolz-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:509ed3799c47e4ada14f63e41e8f540ac6e2dab97d5d7298934e6abb9d3830ec"}, + {file = "cytoolz-1.0.0-cp312-cp312-win32.whl", hash = "sha256:9ce25f02b910630f6dc2540dd1e26c9326027ddde6c59f8cab07c56acc70714c"}, + {file = "cytoolz-1.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:7e53cfcce87e05b7f0ae2fb2b3e5820048cd0bb7b701e92bd8f75c9fbb7c9ae9"}, + {file = "cytoolz-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7d56569dfe67a39ce74ffff0dc12cf0a3d1aae709667a303fe8f2dd5fd004fdf"}, + {file = "cytoolz-1.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:035c8bb4706dcf93a89fb35feadff67e9301935bf6bb864cd2366923b69d9a29"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27c684799708bdc7ee7acfaf464836e1b4dec0996815c1d5efd6a92a4356a562"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44ab57cfc922b15d94899f980d76759ef9e0256912dfab70bf2561bea9cd5b19"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:478af5ecc066da093d7660b23d0b465a7f44179739937afbded8af00af412eb6"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da1f82a7828a42468ea2820a25b6e56461361390c29dcd4d68beccfa1b71066b"}, + {file = "cytoolz-1.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c371b3114d38ee717780b239179e88d5d358fe759a00dcf07691b8922bbc762"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:90b343b2f3b3e77c3832ba19b0b17e95412a5b2e715b05c23a55ba525d1fca49"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89a554a9ba112403232a54e15e46ff218b33020f3f45c4baf6520ab198b7ad93"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:0d603f5e2b1072166745ecdd81384a75757a96a704a5642231eb51969f919d5f"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:122ef2425bd3c0419e6e5260d0b18cd25cf74de589cd0184e4a63b24a4641e2e"}, + {file = "cytoolz-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:8819f1f97ebe36efcaf4b550e21677c46ac8a41bed482cf66845f377dd20700d"}, + {file = "cytoolz-1.0.0-cp38-cp38-win32.whl", hash = "sha256:fcddbb853770dd6e270d89ea8742f0aa42c255a274b9e1620eb04e019b79785e"}, + {file = "cytoolz-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:ca526905a014a38cc23ae78635dc51d0462c5c24425b22c08beed9ff2ee03845"}, + {file = "cytoolz-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:05df5ff1cdd198fb57e7368623662578c950be0b14883cadfb9ee4098415e1e5"}, + {file = "cytoolz-1.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04a84778f48ebddb26948971dc60948907c876ba33b13f9cbb014fe65b341fc2"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f65283b618b4c4df759f57bcf8483865a73f7f268e6d76886c743407c8d26c1c"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388cd07ee9a9e504c735a0a933e53c98586a1c301a64af81f7aa7ff40c747520"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06d09e9569cfdfc5c082806d4b4582db8023a3ce034097008622bcbac7236f38"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9502bd9e37779cc9893cbab515a474c2ab6af61ed22ac2f7e16033db18fcaa85"}, + {file = "cytoolz-1.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:364c2fda148def38003b2c86e8adde1d2aab12411dd50872c244a815262e2fda"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9b2e945617325242687189966335e785dc0fae316f4c1825baacf56e5a97e65f"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0f16907fdc724c55b16776bdb7e629deae81d500fe48cfc3861231753b271355"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d3206c81ca3ba2d7b8fe78f2e116e3028e721148be753308e88dcbbc370bca52"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:becce4b13e110b5ac6b23753dcd0c977f4fdccffa31898296e13fd1109e517e3"}, + {file = "cytoolz-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:69a7e5e98fd446079b8b8ec5987aec9a31ec3570a6f494baefa6800b783eaf22"}, + {file = "cytoolz-1.0.0-cp39-cp39-win32.whl", hash = "sha256:b1707b6c3a91676ac83a28a231a14b337dbb4436b937e6b3e4fd44209852a48b"}, + {file = "cytoolz-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:11d48b8521ef5fe92e099f4fc00717b5d0789c3c90d5d84031b6d3b17dee1700"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e672712d5dc3094afc6fb346dd4e9c18c1f3c69608ddb8cf3b9f8428f9c26a5c"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86fb208bfb7420e1d0d20065d661310e4a8a6884851d4044f47d37ed4cd7410e"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6dbe5fe3b835859fc559eb59bf2775b5a108f7f2cfab0966f3202859d787d8fd"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cace092dfda174eed09ed871793beb5b65633963bcda5b1632c73a5aceea1ce"}, + {file = "cytoolz-1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f7a9d816af3be9725c70efe0a6e4352a45d3877751b395014b8eb2f79d7d8d9d"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:caa7ef840847a23b379e6146760e3a22f15f445656af97e55a435c592125cfa5"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:921082fff09ff6e40c12c87b49be044492b2d6bb01d47783995813b76680c7b2"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a32f1356f3b64dda883583383966948604ac69ca0b7fbcf5f28856e5f9133b4e"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af793b1738e4191d15a92e1793f1ffea9f6461022c7b2442f3cb1ea0a4f758a"}, + {file = "cytoolz-1.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:51dfda3983fcc59075c534ce54ca041bb3c80e827ada5d4f25ff7b4049777f94"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:acfb8780c04d29423d14aaab74cd1b7b4beaba32f676e7ace02c9acfbf532aba"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99f39dcc46416dca3eb23664b73187b77fb52cd8ba2ddd8020a292d8f449db67"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c0d56b3721977806dcf1a68b0ecd56feb382fdb0f632af1a9fc5ab9b662b32c6"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d346620abc8c83ae634136e700432ad6202faffcc24c5ab70b87392dcda8a1"}, + {file = "cytoolz-1.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:df0c81197fc130de94c09fc6f024a6a19c98ba8fe55c17f1e45ebba2e9229079"}, + {file = "cytoolz-1.0.0.tar.gz", hash = "sha256:eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd"}, ] [package.dependencies] @@ -998,13 +987,13 @@ files = [ [[package]] name = "distlib" -version = "0.3.8" +version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, - {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, ] [[package]] @@ -1155,13 +1144,13 @@ test = ["pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] [[package]] name = "eth-keys" -version = "0.5.1" +version = "0.6.0" description = "eth-keys: Common API for Ethereum key operations" optional = false python-versions = "<4,>=3.8" files = [ - {file = "eth_keys-0.5.1-py3-none-any.whl", hash = "sha256:ad13d920a2217a49bed3a1a7f54fb0980f53caf86d3bbab2139fd3330a17b97e"}, - {file = "eth_keys-0.5.1.tar.gz", hash = "sha256:2b587e4bbb9ac2195215a7ab0c0fb16042b17d4ec50240ed670bbb8f53da7a48"}, + {file = "eth_keys-0.6.0-py3-none-any.whl", hash = "sha256:b396fdfe048a5bba3ef3990739aec64901eb99901c03921caa774be668b1db6e"}, + {file = "eth_keys-0.6.0.tar.gz", hash = "sha256:ba33230f851d02c894e83989185b21d76152c49b37e35b61b1d8a6d9f1d20430"}, ] [package.dependencies] @@ -1307,205 +1296,238 @@ docs = ["alabaster", "myst-parser (>=0.18.0,<0.19.0)", "pygments-github-lexers", [[package]] name = "frozenlist" -version = "1.4.1" +version = "1.5.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" files = [ - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, - {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, - {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, - {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, - {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, - {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, - {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, - {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, - {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, - {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, - {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, - {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, - {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, ] [[package]] name = "grpcio" -version = "1.66.1" +version = "1.68.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.8" files = [ - {file = "grpcio-1.66.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:4877ba180591acdf127afe21ec1c7ff8a5ecf0fe2600f0d3c50e8c4a1cbc6492"}, - {file = "grpcio-1.66.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:3750c5a00bd644c75f4507f77a804d0189d97a107eb1481945a0cf3af3e7a5ac"}, - {file = "grpcio-1.66.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:a013c5fbb12bfb5f927444b477a26f1080755a931d5d362e6a9a720ca7dbae60"}, - {file = "grpcio-1.66.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1b24c23d51a1e8790b25514157d43f0a4dce1ac12b3f0b8e9f66a5e2c4c132f"}, - {file = "grpcio-1.66.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7ffb8ea674d68de4cac6f57d2498fef477cef582f1fa849e9f844863af50083"}, - {file = "grpcio-1.66.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:307b1d538140f19ccbd3aed7a93d8f71103c5d525f3c96f8616111614b14bf2a"}, - {file = "grpcio-1.66.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1c17ebcec157cfb8dd445890a03e20caf6209a5bd4ac5b040ae9dbc59eef091d"}, - {file = "grpcio-1.66.1-cp310-cp310-win32.whl", hash = "sha256:ef82d361ed5849d34cf09105d00b94b6728d289d6b9235513cb2fcc79f7c432c"}, - {file = "grpcio-1.66.1-cp310-cp310-win_amd64.whl", hash = "sha256:292a846b92cdcd40ecca46e694997dd6b9be6c4c01a94a0dfb3fcb75d20da858"}, - {file = "grpcio-1.66.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:c30aeceeaff11cd5ddbc348f37c58bcb96da8d5aa93fed78ab329de5f37a0d7a"}, - {file = "grpcio-1.66.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8a1e224ce6f740dbb6b24c58f885422deebd7eb724aff0671a847f8951857c26"}, - {file = "grpcio-1.66.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:a66fe4dc35d2330c185cfbb42959f57ad36f257e0cc4557d11d9f0a3f14311df"}, - {file = "grpcio-1.66.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3ba04659e4fce609de2658fe4dbf7d6ed21987a94460f5f92df7579fd5d0e22"}, - {file = "grpcio-1.66.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4573608e23f7e091acfbe3e84ac2045680b69751d8d67685ffa193a4429fedb1"}, - {file = "grpcio-1.66.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7e06aa1f764ec8265b19d8f00140b8c4b6ca179a6dc67aa9413867c47e1fb04e"}, - {file = "grpcio-1.66.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3885f037eb11f1cacc41f207b705f38a44b69478086f40608959bf5ad85826dd"}, - {file = "grpcio-1.66.1-cp311-cp311-win32.whl", hash = "sha256:97ae7edd3f3f91480e48ede5d3e7d431ad6005bfdbd65c1b56913799ec79e791"}, - {file = "grpcio-1.66.1-cp311-cp311-win_amd64.whl", hash = "sha256:cfd349de4158d797db2bd82d2020554a121674e98fbe6b15328456b3bf2495bb"}, - {file = "grpcio-1.66.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:a92c4f58c01c77205df6ff999faa008540475c39b835277fb8883b11cada127a"}, - {file = "grpcio-1.66.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fdb14bad0835914f325349ed34a51940bc2ad965142eb3090081593c6e347be9"}, - {file = "grpcio-1.66.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f03a5884c56256e08fd9e262e11b5cfacf1af96e2ce78dc095d2c41ccae2c80d"}, - {file = "grpcio-1.66.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ca2559692d8e7e245d456877a85ee41525f3ed425aa97eb7a70fc9a79df91a0"}, - {file = "grpcio-1.66.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84ca1be089fb4446490dd1135828bd42a7c7f8421e74fa581611f7afdf7ab761"}, - {file = "grpcio-1.66.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d639c939ad7c440c7b2819a28d559179a4508783f7e5b991166f8d7a34b52815"}, - {file = "grpcio-1.66.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b9feb4e5ec8dc2d15709f4d5fc367794d69277f5d680baf1910fc9915c633524"}, - {file = "grpcio-1.66.1-cp312-cp312-win32.whl", hash = "sha256:7101db1bd4cd9b880294dec41a93fcdce465bdbb602cd8dc5bd2d6362b618759"}, - {file = "grpcio-1.66.1-cp312-cp312-win_amd64.whl", hash = "sha256:b0aa03d240b5539648d996cc60438f128c7f46050989e35b25f5c18286c86734"}, - {file = "grpcio-1.66.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:ecfe735e7a59e5a98208447293ff8580e9db1e890e232b8b292dc8bd15afc0d2"}, - {file = "grpcio-1.66.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4825a3aa5648010842e1c9d35a082187746aa0cdbf1b7a2a930595a94fb10fce"}, - {file = "grpcio-1.66.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:f517fd7259fe823ef3bd21e508b653d5492e706e9f0ef82c16ce3347a8a5620c"}, - {file = "grpcio-1.66.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1fe60d0772831d96d263b53d83fb9a3d050a94b0e94b6d004a5ad111faa5b5b"}, - {file = "grpcio-1.66.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31a049daa428f928f21090403e5d18ea02670e3d5d172581670be006100db9ef"}, - {file = "grpcio-1.66.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f914386e52cbdeb5d2a7ce3bf1fdfacbe9d818dd81b6099a05b741aaf3848bb"}, - {file = "grpcio-1.66.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bff2096bdba686019fb32d2dde45b95981f0d1490e054400f70fc9a8af34b49d"}, - {file = "grpcio-1.66.1-cp38-cp38-win32.whl", hash = "sha256:aa8ba945c96e73de29d25331b26f3e416e0c0f621e984a3ebdb2d0d0b596a3b3"}, - {file = "grpcio-1.66.1-cp38-cp38-win_amd64.whl", hash = "sha256:161d5c535c2bdf61b95080e7f0f017a1dfcb812bf54093e71e5562b16225b4ce"}, - {file = "grpcio-1.66.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:d0cd7050397b3609ea51727b1811e663ffda8bda39c6a5bb69525ef12414b503"}, - {file = "grpcio-1.66.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0e6c9b42ded5d02b6b1fea3a25f036a2236eeb75d0579bfd43c0018c88bf0a3e"}, - {file = "grpcio-1.66.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:c9f80f9fad93a8cf71c7f161778ba47fd730d13a343a46258065c4deb4b550c0"}, - {file = "grpcio-1.66.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dd67ed9da78e5121efc5c510f0122a972216808d6de70953a740560c572eb44"}, - {file = "grpcio-1.66.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48b0d92d45ce3be2084b92fb5bae2f64c208fea8ceed7fccf6a7b524d3c4942e"}, - {file = "grpcio-1.66.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4d813316d1a752be6f5c4360c49f55b06d4fe212d7df03253dfdae90c8a402bb"}, - {file = "grpcio-1.66.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9c9bebc6627873ec27a70fc800f6083a13c70b23a5564788754b9ee52c5aef6c"}, - {file = "grpcio-1.66.1-cp39-cp39-win32.whl", hash = "sha256:30a1c2cf9390c894c90bbc70147f2372130ad189cffef161f0432d0157973f45"}, - {file = "grpcio-1.66.1-cp39-cp39-win_amd64.whl", hash = "sha256:17663598aadbedc3cacd7bbde432f541c8e07d2496564e22b214b22c7523dac8"}, - {file = "grpcio-1.66.1.tar.gz", hash = "sha256:35334f9c9745add3e357e3372756fd32d925bd52c41da97f4dfdafbde0bf0ee2"}, + {file = "grpcio-1.68.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:619b5d0f29f4f5351440e9343224c3e19912c21aeda44e0c49d0d147a8d01544"}, + {file = "grpcio-1.68.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:a59f5822f9459bed098ffbceb2713abbf7c6fd13f2b9243461da5c338d0cd6c3"}, + {file = "grpcio-1.68.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:c03d89df516128febc5a7e760d675b478ba25802447624edf7aa13b1e7b11e2a"}, + {file = "grpcio-1.68.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44bcbebb24363d587472089b89e2ea0ab2e2b4df0e4856ba4c0b087c82412121"}, + {file = "grpcio-1.68.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79f81b7fbfb136247b70465bd836fa1733043fdee539cd6031cb499e9608a110"}, + {file = "grpcio-1.68.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:88fb2925789cfe6daa20900260ef0a1d0a61283dfb2d2fffe6194396a354c618"}, + {file = "grpcio-1.68.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:99f06232b5c9138593ae6f2e355054318717d32a9c09cdc5a2885540835067a1"}, + {file = "grpcio-1.68.0-cp310-cp310-win32.whl", hash = "sha256:a6213d2f7a22c3c30a479fb5e249b6b7e648e17f364598ff64d08a5136fe488b"}, + {file = "grpcio-1.68.0-cp310-cp310-win_amd64.whl", hash = "sha256:15327ab81131ef9b94cb9f45b5bd98803a179c7c61205c8c0ac9aff9d6c4e82a"}, + {file = "grpcio-1.68.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:3b2b559beb2d433129441783e5f42e3be40a9e1a89ec906efabf26591c5cd415"}, + {file = "grpcio-1.68.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e46541de8425a4d6829ac6c5d9b16c03c292105fe9ebf78cb1c31e8d242f9155"}, + {file = "grpcio-1.68.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:c1245651f3c9ea92a2db4f95d37b7597db6b246d5892bca6ee8c0e90d76fb73c"}, + {file = "grpcio-1.68.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f1931c7aa85be0fa6cea6af388e576f3bf6baee9e5d481c586980c774debcb4"}, + {file = "grpcio-1.68.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b0ff09c81e3aded7a183bc6473639b46b6caa9c1901d6f5e2cba24b95e59e30"}, + {file = "grpcio-1.68.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8c73f9fbbaee1a132487e31585aa83987ddf626426d703ebcb9a528cf231c9b1"}, + {file = "grpcio-1.68.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6b2f98165ea2790ea159393a2246b56f580d24d7da0d0342c18a085299c40a75"}, + {file = "grpcio-1.68.0-cp311-cp311-win32.whl", hash = "sha256:e1e7ed311afb351ff0d0e583a66fcb39675be112d61e7cfd6c8269884a98afbc"}, + {file = "grpcio-1.68.0-cp311-cp311-win_amd64.whl", hash = "sha256:e0d2f68eaa0a755edd9a47d40e50dba6df2bceda66960dee1218da81a2834d27"}, + {file = "grpcio-1.68.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:8af6137cc4ae8e421690d276e7627cfc726d4293f6607acf9ea7260bd8fc3d7d"}, + {file = "grpcio-1.68.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4028b8e9a3bff6f377698587d642e24bd221810c06579a18420a17688e421af7"}, + {file = "grpcio-1.68.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f60fa2adf281fd73ae3a50677572521edca34ba373a45b457b5ebe87c2d01e1d"}, + {file = "grpcio-1.68.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e18589e747c1e70b60fab6767ff99b2d0c359ea1db8a2cb524477f93cdbedf5b"}, + {file = "grpcio-1.68.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0d30f3fee9372796f54d3100b31ee70972eaadcc87314be369360248a3dcffe"}, + {file = "grpcio-1.68.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7e0a3e72c0e9a1acab77bef14a73a416630b7fd2cbd893c0a873edc47c42c8cd"}, + {file = "grpcio-1.68.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a831dcc343440969aaa812004685ed322cdb526cd197112d0db303b0da1e8659"}, + {file = "grpcio-1.68.0-cp312-cp312-win32.whl", hash = "sha256:5a180328e92b9a0050958ced34dddcb86fec5a8b332f5a229e353dafc16cd332"}, + {file = "grpcio-1.68.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bddd04a790b69f7a7385f6a112f46ea0b34c4746f361ebafe9ca0be567c78e9"}, + {file = "grpcio-1.68.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:fc05759ffbd7875e0ff2bd877be1438dfe97c9312bbc558c8284a9afa1d0f40e"}, + {file = "grpcio-1.68.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:15fa1fe25d365a13bc6d52fcac0e3ee1f9baebdde2c9b3b2425f8a4979fccea1"}, + {file = "grpcio-1.68.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:32a9cb4686eb2e89d97022ecb9e1606d132f85c444354c17a7dbde4a455e4a3b"}, + {file = "grpcio-1.68.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dba037ff8d284c8e7ea9a510c8ae0f5b016004f13c3648f72411c464b67ff2fb"}, + {file = "grpcio-1.68.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0efbbd849867e0e569af09e165363ade75cf84f5229b2698d53cf22c7a4f9e21"}, + {file = "grpcio-1.68.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:4e300e6978df0b65cc2d100c54e097c10dfc7018b9bd890bbbf08022d47f766d"}, + {file = "grpcio-1.68.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:6f9c7ad1a23e1047f827385f4713b5b8c6c7d325705be1dd3e31fb00dcb2f665"}, + {file = "grpcio-1.68.0-cp313-cp313-win32.whl", hash = "sha256:3ac7f10850fd0487fcce169c3c55509101c3bde2a3b454869639df2176b60a03"}, + {file = "grpcio-1.68.0-cp313-cp313-win_amd64.whl", hash = "sha256:afbf45a62ba85a720491bfe9b2642f8761ff348006f5ef67e4622621f116b04a"}, + {file = "grpcio-1.68.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:f8f695d9576ce836eab27ba7401c60acaf9ef6cf2f70dfe5462055ba3df02cc3"}, + {file = "grpcio-1.68.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9fe1b141cda52f2ca73e17d2d3c6a9f3f3a0c255c216b50ce616e9dca7e3441d"}, + {file = "grpcio-1.68.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:4df81d78fd1646bf94ced4fb4cd0a7fe2e91608089c522ef17bc7db26e64effd"}, + {file = "grpcio-1.68.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46a2d74d4dd8993151c6cd585594c082abe74112c8e4175ddda4106f2ceb022f"}, + {file = "grpcio-1.68.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a17278d977746472698460c63abf333e1d806bd41f2224f90dbe9460101c9796"}, + {file = "grpcio-1.68.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:15377bce516b1c861c35e18eaa1c280692bf563264836cece693c0f169b48829"}, + {file = "grpcio-1.68.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cc5f0a4f5904b8c25729a0498886b797feb817d1fd3812554ffa39551112c161"}, + {file = "grpcio-1.68.0-cp38-cp38-win32.whl", hash = "sha256:def1a60a111d24376e4b753db39705adbe9483ef4ca4761f825639d884d5da78"}, + {file = "grpcio-1.68.0-cp38-cp38-win_amd64.whl", hash = "sha256:55d3b52fd41ec5772a953612db4e70ae741a6d6ed640c4c89a64f017a1ac02b5"}, + {file = "grpcio-1.68.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:0d230852ba97654453d290e98d6aa61cb48fa5fafb474fb4c4298d8721809354"}, + {file = "grpcio-1.68.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:50992f214264e207e07222703c17d9cfdcc2c46ed5a1ea86843d440148ebbe10"}, + {file = "grpcio-1.68.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:14331e5c27ed3545360464a139ed279aa09db088f6e9502e95ad4bfa852bb116"}, + {file = "grpcio-1.68.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f84890b205692ea813653ece4ac9afa2139eae136e419231b0eec7c39fdbe4c2"}, + {file = "grpcio-1.68.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0cf343c6f4f6aa44863e13ec9ddfe299e0be68f87d68e777328bff785897b05"}, + {file = "grpcio-1.68.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:fd2c2d47969daa0e27eadaf15c13b5e92605c5e5953d23c06d0b5239a2f176d3"}, + {file = "grpcio-1.68.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:18668e36e7f4045820f069997834e94e8275910b1f03e078a6020bd464cb2363"}, + {file = "grpcio-1.68.0-cp39-cp39-win32.whl", hash = "sha256:2af76ab7c427aaa26aa9187c3e3c42f38d3771f91a20f99657d992afada2294a"}, + {file = "grpcio-1.68.0-cp39-cp39-win_amd64.whl", hash = "sha256:e694b5928b7b33ca2d3b4d5f9bf8b5888906f181daff6b406f4938f3a997a490"}, + {file = "grpcio-1.68.0.tar.gz", hash = "sha256:7e7483d39b4a4fddb9906671e9ea21aaad4f031cdfc349fec76bdfa1e404543a"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.66.1)"] +protobuf = ["grpcio-tools (>=1.68.0)"] [[package]] name = "grpcio-tools" -version = "1.66.1" +version = "1.68.0" description = "Protobuf code generator for gRPC" optional = false python-versions = ">=3.8" files = [ - {file = "grpcio_tools-1.66.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:e0c71405399ef59782600b1f0bdebc69ba12d7c9527cd268162a86273971d294"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:df1a174a6f9d3b4c380f005f33352d2e95464f33f021fb08084735a2eb6e23b1"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:7d789bfe53fce9e87aa80c3694a366258ce4c41b706258e9228ed4994832b780"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95c44a265ff01fd05166edae9350bc2e7d1d9a95e8f53b8cd04d2ae0a588c583"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b962a8767c3c0f9afe92e0dd6bb0b2305d35195a1053f84d4d31f585b87557ed"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:d8616773126ec3cdf747b06a12e957b43ac15c34e4728def91fa67249a7c689a"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0067e79b6001560ac6acc78cca11fd3504fa27f8af46e3cdbac2f4998505e597"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-win32.whl", hash = "sha256:fa4f95a79a34afc3b5464895d091cd1911227fc3ab0441b9a37cd1817cf7db86"}, - {file = "grpcio_tools-1.66.1-cp310-cp310-win_amd64.whl", hash = "sha256:3acce426f5e643de63019311171f4d31131da8149de518716a95c29a2c12dd38"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:9a07e24feb7472419cf70ebbb38dd4299aea696f91f191b62a99b3ee9ff03f89"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:097a069e7c640043921ecaf3e88d7af78ccd40c25dbddc91db2a4a2adbd0393d"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:016fa273dc696c9d8045091ac50e000bce766183a6b150801f51c2946e33dbe3"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ec9f4f964f8e8ed5e9cc13deb678c83d5597074c256805373220627833bc5ad"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3198815814cdd12bdb69b7580d7770a4ad4c8b2093e0bd6b987bc817618e3eec"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:796620fc41d3fbb566d9614ef22bc55df67fac1f1e19c1e0fb6ec48bc9b6a44b"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:222d8dc218560698e1abf652fb47e4015994ec7a265ef46e012fd9c9e77a4d6b"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-win32.whl", hash = "sha256:56e17a11f34df252b4c6fb8aa8cd7b44d162dba9f3333be87ddf7c8bf496622a"}, - {file = "grpcio_tools-1.66.1-cp311-cp311-win_amd64.whl", hash = "sha256:edd52d667f2aa3c73233be0a821596937f24536647c12d96bfc54aa4cb04747d"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:869b6960d5daffda0dac1a474b44144f0dace0d4336394e499c4f400c5e2f8d9"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:68d9390bf9ba863ac147fc722d6548caa587235e887cac1bc2438212e89d1de7"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:b8660401beca7e3af28722439e07b0bcdca80b4a68f5a5a1138ae7b7780a6abf"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb67b9aa9cd69468bceb933e8e0f89fd13695746c018c4d2e6b3b84e73f3ad97"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5daceb9716e31edc0e1ba0f93303785211438c43502edddad7a919fc4cb3d664"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0a86398a4cd0665bc7f09fa90b89bac592c959d2c895bf3cf5d47a98c0f2d24c"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1b4acb53338072ab3023e418a5c7059cb15686abd1607516fa1453406dd5f69d"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-win32.whl", hash = "sha256:88e04b7546101bc79c868c941777efd5088063a9e4f03b4d7263dde796fbabf7"}, - {file = "grpcio_tools-1.66.1-cp312-cp312-win_amd64.whl", hash = "sha256:5b4fc56abeafae74140f5da29af1093e88ce64811d77f1a81c3146e9e996fb6a"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:d4dd2ff982c1aa328ef47ce34f07af82f1f13599912fb1618ebc5fe1e14dddb8"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:066648543f786cb74b1fef5652359952455dbba37e832642026fd9fd8a219b5f"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:d19d47744c30e6bafa76b3113740e71f382d75ebb2918c1efd62ebe6ba7e20f9"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:739c53571130b359b738ac7d6d0a1f772e15779b66df7e6764bee4071cd38689"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2226ff8d3ecba83b7622946df19d6e8e15cb52f761b8d9e2f807b228db5f1b1e"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2f4b1498cb8b422fbae32a491c9154e8d47650caf5852fbe6b3b34253e824343"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:93d2d9e14e81affdc63d67c42eb16a8da1b6fecc16442a703ca60eb0e7591691"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-win32.whl", hash = "sha256:d761dfd97a10e4aae73628b5120c64e56f0cded88651d0003d2d80e678c3e7c9"}, - {file = "grpcio_tools-1.66.1-cp38-cp38-win_amd64.whl", hash = "sha256:e1c2ac0955f5fb87b8444316e475242d194c3f3cd0b7b6e54b889a7b6f05156f"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:5f1f04578b72c281e39274348a61d240c48d5321ba8d7a8838e194099ecbc322"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:da9b0c08dbbf07535ee1b75a22d0acc5675a808a3a3df9f9b21e0e73ddfbb3a9"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:e302b4e1fa856d74ff65c65888b3a37153287ce6ad5bad80b2fdf95130accec2"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7fc3f62494f238774755ff90f0e66a93ac7972ea1eb7180c45acf4fd53b25cca"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cad65ff22459aa387f543d293f54834c9aac8f76fb7416a7046556df75b567"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3d17a27c567a5e4d18f487368215cb51b43e2499059fd6113b92f7ae1fee48be"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4df167e67b083f96bc277032a526f6186e98662aaa49baea1dfb8ecfe26ce117"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-win32.whl", hash = "sha256:f94d5193b2f2a9595795b83e7978b2bee1c0399da66f2f24d179c388f81fb99c"}, - {file = "grpcio_tools-1.66.1-cp39-cp39-win_amd64.whl", hash = "sha256:66f527a1e3f063065e29cf6f3e55892434d13a5a51e3b22402e09da9521e98a3"}, - {file = "grpcio_tools-1.66.1.tar.gz", hash = "sha256:5055ffe840ea8f505c30378be02afb4dbecb33480e554debe10b63d6b2f641c3"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:9509a5c3ed3d54fa7ac20748d501cb86668f764605a0a68f275339ee0f1dc1a6"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:59a885091bf29700ba0e14a954d156a18714caaa2006a7f328b18e1ac4b1e721"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:d3e678162e1d7a8720dc05fdd537fc8df082a50831791f7bb1c6f90095f8368b"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10d03e3ad4af6284fd27cb14f5a3d52045913c1253e3e24a384ed91bc8adbfcd"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1769d7f529de1cc102f7fb900611e3c0b69bdb244fca1075b24d6e5b49024586"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:88640d95ee41921ac7352fa5fadca52a06d7e21fbe53e6a706a9a494f756be7d"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e903d07bc65232aa9e7704c829aec263e1e139442608e473d7912417a9908e29"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-win32.whl", hash = "sha256:66b70b37184d40806844f51c2757c6b852511d4ea46a3bf2c7e931a47b455bc6"}, + {file = "grpcio_tools-1.68.0-cp310-cp310-win_amd64.whl", hash = "sha256:b47ae076ffb29a68e517bc03552bef0d9c973f8e18adadff180b123e973a26ea"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:f65942fab440e99113ce14436deace7554d5aa554ea18358e3a5f3fc47efe322"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8fefc6d000e169a97336feded23ce614df3fb9926fc48c7a9ff8ea459d93b5b0"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:6dd69c9f3ff85eee8d1f71adf7023c638ca8d465633244ac1b7f19bc3668612d"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7dc5195dc02057668cc22da1ff1aea1811f6fa0deb801b3194dec1fe0bab1cf0"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849b12bec2320e49e988df104c92217d533e01febac172a4495caab36d9f0edc"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:766c2cd2e365e0fc0e559af56f2c2d144d95fd7cb8668a34d533e66d6435eb34"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2ec3a2e0afa4866ccc5ba33c071aebaa619245dfdd840cbb74f2b0591868d085"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-win32.whl", hash = "sha256:80b733014eb40d920d836d782e5cdea0dcc90d251a2ffb35ab378ef4f8a42c14"}, + {file = "grpcio_tools-1.68.0-cp311-cp311-win_amd64.whl", hash = "sha256:f95103e3e4e7fee7c6123bc9e4e925e07ad24d8d09d7c1c916fb6c8d1cb9e726"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:dd9a654af8536b3de8525bff72a245fef62d572eabf96ac946fe850e707cb27d"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0f77957e3a0916a0dd18d57ce6b49d95fc9a5cfed92310f226339c0fda5394f6"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:92a09afe64fe26696595de2036e10967876d26b12c894cc9160f00152cacebe7"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28ebdbad2ef16699d07400b65260240851049a75502eff69a59b127d3ab960f1"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d3150d784d8050b10dcf5eb06e04fb90747a1547fed3a062a608d940fe57066"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:261d98fd635595de42aadee848f9af46da6654d63791c888891e94f66c5d0682"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:061345c0079b9471f32230186ab01acb908ea0e577bc1699a8cf47acef8be4af"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-win32.whl", hash = "sha256:533ce6791a5ba21e35d74c6c25caf4776f5692785a170c01ea1153783ad5af31"}, + {file = "grpcio_tools-1.68.0-cp312-cp312-win_amd64.whl", hash = "sha256:56842a0ce74b4b92eb62cd5ee00181b2d3acc58ba0c4fd20d15a5db51f891ba6"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:1117a81592542f0c36575082daa6413c57ca39188b18a4c50ec7332616f4b97e"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:51e5a090849b30c99a2396d42140b8a3e558eff6cdfa12603f9582e2cd07724e"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:4fe611d89a1836df8936f066d39c7eb03d4241806449ec45d4b8e1c843ae8011"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c10f3faa0cc4d89eb546f53b623837af23e86dc495d3b89510bcc0e0a6c0b8b2"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46b537480b8fd2195d988120a28467601a2a3de2e504043b89fb90318e1eb754"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:17d0c9004ea82b4213955a585401e80c30d4b37a1d4ace32ccdea8db4d3b7d43"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:2919faae04fe47bad57fc9b578aeaab527da260e851f321a253b6b11862254a8"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-win32.whl", hash = "sha256:ee86157ef899f58ba2fe1055cce0d33bd703e99aa6d5a0895581ac3969f06bfa"}, + {file = "grpcio_tools-1.68.0-cp313-cp313-win_amd64.whl", hash = "sha256:d0470ffc6a93c86cdda48edd428d22e2fef17d854788d60d0d5f291038873157"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:795f2cd76f68a12b0b5541b98187ba367dd69b49d359cf98b781ead742961370"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:57e29e78c33fb1b1d557fbe7650d722d1f2b0a9f53ea73beb8ea47e627b6000b"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:700f171cd3293ee8d50cd43171562ff07b14fa8e49ee471cd91c6924c7da8644"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:196cd8a3a5963a4c9e424314df9eb573b305e6f958fe6508d26580ce01e7aa56"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cad40c3164ee9cef62524dea509449ea581b17ea493178beef051bf79b5103ca"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ab93fab49fa1e699e577ff5fbb99aba660164d710d4c33cfe0aa9d06f585539f"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:511224a99726eb84db9ddb84dc8a75377c3eae797d835f99e80128ec618376d5"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-win32.whl", hash = "sha256:b4ca81770cd729a9ea536d871aacedbde2b732bb9bb83c9d993d63f58502153d"}, + {file = "grpcio_tools-1.68.0-cp38-cp38-win_amd64.whl", hash = "sha256:6950725bf7a496f81d3ec3324334ffc9dbec743b510dd0e897f51f8627eeb6ac"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:01ace351a51d7ee120963a4612b1f00e964462ec548db20d17f8902e238592c8"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5afd2f3f7257b52228a7808a2b4a765893d4d802d7a2377d9284853e67d045c6"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:453ee3193d59c974c678d91f08786f43c25ef753651b0825dc3d008c31baf68d"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b094b22919b786ad73c20372ef5e546330e7cd2c6dc12293b7ed586975f35d38"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26335eea976dfc1ff5d90b19c309a9425bd53868112a0507ad20f297f2c21d3e"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c77ecc5164bb413a613bdac9091dcc29d26834a2ac42fcd1afdfcda9e3003e68"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e31be6dc61496a59c1079b0a669f93dfcc2cdc4b1dbdc4374247cd09cee1329b"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-win32.whl", hash = "sha256:3aa40958355920ae2846c6fb5cadac4f2c8e33234a2982fef8101da0990e3968"}, + {file = "grpcio_tools-1.68.0-cp39-cp39-win_amd64.whl", hash = "sha256:19bafb80948eda979b1b3a63c1567162d06249f43068a0e46a028a448e6f72d4"}, + {file = "grpcio_tools-1.68.0.tar.gz", hash = "sha256:737804ec2225dd4cc27e633b4ca0e963b0795161bf678285fab6586e917fd867"}, ] [package.dependencies] -grpcio = ">=1.66.1" +grpcio = ">=1.68.0" protobuf = ">=5.26.1,<6.0dev" setuptools = "*" @@ -1542,13 +1564,13 @@ test = ["eth-utils (>=1.0.1,<3)", "hypothesis (>=3.44.24,<=6.31.6)", "pytest (>= [[package]] name = "identify" -version = "2.6.1" +version = "2.6.2" description = "File identification library for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, - {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, + {file = "identify-2.6.2-py2.py3-none-any.whl", hash = "sha256:c097384259f49e372f4ea00a19719d95ae27dd5ff0fd77ad630aa891306b82f3"}, + {file = "identify-2.6.2.tar.gz", hash = "sha256:fab5c716c24d7a789775228823797296a2994b075fb6080ac83a102772a98cbd"}, ] [package.extras] @@ -1616,13 +1638,13 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-specifications" -version = "2023.12.1" +version = "2024.10.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, - {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, ] [package.dependencies] @@ -1872,13 +1894,13 @@ files = [ [[package]] name = "packaging" -version = "24.1" +version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -1955,6 +1977,113 @@ nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" +[[package]] +name = "propcache" +version = "0.2.0" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.8" +files = [ + {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c5869b8fd70b81835a6f187c5fdbe67917a04d7e52b6e7cc4e5fe39d55c39d58"}, + {file = "propcache-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:952e0d9d07609d9c5be361f33b0d6d650cd2bae393aabb11d9b719364521984b"}, + {file = "propcache-0.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:33ac8f098df0585c0b53009f039dfd913b38c1d2edafed0cedcc0c32a05aa110"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e48e8875e6c13909c800fa344cd54cc4b2b0db1d5f911f840458a500fde2c2"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388f3217649d6d59292b722d940d4d2e1e6a7003259eb835724092a1cca0203a"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f571aea50ba5623c308aa146eb650eebf7dbe0fd8c5d946e28343cb3b5aad577"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3dfafb44f7bb35c0c06eda6b2ab4bfd58f02729e7c4045e179f9a861b07c9850"}, + {file = "propcache-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3ebe9a75be7ab0b7da2464a77bb27febcb4fab46a34f9288f39d74833db7f61"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d2f0d0f976985f85dfb5f3d685697ef769faa6b71993b46b295cdbbd6be8cc37"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a3dc1a4b165283bd865e8f8cb5f0c64c05001e0718ed06250d8cac9bec115b48"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e0f07b42d2a50c7dd2d8675d50f7343d998c64008f1da5fef888396b7f84630"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e63e3e1e0271f374ed489ff5ee73d4b6e7c60710e1f76af5f0e1a6117cd26394"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:56bb5c98f058a41bb58eead194b4db8c05b088c93d94d5161728515bd52b052b"}, + {file = "propcache-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7665f04d0c7f26ff8bb534e1c65068409bf4687aa2534faf7104d7182debb336"}, + {file = "propcache-0.2.0-cp310-cp310-win32.whl", hash = "sha256:7cf18abf9764746b9c8704774d8b06714bcb0a63641518a3a89c7f85cc02c2ad"}, + {file = "propcache-0.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:cfac69017ef97db2438efb854edf24f5a29fd09a536ff3a992b75990720cdc99"}, + {file = "propcache-0.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:63f13bf09cc3336eb04a837490b8f332e0db41da66995c9fd1ba04552e516354"}, + {file = "propcache-0.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608cce1da6f2672a56b24a015b42db4ac612ee709f3d29f27a00c943d9e851de"}, + {file = "propcache-0.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:466c219deee4536fbc83c08d09115249db301550625c7fef1c5563a584c9bc87"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc2db02409338bf36590aa985a461b2c96fce91f8e7e0f14c50c5fcc4f229016"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6ed8db0a556343d566a5c124ee483ae113acc9a557a807d439bcecc44e7dfbb"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91997d9cb4a325b60d4e3f20967f8eb08dfcb32b22554d5ef78e6fd1dda743a2"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c7dde9e533c0a49d802b4f3f218fa9ad0a1ce21f2c2eb80d5216565202acab4"}, + {file = "propcache-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffcad6c564fe6b9b8916c1aefbb37a362deebf9394bd2974e9d84232e3e08504"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:97a58a28bcf63284e8b4d7b460cbee1edaab24634e82059c7b8c09e65284f178"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:945db8ee295d3af9dbdbb698cce9bbc5c59b5c3fe328bbc4387f59a8a35f998d"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39e104da444a34830751715f45ef9fc537475ba21b7f1f5b0f4d71a3b60d7fe2"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c5ecca8f9bab618340c8e848d340baf68bcd8ad90a8ecd7a4524a81c1764b3db"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c436130cc779806bdf5d5fae0d848713105472b8566b75ff70048c47d3961c5b"}, + {file = "propcache-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:191db28dc6dcd29d1a3e063c3be0b40688ed76434622c53a284e5427565bbd9b"}, + {file = "propcache-0.2.0-cp311-cp311-win32.whl", hash = "sha256:5f2564ec89058ee7c7989a7b719115bdfe2a2fb8e7a4543b8d1c0cc4cf6478c1"}, + {file = "propcache-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6e2e54267980349b723cff366d1e29b138b9a60fa376664a157a342689553f71"}, + {file = "propcache-0.2.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ee7606193fb267be4b2e3b32714f2d58cad27217638db98a60f9efb5efeccc2"}, + {file = "propcache-0.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:91ee8fc02ca52e24bcb77b234f22afc03288e1dafbb1f88fe24db308910c4ac7"}, + {file = "propcache-0.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2e900bad2a8456d00a113cad8c13343f3b1f327534e3589acc2219729237a2e8"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f52a68c21363c45297aca15561812d542f8fc683c85201df0bebe209e349f793"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e41d67757ff4fbc8ef2af99b338bfb955010444b92929e9e55a6d4dcc3c4f09"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a64e32f8bd94c105cc27f42d3b658902b5bcc947ece3c8fe7bc1b05982f60e89"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55346705687dbd7ef0d77883ab4f6fabc48232f587925bdaf95219bae072491e"}, + {file = "propcache-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00181262b17e517df2cd85656fcd6b4e70946fe62cd625b9d74ac9977b64d8d9"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6994984550eaf25dd7fc7bd1b700ff45c894149341725bb4edc67f0ffa94efa4"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:56295eb1e5f3aecd516d91b00cfd8bf3a13991de5a479df9e27dd569ea23959c"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:439e76255daa0f8151d3cb325f6dd4a3e93043e6403e6491813bcaaaa8733887"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f6475a1b2ecb310c98c28d271a30df74f9dd436ee46d09236a6b750a7599ce57"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3444cdba6628accf384e349014084b1cacd866fbb88433cd9d279d90a54e0b23"}, + {file = "propcache-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a9d9b4d0a9b38d1c391bb4ad24aa65f306c6f01b512e10a8a34a2dc5675d348"}, + {file = "propcache-0.2.0-cp312-cp312-win32.whl", hash = "sha256:69d3a98eebae99a420d4b28756c8ce6ea5a29291baf2dc9ff9414b42676f61d5"}, + {file = "propcache-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ad9c9b99b05f163109466638bd30ada1722abb01bbb85c739c50b6dc11f92dc3"}, + {file = "propcache-0.2.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ecddc221a077a8132cf7c747d5352a15ed763b674c0448d811f408bf803d9ad7"}, + {file = "propcache-0.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0e53cb83fdd61cbd67202735e6a6687a7b491c8742dfc39c9e01e80354956763"}, + {file = "propcache-0.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92fe151145a990c22cbccf9ae15cae8ae9eddabfc949a219c9f667877e40853d"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a21ef516d36909931a2967621eecb256018aeb11fc48656e3257e73e2e247a"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f88a4095e913f98988f5b338c1d4d5d07dbb0b6bad19892fd447484e483ba6b"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a5b3bb545ead161be780ee85a2b54fdf7092815995661947812dde94a40f6fb"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67aeb72e0f482709991aa91345a831d0b707d16b0257e8ef88a2ad246a7280bf"}, + {file = "propcache-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c997f8c44ec9b9b0bcbf2d422cc00a1d9b9c681f56efa6ca149a941e5560da2"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a66df3d4992bc1d725b9aa803e8c5a66c010c65c741ad901e260ece77f58d2f"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3ebbcf2a07621f29638799828b8d8668c421bfb94c6cb04269130d8de4fb7136"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1235c01ddaa80da8235741e80815ce381c5267f96cc49b1477fdcf8c047ef325"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3947483a381259c06921612550867b37d22e1df6d6d7e8361264b6d037595f44"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d5bed7f9805cc29c780f3aee05de3262ee7ce1f47083cfe9f77471e9d6777e83"}, + {file = "propcache-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4a91d44379f45f5e540971d41e4626dacd7f01004826a18cb048e7da7e96544"}, + {file = "propcache-0.2.0-cp313-cp313-win32.whl", hash = "sha256:f902804113e032e2cdf8c71015651c97af6418363bea8d78dc0911d56c335032"}, + {file = "propcache-0.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:8f188cfcc64fb1266f4684206c9de0e80f54622c3f22a910cbd200478aeae61e"}, + {file = "propcache-0.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:53d1bd3f979ed529f0805dd35ddaca330f80a9a6d90bc0121d2ff398f8ed8861"}, + {file = "propcache-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:83928404adf8fb3d26793665633ea79b7361efa0287dfbd372a7e74311d51ee6"}, + {file = "propcache-0.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:77a86c261679ea5f3896ec060be9dc8e365788248cc1e049632a1be682442063"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:218db2a3c297a3768c11a34812e63b3ac1c3234c3a086def9c0fee50d35add1f"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7735e82e3498c27bcb2d17cb65d62c14f1100b71723b68362872bca7d0913d90"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:20a617c776f520c3875cf4511e0d1db847a076d720714ae35ffe0df3e440be68"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67b69535c870670c9f9b14a75d28baa32221d06f6b6fa6f77a0a13c5a7b0a5b9"}, + {file = "propcache-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4569158070180c3855e9c0791c56be3ceeb192defa2cdf6a3f39e54319e56b89"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:db47514ffdbd91ccdc7e6f8407aac4ee94cc871b15b577c1c324236b013ddd04"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:2a60ad3e2553a74168d275a0ef35e8c0a965448ffbc3b300ab3a5bb9956c2162"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:662dd62358bdeaca0aee5761de8727cfd6861432e3bb828dc2a693aa0471a563"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:25a1f88b471b3bc911d18b935ecb7115dff3a192b6fef46f0bfaf71ff4f12418"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:f60f0ac7005b9f5a6091009b09a419ace1610e163fa5deaba5ce3484341840e7"}, + {file = "propcache-0.2.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:74acd6e291f885678631b7ebc85d2d4aec458dd849b8c841b57ef04047833bed"}, + {file = "propcache-0.2.0-cp38-cp38-win32.whl", hash = "sha256:d9b6ddac6408194e934002a69bcaadbc88c10b5f38fb9307779d1c629181815d"}, + {file = "propcache-0.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:676135dcf3262c9c5081cc8f19ad55c8a64e3f7282a21266d05544450bffc3a5"}, + {file = "propcache-0.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25c8d773a62ce0451b020c7b29a35cfbc05de8b291163a7a0f3b7904f27253e6"}, + {file = "propcache-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:375a12d7556d462dc64d70475a9ee5982465fbb3d2b364f16b86ba9135793638"}, + {file = "propcache-0.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1ec43d76b9677637a89d6ab86e1fef70d739217fefa208c65352ecf0282be957"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f45eec587dafd4b2d41ac189c2156461ebd0c1082d2fe7013571598abb8505d1"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc092ba439d91df90aea38168e11f75c655880c12782facf5cf9c00f3d42b562"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa1076244f54bb76e65e22cb6910365779d5c3d71d1f18b275f1dfc7b0d71b4d"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:682a7c79a2fbf40f5dbb1eb6bfe2cd865376deeac65acf9beb607505dced9e12"}, + {file = "propcache-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e40876731f99b6f3c897b66b803c9e1c07a989b366c6b5b475fafd1f7ba3fb8"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:363ea8cd3c5cb6679f1c2f5f1f9669587361c062e4899fce56758efa928728f8"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:140fbf08ab3588b3468932974a9331aff43c0ab8a2ec2c608b6d7d1756dbb6cb"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e70fac33e8b4ac63dfc4c956fd7d85a0b1139adcfc0d964ce288b7c527537fea"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:b33d7a286c0dc1a15f5fc864cc48ae92a846df287ceac2dd499926c3801054a6"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f6d5749fdd33d90e34c2efb174c7e236829147a2713334d708746e94c4bde40d"}, + {file = "propcache-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22aa8f2272d81d9317ff5756bb108021a056805ce63dd3630e27d042c8092798"}, + {file = "propcache-0.2.0-cp39-cp39-win32.whl", hash = "sha256:73e4b40ea0eda421b115248d7e79b59214411109a5bc47d0d48e4c73e3b8fcf9"}, + {file = "propcache-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:9517d5e9e0731957468c29dbfd0f976736a0e55afaea843726e887f36fe017df"}, + {file = "propcache-0.2.0-py3-none-any.whl", hash = "sha256:2ccc28197af5313706511fab3a8b66dcd6da067a1331372c82ea1cb74285e036"}, + {file = "propcache-0.2.0.tar.gz", hash = "sha256:df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70"}, +] + [[package]] name = "protobuf" version = "5.26.1" @@ -1999,43 +2128,43 @@ files = [ [[package]] name = "pycryptodome" -version = "3.20.0" +version = "3.21.0" description = "Cryptographic library for Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "pycryptodome-3.20.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:f0e6d631bae3f231d3634f91ae4da7a960f7ff87f2865b2d2b831af1dfb04e9a"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:baee115a9ba6c5d2709a1e88ffe62b73ecc044852a925dcb67713a288c4ec70f"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:417a276aaa9cb3be91f9014e9d18d10e840a7a9b9a9be64a42f553c5b50b4d1d"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a1250b7ea809f752b68e3e6f3fd946b5939a52eaeea18c73bdab53e9ba3c2dd"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:d5954acfe9e00bc83ed9f5cb082ed22c592fbbef86dc48b907238be64ead5c33"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-win32.whl", hash = "sha256:06d6de87c19f967f03b4cf9b34e538ef46e99a337e9a61a77dbe44b2cbcf0690"}, - {file = "pycryptodome-3.20.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ec0bb1188c1d13426039af8ffcb4dbe3aad1d7680c35a62d8eaf2a529b5d3d4f"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5601c934c498cd267640b57569e73793cb9a83506f7c73a8ec57a516f5b0b091"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d29daa681517f4bc318cd8a23af87e1f2a7bad2fe361e8aa29c77d652a065de4"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3427d9e5310af6680678f4cce149f54e0bb4af60101c7f2c16fdf878b39ccccc"}, - {file = "pycryptodome-3.20.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:3cd3ef3aee1079ae44afaeee13393cf68b1058f70576b11439483e34f93cf818"}, - {file = "pycryptodome-3.20.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac1c7c0624a862f2e53438a15c9259d1655325fc2ec4392e66dc46cdae24d044"}, - {file = "pycryptodome-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:76658f0d942051d12a9bd08ca1b6b34fd762a8ee4240984f7c06ddfb55eaf15a"}, - {file = "pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f35d6cee81fa145333137009d9c8ba90951d7d77b67c79cbe5f03c7eb74d8fe2"}, - {file = "pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cb39afede7055127e35a444c1c041d2e8d2f1f9c121ecef573757ba4cd2c3c"}, - {file = "pycryptodome-3.20.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a4c4dc60b78ec41d2afa392491d788c2e06edf48580fbfb0dd0f828af49d25"}, - {file = "pycryptodome-3.20.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fb3b87461fa35afa19c971b0a2b7456a7b1db7b4eba9a8424666104925b78128"}, - {file = "pycryptodome-3.20.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:acc2614e2e5346a4a4eab6e199203034924313626f9620b7b4b38e9ad74b7e0c"}, - {file = "pycryptodome-3.20.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:210ba1b647837bfc42dd5a813cdecb5b86193ae11a3f5d972b9a0ae2c7e9e4b4"}, - {file = "pycryptodome-3.20.0-cp35-abi3-win32.whl", hash = "sha256:8d6b98d0d83d21fb757a182d52940d028564efe8147baa9ce0f38d057104ae72"}, - {file = "pycryptodome-3.20.0-cp35-abi3-win_amd64.whl", hash = "sha256:9b3ae153c89a480a0ec402e23db8d8d84a3833b65fa4b15b81b83be9d637aab9"}, - {file = "pycryptodome-3.20.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:4401564ebf37dfde45d096974c7a159b52eeabd9969135f0426907db367a652a"}, - {file = "pycryptodome-3.20.0-pp27-pypy_73-win32.whl", hash = "sha256:ec1f93feb3bb93380ab0ebf8b859e8e5678c0f010d2d78367cf6bc30bfeb148e"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:acae12b9ede49f38eb0ef76fdec2df2e94aad85ae46ec85be3648a57f0a7db04"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f47888542a0633baff535a04726948e876bf1ed880fddb7c10a736fa99146ab3"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e0e4a987d38cfc2e71b4a1b591bae4891eeabe5fa0f56154f576e26287bfdea"}, - {file = "pycryptodome-3.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c18b381553638414b38705f07d1ef0a7cf301bc78a5f9bc17a957eb19446834b"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a60fedd2b37b4cb11ccb5d0399efe26db9e0dd149016c1cc6c8161974ceac2d6"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:405002eafad114a2f9a930f5db65feef7b53c4784495dd8758069b89baf68eab"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ab6ab0cb755154ad14e507d1df72de9897e99fd2d4922851a276ccc14f4f1a5"}, - {file = "pycryptodome-3.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:acf6e43fa75aca2d33e93409f2dafe386fe051818ee79ee8a3e21de9caa2ac9e"}, - {file = "pycryptodome-3.20.0.tar.gz", hash = "sha256:09609209ed7de61c2b560cc5c8c4fbf892f8b15b1faf7e4cbffac97db1fffda7"}, +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "pycryptodome-3.21.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:dad9bf36eda068e89059d1f07408e397856be9511d7113ea4b586642a429a4fd"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:a1752eca64c60852f38bb29e2c86fca30d7672c024128ef5d70cc15868fa10f4"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ba4cc304eac4d4d458f508d4955a88ba25026890e8abff9b60404f76a62c55e"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cb087b8612c8a1a14cf37dd754685be9a8d9869bed2ffaaceb04850a8aeef7e"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:26412b21df30b2861424a6c6d5b1d8ca8107612a4cfa4d0183e71c5d200fb34a"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-win32.whl", hash = "sha256:cc2269ab4bce40b027b49663d61d816903a4bd90ad88cb99ed561aadb3888dd3"}, + {file = "pycryptodome-3.21.0-cp27-cp27m-win_amd64.whl", hash = "sha256:0fa0a05a6a697ccbf2a12cec3d6d2650b50881899b845fac6e87416f8cb7e87d"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6cce52e196a5f1d6797ff7946cdff2038d3b5f0aba4a43cb6bf46b575fd1b5bb"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:a915597ffccabe902e7090e199a7bf7a381c5506a747d5e9d27ba55197a2c568"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4e74c522d630766b03a836c15bff77cb657c5fdf098abf8b1ada2aebc7d0819"}, + {file = "pycryptodome-3.21.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:a3804675283f4764a02db05f5191eb8fec2bb6ca34d466167fc78a5f05bbe6b3"}, + {file = "pycryptodome-3.21.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:2480ec2c72438430da9f601ebc12c518c093c13111a5c1644c82cdfc2e50b1e4"}, + {file = "pycryptodome-3.21.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:de18954104667f565e2fbb4783b56667f30fb49c4d79b346f52a29cb198d5b6b"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de4b7263a33947ff440412339cb72b28a5a4c769b5c1ca19e33dd6cd1dcec6e"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0714206d467fc911042d01ea3a1847c847bc10884cf674c82e12915cfe1649f8"}, + {file = "pycryptodome-3.21.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d85c1b613121ed3dbaa5a97369b3b757909531a959d229406a75b912dd51dd1"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:8898a66425a57bcf15e25fc19c12490b87bd939800f39a03ea2de2aea5e3611a"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_2_i686.whl", hash = "sha256:932c905b71a56474bff8a9c014030bc3c882cee696b448af920399f730a650c2"}, + {file = "pycryptodome-3.21.0-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:18caa8cfbc676eaaf28613637a89980ad2fd96e00c564135bf90bc3f0b34dd93"}, + {file = "pycryptodome-3.21.0-cp36-abi3-win32.whl", hash = "sha256:280b67d20e33bb63171d55b1067f61fbd932e0b1ad976b3a184303a3dad22764"}, + {file = "pycryptodome-3.21.0-cp36-abi3-win_amd64.whl", hash = "sha256:b7aa25fc0baa5b1d95b7633af4f5f1838467f1815442b22487426f94e0d66c53"}, + {file = "pycryptodome-3.21.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:2cb635b67011bc147c257e61ce864879ffe6d03342dc74b6045059dfbdedafca"}, + {file = "pycryptodome-3.21.0-pp27-pypy_73-win32.whl", hash = "sha256:4c26a2f0dc15f81ea3afa3b0c87b87e501f235d332b7f27e2225ecb80c0b1cdd"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d5ebe0763c982f069d3877832254f64974139f4f9655058452603ff559c482e8"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ee86cbde706be13f2dec5a42b52b1c1d1cbb90c8e405c68d0755134735c8dc6"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fd54003ec3ce4e0f16c484a10bc5d8b9bd77fa662a12b85779a2d2d85d67ee0"}, + {file = "pycryptodome-3.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5dfafca172933506773482b0e18f0cd766fd3920bd03ec85a283df90d8a17bc6"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:590ef0898a4b0a15485b05210b4a1c9de8806d3ad3d47f74ab1dc07c67a6827f"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35e442630bc4bc2e1878482d6f59ea22e280d7121d7adeaedba58c23ab6386b"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff99f952db3db2fbe98a0b355175f93ec334ba3d01bbde25ad3a5a33abc02b58"}, + {file = "pycryptodome-3.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8acd7d34af70ee63f9a849f957558e49a98f8f1634f86a59d2be62bb8e93f71c"}, + {file = "pycryptodome-3.21.0.tar.gz", hash = "sha256:f7787e0d469bdae763b876174cf2e6c0f7be79808af26b1da96f1a64bcf47297"}, ] [[package]] @@ -2178,25 +2307,29 @@ files = [ [[package]] name = "pywin32" -version = "306" +version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, - {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, - {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, - {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, - {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, - {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, - {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, - {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, - {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, - {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, - {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, - {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, - {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, - {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] @@ -2278,105 +2411,105 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.9.11" +version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d"}, - {file = "regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8"}, - {file = "regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca"}, - {file = "regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a"}, - {file = "regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0"}, - {file = "regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268"}, - {file = "regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50"}, - {file = "regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96"}, - {file = "regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1"}, - {file = "regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9"}, - {file = "regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231"}, - {file = "regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a"}, - {file = "regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a"}, - {file = "regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a"}, - {file = "regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776"}, - {file = "regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36"}, - {file = "regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6"}, - {file = "regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554"}, - {file = "regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8"}, - {file = "regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8"}, - {file = "regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e"}, - {file = "regex-2024.9.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4"}, - {file = "regex-2024.9.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c"}, - {file = "regex-2024.9.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd"}, - {file = "regex-2024.9.11-cp38-cp38-win32.whl", hash = "sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771"}, - {file = "regex-2024.9.11-cp38-cp38-win_amd64.whl", hash = "sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62"}, - {file = "regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9"}, - {file = "regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89"}, - {file = "regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35"}, - {file = "regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142"}, - {file = "regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919"}, - {file = "regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, ] [[package]] @@ -2439,114 +2572,101 @@ test = ["hypothesis (==5.19.0)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] [[package]] name = "rpds-py" -version = "0.20.0" +version = "0.21.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2"}, - {file = "rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf"}, - {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce"}, - {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94"}, - {file = "rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee"}, - {file = "rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399"}, - {file = "rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489"}, - {file = "rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209"}, - {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad"}, - {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58"}, - {file = "rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0"}, - {file = "rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c"}, - {file = "rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6"}, - {file = "rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4"}, - {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940"}, - {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174"}, - {file = "rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139"}, - {file = "rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585"}, - {file = "rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29"}, - {file = "rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879"}, - {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2"}, - {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57"}, - {file = "rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a"}, - {file = "rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2"}, - {file = "rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24"}, - {file = "rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751"}, - {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253"}, - {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a"}, - {file = "rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5"}, - {file = "rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232"}, - {file = "rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22"}, - {file = "rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda"}, - {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420"}, - {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b"}, - {file = "rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7"}, - {file = "rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344"}, - {file = "rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec"}, - {file = "rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8"}, - {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, + {file = "rpds_py-0.21.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a017f813f24b9df929674d0332a374d40d7f0162b326562daae8066b502d0590"}, + {file = "rpds_py-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:20cc1ed0bcc86d8e1a7e968cce15be45178fd16e2ff656a243145e0b439bd250"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad116dda078d0bc4886cb7840e19811562acdc7a8e296ea6ec37e70326c1b41c"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:808f1ac7cf3b44f81c9475475ceb221f982ef548e44e024ad5f9e7060649540e"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de552f4a1916e520f2703ec474d2b4d3f86d41f353e7680b597512ffe7eac5d0"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efec946f331349dfc4ae9d0e034c263ddde19414fe5128580f512619abed05f1"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b80b4690bbff51a034bfde9c9f6bf9357f0a8c61f548942b80f7b66356508bf5"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:085ed25baac88953d4283e5b5bd094b155075bb40d07c29c4f073e10623f9f2e"}, + {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:daa8efac2a1273eed2354397a51216ae1e198ecbce9036fba4e7610b308b6153"}, + {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:95a5bad1ac8a5c77b4e658671642e4af3707f095d2b78a1fdd08af0dfb647624"}, + {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3e53861b29a13d5b70116ea4230b5f0f3547b2c222c5daa090eb7c9c82d7f664"}, + {file = "rpds_py-0.21.0-cp310-none-win32.whl", hash = "sha256:ea3a6ac4d74820c98fcc9da4a57847ad2cc36475a8bd9683f32ab6d47a2bd682"}, + {file = "rpds_py-0.21.0-cp310-none-win_amd64.whl", hash = "sha256:b8f107395f2f1d151181880b69a2869c69e87ec079c49c0016ab96860b6acbe5"}, + {file = "rpds_py-0.21.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5555db3e618a77034954b9dc547eae94166391a98eb867905ec8fcbce1308d95"}, + {file = "rpds_py-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:97ef67d9bbc3e15584c2f3c74bcf064af36336c10d2e21a2131e123ce0f924c9"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ab2c2a26d2f69cdf833174f4d9d86118edc781ad9a8fa13970b527bf8236027"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4e8921a259f54bfbc755c5bbd60c82bb2339ae0324163f32868f63f0ebb873d9"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a7ff941004d74d55a47f916afc38494bd1cfd4b53c482b77c03147c91ac0ac3"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5145282a7cd2ac16ea0dc46b82167754d5e103a05614b724457cffe614f25bd8"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de609a6f1b682f70bb7163da745ee815d8f230d97276db049ab447767466a09d"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40c91c6e34cf016fa8e6b59d75e3dbe354830777fcfd74c58b279dceb7975b75"}, + {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d2132377f9deef0c4db89e65e8bb28644ff75a18df5293e132a8d67748397b9f"}, + {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0a9e0759e7be10109645a9fddaaad0619d58c9bf30a3f248a2ea57a7c417173a"}, + {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e20da3957bdf7824afdd4b6eeb29510e83e026473e04952dca565170cd1ecc8"}, + {file = "rpds_py-0.21.0-cp311-none-win32.whl", hash = "sha256:f71009b0d5e94c0e86533c0b27ed7cacc1239cb51c178fd239c3cfefefb0400a"}, + {file = "rpds_py-0.21.0-cp311-none-win_amd64.whl", hash = "sha256:e168afe6bf6ab7ab46c8c375606298784ecbe3ba31c0980b7dcbb9631dcba97e"}, + {file = "rpds_py-0.21.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:30b912c965b2aa76ba5168fd610087bad7fcde47f0a8367ee8f1876086ee6d1d"}, + {file = "rpds_py-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca9989d5d9b1b300bc18e1801c67b9f6d2c66b8fd9621b36072ed1df2c977f72"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f54e7106f0001244a5f4cf810ba8d3f9c542e2730821b16e969d6887b664266"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fed5dfefdf384d6fe975cc026886aece4f292feaf69d0eeb716cfd3c5a4dd8be"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:590ef88db231c9c1eece44dcfefd7515d8bf0d986d64d0caf06a81998a9e8cab"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f983e4c2f603c95dde63df633eec42955508eefd8d0f0e6d236d31a044c882d7"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b229ce052ddf1a01c67d68166c19cb004fb3612424921b81c46e7ea7ccf7c3bf"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ebf64e281a06c904a7636781d2e973d1f0926a5b8b480ac658dc0f556e7779f4"}, + {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:998a8080c4495e4f72132f3d66ff91f5997d799e86cec6ee05342f8f3cda7dca"}, + {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:98486337f7b4f3c324ab402e83453e25bb844f44418c066623db88e4c56b7c7b"}, + {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a78d8b634c9df7f8d175451cfeac3810a702ccb85f98ec95797fa98b942cea11"}, + {file = "rpds_py-0.21.0-cp312-none-win32.whl", hash = "sha256:a58ce66847711c4aa2ecfcfaff04cb0327f907fead8945ffc47d9407f41ff952"}, + {file = "rpds_py-0.21.0-cp312-none-win_amd64.whl", hash = "sha256:e860f065cc4ea6f256d6f411aba4b1251255366e48e972f8a347cf88077b24fd"}, + {file = "rpds_py-0.21.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ee4eafd77cc98d355a0d02f263efc0d3ae3ce4a7c24740010a8b4012bbb24937"}, + {file = "rpds_py-0.21.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:688c93b77e468d72579351a84b95f976bd7b3e84aa6686be6497045ba84be560"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c38dbf31c57032667dd5a2f0568ccde66e868e8f78d5a0d27dcc56d70f3fcd3b"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d6129137f43f7fa02d41542ffff4871d4aefa724a5fe38e2c31a4e0fd343fb0"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:520ed8b99b0bf86a176271f6fe23024323862ac674b1ce5b02a72bfeff3fff44"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaeb25ccfb9b9014a10eaf70904ebf3f79faaa8e60e99e19eef9f478651b9b74"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af04ac89c738e0f0f1b913918024c3eab6e3ace989518ea838807177d38a2e94"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9b76e2afd585803c53c5b29e992ecd183f68285b62fe2668383a18e74abe7a3"}, + {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5afb5efde74c54724e1a01118c6e5c15e54e642c42a1ba588ab1f03544ac8c7a"}, + {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:52c041802a6efa625ea18027a0723676a778869481d16803481ef6cc02ea8cb3"}, + {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ee1e4fc267b437bb89990b2f2abf6c25765b89b72dd4a11e21934df449e0c976"}, + {file = "rpds_py-0.21.0-cp313-none-win32.whl", hash = "sha256:0c025820b78817db6a76413fff6866790786c38f95ea3f3d3c93dbb73b632202"}, + {file = "rpds_py-0.21.0-cp313-none-win_amd64.whl", hash = "sha256:320c808df533695326610a1b6a0a6e98f033e49de55d7dc36a13c8a30cfa756e"}, + {file = "rpds_py-0.21.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:2c51d99c30091f72a3c5d126fad26236c3f75716b8b5e5cf8effb18889ced928"}, + {file = "rpds_py-0.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cbd7504a10b0955ea287114f003b7ad62330c9e65ba012c6223dba646f6ffd05"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6dcc4949be728ede49e6244eabd04064336012b37f5c2200e8ec8eb2988b209c"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f414da5c51bf350e4b7960644617c130140423882305f7574b6cf65a3081cecb"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9afe42102b40007f588666bc7de82451e10c6788f6f70984629db193849dced1"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b929c2bb6e29ab31f12a1117c39f7e6d6450419ab7464a4ea9b0b417174f044"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8404b3717da03cbf773a1d275d01fec84ea007754ed380f63dfc24fb76ce4592"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e12bb09678f38b7597b8346983d2323a6482dcd59e423d9448108c1be37cac9d"}, + {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:58a0e345be4b18e6b8501d3b0aa540dad90caeed814c515e5206bb2ec26736fd"}, + {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c3761f62fcfccf0864cc4665b6e7c3f0c626f0380b41b8bd1ce322103fa3ef87"}, + {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c2b2f71c6ad6c2e4fc9ed9401080badd1469fa9889657ec3abea42a3d6b2e1ed"}, + {file = "rpds_py-0.21.0-cp39-none-win32.whl", hash = "sha256:b21747f79f360e790525e6f6438c7569ddbfb1b3197b9e65043f25c3c9b489d8"}, + {file = "rpds_py-0.21.0-cp39-none-win_amd64.whl", hash = "sha256:0626238a43152918f9e72ede9a3b6ccc9e299adc8ade0d67c5e142d564c9a83d"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6b4ef7725386dc0762857097f6b7266a6cdd62bfd209664da6712cb26acef035"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6bc0e697d4d79ab1aacbf20ee5f0df80359ecf55db33ff41481cf3e24f206919"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da52d62a96e61c1c444f3998c434e8b263c384f6d68aca8274d2e08d1906325c"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98e4fe5db40db87ce1c65031463a760ec7906ab230ad2249b4572c2fc3ef1f9f"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30bdc973f10d28e0337f71d202ff29345320f8bc49a31c90e6c257e1ccef4333"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:faa5e8496c530f9c71f2b4e1c49758b06e5f4055e17144906245c99fa6d45356"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32eb88c30b6a4f0605508023b7141d043a79b14acb3b969aa0b4f99b25bc7d4a"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a89a8ce9e4e75aeb7fa5d8ad0f3fecdee813802592f4f46a15754dcb2fd6b061"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:241e6c125568493f553c3d0fdbb38c74babf54b45cef86439d4cd97ff8feb34d"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:3b766a9f57663396e4f34f5140b3595b233a7b146e94777b97a8413a1da1be18"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:af4a644bf890f56e41e74be7d34e9511e4954894d544ec6b8efe1e21a1a8da6c"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3e30a69a706e8ea20444b98a49f386c17b26f860aa9245329bab0851ed100677"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:031819f906bb146561af051c7cef4ba2003d28cff07efacef59da973ff7969ba"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b876f2bc27ab5954e2fd88890c071bd0ed18b9c50f6ec3de3c50a5ece612f7a6"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc5695c321e518d9f03b7ea6abb5ea3af4567766f9852ad1560f501b17588c7b"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4de1da871b5c0fd5537b26a6fc6814c3cc05cabe0c941db6e9044ffbb12f04a"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:878f6fea96621fda5303a2867887686d7a198d9e0f8a40be100a63f5d60c88c9"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8eeec67590e94189f434c6d11c426892e396ae59e4801d17a93ac96b8c02a6c"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ff2eba7f6c0cb523d7e9cff0903f2fe1feff8f0b2ceb6bd71c0e20a4dcee271"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a429b99337062877d7875e4ff1a51fe788424d522bd64a8c0a20ef3021fdb6ed"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d167e4dbbdac48bd58893c7e446684ad5d425b407f9336e04ab52e8b9194e2ed"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:4eb2de8a147ffe0626bfdc275fc6563aa7bf4b6db59cf0d44f0ccd6ca625a24e"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e78868e98f34f34a88e23ee9ccaeeec460e4eaf6db16d51d7a9b883e5e785a5e"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4991ca61656e3160cdaca4851151fd3f4a92e9eba5c7a530ab030d6aee96ec89"}, + {file = "rpds_py-0.21.0.tar.gz", hash = "sha256:ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db"}, ] [[package]] @@ -2561,23 +2681,23 @@ files = [ [[package]] name = "setuptools" -version = "75.1.0" +version = "75.5.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, - {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, + {file = "setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829"}, + {file = "setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib-metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] [[package]] name = "six" @@ -2603,24 +2723,24 @@ files = [ [[package]] name = "tomli" -version = "2.0.1" +version = "2.1.0" description = "A lil' TOML parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, + {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, + {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, ] [[package]] name = "toolz" -version = "0.12.1" +version = "1.0.0" description = "List processing tools and functional utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, - {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, + {file = "toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236"}, + {file = "toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02"}, ] [[package]] @@ -2653,13 +2773,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.5" +version = "20.27.1" description = "Virtual Python Environment builder" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "virtualenv-20.26.5-py3-none-any.whl", hash = "sha256:4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6"}, - {file = "virtualenv-20.26.5.tar.gz", hash = "sha256:ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4"}, + {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, + {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, ] [package.dependencies] @@ -2708,203 +2828,177 @@ tester = ["eth-tester[py-evm] (>=0.11.0b1,<0.12.0b1)", "eth-tester[py-evm] (>=0. [[package]] name = "websockets" -version = "13.0.1" +version = "14.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "websockets-13.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1841c9082a3ba4a05ea824cf6d99570a6a2d8849ef0db16e9c826acb28089e8f"}, - {file = "websockets-13.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c5870b4a11b77e4caa3937142b650fbbc0914a3e07a0cf3131f35c0587489c1c"}, - {file = "websockets-13.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f1d3d1f2eb79fe7b0fb02e599b2bf76a7619c79300fc55f0b5e2d382881d4f7f"}, - {file = "websockets-13.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15c7d62ee071fa94a2fc52c2b472fed4af258d43f9030479d9c4a2de885fd543"}, - {file = "websockets-13.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6724b554b70d6195ba19650fef5759ef11346f946c07dbbe390e039bcaa7cc3d"}, - {file = "websockets-13.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a952fa2ae57a42ba7951e6b2605e08a24801a4931b5644dfc68939e041bc7f"}, - {file = "websockets-13.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:17118647c0ea14796364299e942c330d72acc4b248e07e639d34b75067b3cdd8"}, - {file = "websockets-13.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64a11aae1de4c178fa653b07d90f2fb1a2ed31919a5ea2361a38760192e1858b"}, - {file = "websockets-13.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0617fd0b1d14309c7eab6ba5deae8a7179959861846cbc5cb528a7531c249448"}, - {file = "websockets-13.0.1-cp310-cp310-win32.whl", hash = "sha256:11f9976ecbc530248cf162e359a92f37b7b282de88d1d194f2167b5e7ad80ce3"}, - {file = "websockets-13.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:c3c493d0e5141ec055a7d6809a28ac2b88d5b878bb22df8c621ebe79a61123d0"}, - {file = "websockets-13.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:699ba9dd6a926f82a277063603fc8d586b89f4cb128efc353b749b641fcddda7"}, - {file = "websockets-13.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf2fae6d85e5dc384bf846f8243ddaa9197f3a1a70044f59399af001fd1f51d4"}, - {file = "websockets-13.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:52aed6ef21a0f1a2a5e310fb5c42d7555e9c5855476bbd7173c3aa3d8a0302f2"}, - {file = "websockets-13.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8eb2b9a318542153674c6e377eb8cb9ca0fc011c04475110d3477862f15d29f0"}, - {file = "websockets-13.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5df891c86fe68b2c38da55b7aea7095beca105933c697d719f3f45f4220a5e0e"}, - {file = "websockets-13.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fac2d146ff30d9dd2fcf917e5d147db037a5c573f0446c564f16f1f94cf87462"}, - {file = "websockets-13.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b8ac5b46fd798bbbf2ac6620e0437c36a202b08e1f827832c4bf050da081b501"}, - {file = "websockets-13.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:46af561eba6f9b0848b2c9d2427086cabadf14e0abdd9fde9d72d447df268418"}, - {file = "websockets-13.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b5a06d7f60bc2fc378a333978470dfc4e1415ee52f5f0fce4f7853eb10c1e9df"}, - {file = "websockets-13.0.1-cp311-cp311-win32.whl", hash = "sha256:556e70e4f69be1082e6ef26dcb70efcd08d1850f5d6c5f4f2bcb4e397e68f01f"}, - {file = "websockets-13.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:67494e95d6565bf395476e9d040037ff69c8b3fa356a886b21d8422ad86ae075"}, - {file = "websockets-13.0.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f9c9e258e3d5efe199ec23903f5da0eeaad58cf6fccb3547b74fd4750e5ac47a"}, - {file = "websockets-13.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6b41a1b3b561f1cba8321fb32987552a024a8f67f0d05f06fcf29f0090a1b956"}, - {file = "websockets-13.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f73e676a46b0fe9426612ce8caeca54c9073191a77c3e9d5c94697aef99296af"}, - {file = "websockets-13.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f613289f4a94142f914aafad6c6c87903de78eae1e140fa769a7385fb232fdf"}, - {file = "websockets-13.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f52504023b1480d458adf496dc1c9e9811df4ba4752f0bc1f89ae92f4f07d0c"}, - {file = "websockets-13.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:139add0f98206cb74109faf3611b7783ceafc928529c62b389917a037d4cfdf4"}, - {file = "websockets-13.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:47236c13be337ef36546004ce8c5580f4b1150d9538b27bf8a5ad8edf23ccfab"}, - {file = "websockets-13.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c44ca9ade59b2e376612df34e837013e2b273e6c92d7ed6636d0556b6f4db93d"}, - {file = "websockets-13.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9bbc525f4be3e51b89b2a700f5746c2a6907d2e2ef4513a8daafc98198b92237"}, - {file = "websockets-13.0.1-cp312-cp312-win32.whl", hash = "sha256:3624fd8664f2577cf8de996db3250662e259bfbc870dd8ebdcf5d7c6ac0b5185"}, - {file = "websockets-13.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0513c727fb8adffa6d9bf4a4463b2bade0186cbd8c3604ae5540fae18a90cb99"}, - {file = "websockets-13.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1ee4cc030a4bdab482a37462dbf3ffb7e09334d01dd37d1063be1136a0d825fa"}, - {file = "websockets-13.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dbb0b697cc0655719522406c059eae233abaa3243821cfdfab1215d02ac10231"}, - {file = "websockets-13.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:acbebec8cb3d4df6e2488fbf34702cbc37fc39ac7abf9449392cefb3305562e9"}, - {file = "websockets-13.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63848cdb6fcc0bf09d4a155464c46c64ffdb5807ede4fb251da2c2692559ce75"}, - {file = "websockets-13.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:872afa52a9f4c414d6955c365b6588bc4401272c629ff8321a55f44e3f62b553"}, - {file = "websockets-13.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e70fec7c54aad4d71eae8e8cab50525e899791fc389ec6f77b95312e4e9920"}, - {file = "websockets-13.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e82db3756ccb66266504f5a3de05ac6b32f287faacff72462612120074103329"}, - {file = "websockets-13.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4e85f46ce287f5c52438bb3703d86162263afccf034a5ef13dbe4318e98d86e7"}, - {file = "websockets-13.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f3fea72e4e6edb983908f0db373ae0732b275628901d909c382aae3b592589f2"}, - {file = "websockets-13.0.1-cp313-cp313-win32.whl", hash = "sha256:254ecf35572fca01a9f789a1d0f543898e222f7b69ecd7d5381d8d8047627bdb"}, - {file = "websockets-13.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:ca48914cdd9f2ccd94deab5bcb5ac98025a5ddce98881e5cce762854a5de330b"}, - {file = "websockets-13.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b74593e9acf18ea5469c3edaa6b27fa7ecf97b30e9dabd5a94c4c940637ab96e"}, - {file = "websockets-13.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:132511bfd42e77d152c919147078460c88a795af16b50e42a0bd14f0ad71ddd2"}, - {file = "websockets-13.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:165bedf13556f985a2aa064309baa01462aa79bf6112fbd068ae38993a0e1f1b"}, - {file = "websockets-13.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e801ca2f448850685417d723ec70298feff3ce4ff687c6f20922c7474b4746ae"}, - {file = "websockets-13.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30d3a1f041360f029765d8704eae606781e673e8918e6b2c792e0775de51352f"}, - {file = "websockets-13.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67648f5e50231b5a7f6d83b32f9c525e319f0ddc841be0de64f24928cd75a603"}, - {file = "websockets-13.0.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4f0426d51c8f0926a4879390f53c7f5a855e42d68df95fff6032c82c888b5f36"}, - {file = "websockets-13.0.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ef48e4137e8799998a343706531e656fdec6797b80efd029117edacb74b0a10a"}, - {file = "websockets-13.0.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:249aab278810bee585cd0d4de2f08cfd67eed4fc75bde623be163798ed4db2eb"}, - {file = "websockets-13.0.1-cp38-cp38-win32.whl", hash = "sha256:06c0a667e466fcb56a0886d924b5f29a7f0886199102f0a0e1c60a02a3751cb4"}, - {file = "websockets-13.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1f3cf6d6ec1142412d4535adabc6bd72a63f5f148c43fe559f06298bc21953c9"}, - {file = "websockets-13.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1fa082ea38d5de51dd409434edc27c0dcbd5fed2b09b9be982deb6f0508d25bc"}, - {file = "websockets-13.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4a365bcb7be554e6e1f9f3ed64016e67e2fa03d7b027a33e436aecf194febb63"}, - {file = "websockets-13.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:10a0dc7242215d794fb1918f69c6bb235f1f627aaf19e77f05336d147fce7c37"}, - {file = "websockets-13.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59197afd478545b1f73367620407b0083303569c5f2d043afe5363676f2697c9"}, - {file = "websockets-13.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d20516990d8ad557b5abeb48127b8b779b0b7e6771a265fa3e91767596d7d97"}, - {file = "websockets-13.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1a2e272d067030048e1fe41aa1ec8cfbbaabce733b3d634304fa2b19e5c897f"}, - {file = "websockets-13.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ad327ac80ba7ee61da85383ca8822ff808ab5ada0e4a030d66703cc025b021c4"}, - {file = "websockets-13.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:518f90e6dd089d34eaade01101fd8a990921c3ba18ebbe9b0165b46ebff947f0"}, - {file = "websockets-13.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:68264802399aed6fe9652e89761031acc734fc4c653137a5911c2bfa995d6d6d"}, - {file = "websockets-13.0.1-cp39-cp39-win32.whl", hash = "sha256:a5dc0c42ded1557cc7c3f0240b24129aefbad88af4f09346164349391dea8e58"}, - {file = "websockets-13.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b448a0690ef43db5ef31b3a0d9aea79043882b4632cfc3eaab20105edecf6097"}, - {file = "websockets-13.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:faef9ec6354fe4f9a2c0bbb52fb1ff852effc897e2a4501e25eb3a47cb0a4f89"}, - {file = "websockets-13.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:03d3f9ba172e0a53e37fa4e636b86cc60c3ab2cfee4935e66ed1d7acaa4625ad"}, - {file = "websockets-13.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d450f5a7a35662a9b91a64aefa852f0c0308ee256122f5218a42f1d13577d71e"}, - {file = "websockets-13.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f55b36d17ac50aa8a171b771e15fbe1561217510c8768af3d546f56c7576cdc"}, - {file = "websockets-13.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14b9c006cac63772b31abbcd3e3abb6228233eec966bf062e89e7fa7ae0b7333"}, - {file = "websockets-13.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b79915a1179a91f6c5f04ece1e592e2e8a6bd245a0e45d12fd56b2b59e559a32"}, - {file = "websockets-13.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f40de079779acbcdbb6ed4c65af9f018f8b77c5ec4e17a4b737c05c2db554491"}, - {file = "websockets-13.0.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80e4ba642fc87fa532bac07e5ed7e19d56940b6af6a8c61d4429be48718a380f"}, - {file = "websockets-13.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a02b0161c43cc9e0232711eff846569fad6ec836a7acab16b3cf97b2344c060"}, - {file = "websockets-13.0.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6aa74a45d4cdc028561a7d6ab3272c8b3018e23723100b12e58be9dfa5a24491"}, - {file = "websockets-13.0.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00fd961943b6c10ee6f0b1130753e50ac5dcd906130dcd77b0003c3ab797d026"}, - {file = "websockets-13.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d93572720d781331fb10d3da9ca1067817d84ad1e7c31466e9f5e59965618096"}, - {file = "websockets-13.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:71e6e5a3a3728886caee9ab8752e8113670936a193284be9d6ad2176a137f376"}, - {file = "websockets-13.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c4a6343e3b0714e80da0b0893543bf9a5b5fa71b846ae640e56e9abc6fbc4c83"}, - {file = "websockets-13.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a678532018e435396e37422a95e3ab87f75028ac79570ad11f5bf23cd2a7d8c"}, - {file = "websockets-13.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6716c087e4aa0b9260c4e579bb82e068f84faddb9bfba9906cb87726fa2e870"}, - {file = "websockets-13.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e33505534f3f673270dd67f81e73550b11de5b538c56fe04435d63c02c3f26b5"}, - {file = "websockets-13.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:acab3539a027a85d568c2573291e864333ec9d912675107d6efceb7e2be5d980"}, - {file = "websockets-13.0.1-py3-none-any.whl", hash = "sha256:b80f0c51681c517604152eb6a572f5a9378f877763231fddb883ba2f968e8817"}, - {file = "websockets-13.0.1.tar.gz", hash = "sha256:4d6ece65099411cfd9a48d13701d7438d9c34f479046b34c50ff60bb8834e43e"}, + {file = "websockets-14.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a0adf84bc2e7c86e8a202537b4fd50e6f7f0e4a6b6bf64d7ccb96c4cd3330b29"}, + {file = "websockets-14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90b5d9dfbb6d07a84ed3e696012610b6da074d97453bd01e0e30744b472c8179"}, + {file = "websockets-14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2177ee3901075167f01c5e335a6685e71b162a54a89a56001f1c3e9e3d2ad250"}, + {file = "websockets-14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f14a96a0034a27f9d47fd9788913924c89612225878f8078bb9d55f859272b0"}, + {file = "websockets-14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f874ba705deea77bcf64a9da42c1f5fc2466d8f14daf410bc7d4ceae0a9fcb0"}, + {file = "websockets-14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9607b9a442392e690a57909c362811184ea429585a71061cd5d3c2b98065c199"}, + {file = "websockets-14.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bea45f19b7ca000380fbd4e02552be86343080120d074b87f25593ce1700ad58"}, + {file = "websockets-14.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:219c8187b3ceeadbf2afcf0f25a4918d02da7b944d703b97d12fb01510869078"}, + {file = "websockets-14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad2ab2547761d79926effe63de21479dfaf29834c50f98c4bf5b5480b5838434"}, + {file = "websockets-14.1-cp310-cp310-win32.whl", hash = "sha256:1288369a6a84e81b90da5dbed48610cd7e5d60af62df9851ed1d1d23a9069f10"}, + {file = "websockets-14.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0744623852f1497d825a49a99bfbec9bea4f3f946df6eb9d8a2f0c37a2fec2e"}, + {file = "websockets-14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:449d77d636f8d9c17952628cc7e3b8faf6e92a17ec581ec0c0256300717e1512"}, + {file = "websockets-14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a35f704be14768cea9790d921c2c1cc4fc52700410b1c10948511039be824aac"}, + {file = "websockets-14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b1f3628a0510bd58968c0f60447e7a692933589b791a6b572fcef374053ca280"}, + {file = "websockets-14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c3deac3748ec73ef24fc7be0b68220d14d47d6647d2f85b2771cb35ea847aa1"}, + {file = "websockets-14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7048eb4415d46368ef29d32133134c513f507fff7d953c18c91104738a68c3b3"}, + {file = "websockets-14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cf0ad281c979306a6a34242b371e90e891bce504509fb6bb5246bbbf31e7b6"}, + {file = "websockets-14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc1fc87428c1d18b643479caa7b15db7d544652e5bf610513d4a3478dbe823d0"}, + {file = "websockets-14.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f95ba34d71e2fa0c5d225bde3b3bdb152e957150100e75c86bc7f3964c450d89"}, + {file = "websockets-14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9481a6de29105d73cf4515f2bef8eb71e17ac184c19d0b9918a3701c6c9c4f23"}, + {file = "websockets-14.1-cp311-cp311-win32.whl", hash = "sha256:368a05465f49c5949e27afd6fbe0a77ce53082185bbb2ac096a3a8afaf4de52e"}, + {file = "websockets-14.1-cp311-cp311-win_amd64.whl", hash = "sha256:6d24fc337fc055c9e83414c94e1ee0dee902a486d19d2a7f0929e49d7d604b09"}, + {file = "websockets-14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed907449fe5e021933e46a3e65d651f641975a768d0649fee59f10c2985529ed"}, + {file = "websockets-14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:87e31011b5c14a33b29f17eb48932e63e1dcd3fa31d72209848652310d3d1f0d"}, + {file = "websockets-14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc6ccf7d54c02ae47a48ddf9414c54d48af9c01076a2e1023e3b486b6e72c707"}, + {file = "websockets-14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9777564c0a72a1d457f0848977a1cbe15cfa75fa2f67ce267441e465717dcf1a"}, + {file = "websockets-14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a655bde548ca98f55b43711b0ceefd2a88a71af6350b0c168aa77562104f3f45"}, + {file = "websockets-14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfff83ca578cada2d19e665e9c8368e1598d4e787422a460ec70e531dbdd58"}, + {file = "websockets-14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6a6c9bcf7cdc0fd41cc7b7944447982e8acfd9f0d560ea6d6845428ed0562058"}, + {file = "websockets-14.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4b6caec8576e760f2c7dd878ba817653144d5f369200b6ddf9771d64385b84d4"}, + {file = "websockets-14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb6d38971c800ff02e4a6afd791bbe3b923a9a57ca9aeab7314c21c84bf9ff05"}, + {file = "websockets-14.1-cp312-cp312-win32.whl", hash = "sha256:1d045cbe1358d76b24d5e20e7b1878efe578d9897a25c24e6006eef788c0fdf0"}, + {file = "websockets-14.1-cp312-cp312-win_amd64.whl", hash = "sha256:90f4c7a069c733d95c308380aae314f2cb45bd8a904fb03eb36d1a4983a4993f"}, + {file = "websockets-14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3630b670d5057cd9e08b9c4dab6493670e8e762a24c2c94ef312783870736ab9"}, + {file = "websockets-14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36ebd71db3b89e1f7b1a5deaa341a654852c3518ea7a8ddfdf69cc66acc2db1b"}, + {file = "websockets-14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5b918d288958dc3fa1c5a0b9aa3256cb2b2b84c54407f4813c45d52267600cd3"}, + {file = "websockets-14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00fe5da3f037041da1ee0cf8e308374e236883f9842c7c465aa65098b1c9af59"}, + {file = "websockets-14.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8149a0f5a72ca36720981418eeffeb5c2729ea55fa179091c81a0910a114a5d2"}, + {file = "websockets-14.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77569d19a13015e840b81550922056acabc25e3f52782625bc6843cfa034e1da"}, + {file = "websockets-14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf5201a04550136ef870aa60ad3d29d2a59e452a7f96b94193bee6d73b8ad9a9"}, + {file = "websockets-14.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:88cf9163ef674b5be5736a584c999e98daf3aabac6e536e43286eb74c126b9c7"}, + {file = "websockets-14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:836bef7ae338a072e9d1863502026f01b14027250a4545672673057997d5c05a"}, + {file = "websockets-14.1-cp313-cp313-win32.whl", hash = "sha256:0d4290d559d68288da9f444089fd82490c8d2744309113fc26e2da6e48b65da6"}, + {file = "websockets-14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8621a07991add373c3c5c2cf89e1d277e49dc82ed72c75e3afc74bd0acc446f0"}, + {file = "websockets-14.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:01bb2d4f0a6d04538d3c5dfd27c0643269656c28045a53439cbf1c004f90897a"}, + {file = "websockets-14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:414ffe86f4d6f434a8c3b7913655a1a5383b617f9bf38720e7c0799fac3ab1c6"}, + {file = "websockets-14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fda642151d5affdee8a430bd85496f2e2517be3a2b9d2484d633d5712b15c56"}, + {file = "websockets-14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd7c11968bc3860d5c78577f0dbc535257ccec41750675d58d8dc66aa47fe52c"}, + {file = "websockets-14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a032855dc7db987dff813583d04f4950d14326665d7e714d584560b140ae6b8b"}, + {file = "websockets-14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7e7ea2f782408c32d86b87a0d2c1fd8871b0399dd762364c731d86c86069a78"}, + {file = "websockets-14.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:39450e6215f7d9f6f7bc2a6da21d79374729f5d052333da4d5825af8a97e6735"}, + {file = "websockets-14.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ceada5be22fa5a5a4cdeec74e761c2ee7db287208f54c718f2df4b7e200b8d4a"}, + {file = "websockets-14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3fc753451d471cff90b8f467a1fc0ae64031cf2d81b7b34e1811b7e2691bc4bc"}, + {file = "websockets-14.1-cp39-cp39-win32.whl", hash = "sha256:14839f54786987ccd9d03ed7f334baec0f02272e7ec4f6e9d427ff584aeea8b4"}, + {file = "websockets-14.1-cp39-cp39-win_amd64.whl", hash = "sha256:d9fd19ecc3a4d5ae82ddbfb30962cf6d874ff943e56e0c81f5169be2fda62979"}, + {file = "websockets-14.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5dc25a9dbd1a7f61eca4b7cb04e74ae4b963d658f9e4f9aad9cd00b688692c8"}, + {file = "websockets-14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:04a97aca96ca2acedf0d1f332c861c5a4486fdcba7bcef35873820f940c4231e"}, + {file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df174ece723b228d3e8734a6f2a6febbd413ddec39b3dc592f5a4aa0aff28098"}, + {file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:034feb9f4286476f273b9a245fb15f02c34d9586a5bc936aff108c3ba1b21beb"}, + {file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c308dabd2b380807ab64b62985eaccf923a78ebc572bd485375b9ca2b7dc7"}, + {file = "websockets-14.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5a42d3ecbb2db5080fc578314439b1d79eef71d323dc661aa616fb492436af5d"}, + {file = "websockets-14.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ddaa4a390af911da6f680be8be4ff5aaf31c4c834c1a9147bc21cbcbca2d4370"}, + {file = "websockets-14.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a4c805c6034206143fbabd2d259ec5e757f8b29d0a2f0bf3d2fe5d1f60147a4a"}, + {file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:205f672a6c2c671a86d33f6d47c9b35781a998728d2c7c2a3e1cf3333fcb62b7"}, + {file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef440054124728cc49b01c33469de06755e5a7a4e83ef61934ad95fc327fbb0"}, + {file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7591d6f440af7f73c4bd9404f3772bfee064e639d2b6cc8c94076e71b2471c1"}, + {file = "websockets-14.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:25225cc79cfebc95ba1d24cd3ab86aaa35bcd315d12fa4358939bd55e9bd74a5"}, + {file = "websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e"}, + {file = "websockets-14.1.tar.gz", hash = "sha256:398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8"}, ] [[package]] name = "yarl" -version = "1.11.1" +version = "1.17.2" description = "Yet another URL library" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "yarl-1.11.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:400cd42185f92de559d29eeb529e71d80dfbd2f45c36844914a4a34297ca6f00"}, - {file = "yarl-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8258c86f47e080a258993eed877d579c71da7bda26af86ce6c2d2d072c11320d"}, - {file = "yarl-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2164cd9725092761fed26f299e3f276bb4b537ca58e6ff6b252eae9631b5c96e"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08ea567c16f140af8ddc7cb58e27e9138a1386e3e6e53982abaa6f2377b38cc"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:768ecc550096b028754ea28bf90fde071c379c62c43afa574edc6f33ee5daaec"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2909fa3a7d249ef64eeb2faa04b7957e34fefb6ec9966506312349ed8a7e77bf"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01a8697ec24f17c349c4f655763c4db70eebc56a5f82995e5e26e837c6eb0e49"}, - {file = "yarl-1.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e286580b6511aac7c3268a78cdb861ec739d3e5a2a53b4809faef6b49778eaff"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4179522dc0305c3fc9782549175c8e8849252fefeb077c92a73889ccbcd508ad"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:27fcb271a41b746bd0e2a92182df507e1c204759f460ff784ca614e12dd85145"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f61db3b7e870914dbd9434b560075e0366771eecbe6d2b5561f5bc7485f39efd"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c92261eb2ad367629dc437536463dc934030c9e7caca861cc51990fe6c565f26"}, - {file = "yarl-1.11.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d95b52fbef190ca87d8c42f49e314eace4fc52070f3dfa5f87a6594b0c1c6e46"}, - {file = "yarl-1.11.1-cp310-cp310-win32.whl", hash = "sha256:489fa8bde4f1244ad6c5f6d11bb33e09cf0d1d0367edb197619c3e3fc06f3d91"}, - {file = "yarl-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:476e20c433b356e16e9a141449f25161e6b69984fb4cdbd7cd4bd54c17844998"}, - {file = "yarl-1.11.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:946eedc12895873891aaceb39bceb484b4977f70373e0122da483f6c38faaa68"}, - {file = "yarl-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:21a7c12321436b066c11ec19c7e3cb9aec18884fe0d5b25d03d756a9e654edfe"}, - {file = "yarl-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c35f493b867912f6fda721a59cc7c4766d382040bdf1ddaeeaa7fa4d072f4675"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25861303e0be76b60fddc1250ec5986c42f0a5c0c50ff57cc30b1be199c00e63"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4b53f73077e839b3f89c992223f15b1d2ab314bdbdf502afdc7bb18e95eae27"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:327c724b01b8641a1bf1ab3b232fb638706e50f76c0b5bf16051ab65c868fac5"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4307d9a3417eea87715c9736d050c83e8c1904e9b7aada6ce61b46361b733d92"}, - {file = "yarl-1.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a28bed68ab8fb7e380775f0029a079f08a17799cb3387a65d14ace16c12e2b"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:067b961853c8e62725ff2893226fef3d0da060656a9827f3f520fb1d19b2b68a"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8215f6f21394d1f46e222abeb06316e77ef328d628f593502d8fc2a9117bde83"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:498442e3af2a860a663baa14fbf23fb04b0dd758039c0e7c8f91cb9279799bff"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:69721b8effdb588cb055cc22f7c5105ca6fdaa5aeb3ea09021d517882c4a904c"}, - {file = "yarl-1.11.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e969fa4c1e0b1a391f3fcbcb9ec31e84440253325b534519be0d28f4b6b533e"}, - {file = "yarl-1.11.1-cp311-cp311-win32.whl", hash = "sha256:7d51324a04fc4b0e097ff8a153e9276c2593106a811704025bbc1d6916f45ca6"}, - {file = "yarl-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:15061ce6584ece023457fb8b7a7a69ec40bf7114d781a8c4f5dcd68e28b5c53b"}, - {file = "yarl-1.11.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a4264515f9117be204935cd230fb2a052dd3792789cc94c101c535d349b3dab0"}, - {file = "yarl-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f41fa79114a1d2eddb5eea7b912d6160508f57440bd302ce96eaa384914cd265"}, - {file = "yarl-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:02da8759b47d964f9173c8675710720b468aa1c1693be0c9c64abb9d8d9a4867"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9361628f28f48dcf8b2f528420d4d68102f593f9c2e592bfc842f5fb337e44fd"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b91044952da03b6f95fdba398d7993dd983b64d3c31c358a4c89e3c19b6f7aef"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:74db2ef03b442276d25951749a803ddb6e270d02dda1d1c556f6ae595a0d76a8"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e975a2211952a8a083d1b9d9ba26472981ae338e720b419eb50535de3c02870"}, - {file = "yarl-1.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8aef97ba1dd2138112890ef848e17d8526fe80b21f743b4ee65947ea184f07a2"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a7915ea49b0c113641dc4d9338efa9bd66b6a9a485ffe75b9907e8573ca94b84"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:504cf0d4c5e4579a51261d6091267f9fd997ef58558c4ffa7a3e1460bd2336fa"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3de5292f9f0ee285e6bd168b2a77b2a00d74cbcfa420ed078456d3023d2f6dff"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a34e1e30f1774fa35d37202bbeae62423e9a79d78d0874e5556a593479fdf239"}, - {file = "yarl-1.11.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66b63c504d2ca43bf7221a1f72fbe981ff56ecb39004c70a94485d13e37ebf45"}, - {file = "yarl-1.11.1-cp312-cp312-win32.whl", hash = "sha256:a28b70c9e2213de425d9cba5ab2e7f7a1c8ca23a99c4b5159bf77b9c31251447"}, - {file = "yarl-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:17b5a386d0d36fb828e2fb3ef08c8829c1ebf977eef88e5367d1c8c94b454639"}, - {file = "yarl-1.11.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1fa2e7a406fbd45b61b4433e3aa254a2c3e14c4b3186f6e952d08a730807fa0c"}, - {file = "yarl-1.11.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:750f656832d7d3cb0c76be137ee79405cc17e792f31e0a01eee390e383b2936e"}, - {file = "yarl-1.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b8486f322d8f6a38539136a22c55f94d269addb24db5cb6f61adc61eabc9d93"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fce4da3703ee6048ad4138fe74619c50874afe98b1ad87b2698ef95bf92c96d"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed653638ef669e0efc6fe2acb792275cb419bf9cb5c5049399f3556995f23c7"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18ac56c9dd70941ecad42b5a906820824ca72ff84ad6fa18db33c2537ae2e089"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:688654f8507464745ab563b041d1fb7dab5d9912ca6b06e61d1c4708366832f5"}, - {file = "yarl-1.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4973eac1e2ff63cf187073cd4e1f1148dcd119314ab79b88e1b3fad74a18c9d5"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:964a428132227edff96d6f3cf261573cb0f1a60c9a764ce28cda9525f18f7786"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6d23754b9939cbab02c63434776df1170e43b09c6a517585c7ce2b3d449b7318"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c2dc4250fe94d8cd864d66018f8344d4af50e3758e9d725e94fecfa27588ff82"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09696438cb43ea6f9492ef237761b043f9179f455f405279e609f2bc9100212a"}, - {file = "yarl-1.11.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:999bfee0a5b7385a0af5ffb606393509cfde70ecca4f01c36985be6d33e336da"}, - {file = "yarl-1.11.1-cp313-cp313-win32.whl", hash = "sha256:ce928c9c6409c79e10f39604a7e214b3cb69552952fbda8d836c052832e6a979"}, - {file = "yarl-1.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:501c503eed2bb306638ccb60c174f856cc3246c861829ff40eaa80e2f0330367"}, - {file = "yarl-1.11.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dae7bd0daeb33aa3e79e72877d3d51052e8b19c9025ecf0374f542ea8ec120e4"}, - {file = "yarl-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3ff6b1617aa39279fe18a76c8d165469c48b159931d9b48239065767ee455b2b"}, - {file = "yarl-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3257978c870728a52dcce8c2902bf01f6c53b65094b457bf87b2644ee6238ddc"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f351fa31234699d6084ff98283cb1e852270fe9e250a3b3bf7804eb493bd937"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8aef1b64da41d18026632d99a06b3fefe1d08e85dd81d849fa7c96301ed22f1b"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7175a87ab8f7fbde37160a15e58e138ba3b2b0e05492d7351314a250d61b1591"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba444bdd4caa2a94456ef67a2f383710928820dd0117aae6650a4d17029fa25e"}, - {file = "yarl-1.11.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ea9682124fc062e3d931c6911934a678cb28453f957ddccf51f568c2f2b5e05"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8418c053aeb236b20b0ab8fa6bacfc2feaaf7d4683dd96528610989c99723d5f"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:61a5f2c14d0a1adfdd82258f756b23a550c13ba4c86c84106be4c111a3a4e413"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f3a6d90cab0bdf07df8f176eae3a07127daafcf7457b997b2bf46776da2c7eb7"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:077da604852be488c9a05a524068cdae1e972b7dc02438161c32420fb4ec5e14"}, - {file = "yarl-1.11.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:15439f3c5c72686b6c3ff235279630d08936ace67d0fe5c8d5bbc3ef06f5a420"}, - {file = "yarl-1.11.1-cp38-cp38-win32.whl", hash = "sha256:238a21849dd7554cb4d25a14ffbfa0ef380bb7ba201f45b144a14454a72ffa5a"}, - {file = "yarl-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:67459cf8cf31da0e2cbdb4b040507e535d25cfbb1604ca76396a3a66b8ba37a6"}, - {file = "yarl-1.11.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:884eab2ce97cbaf89f264372eae58388862c33c4f551c15680dd80f53c89a269"}, - {file = "yarl-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a336eaa7ee7e87cdece3cedb395c9657d227bfceb6781295cf56abcd3386a26"}, - {file = "yarl-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87f020d010ba80a247c4abc335fc13421037800ca20b42af5ae40e5fd75e7909"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:637c7ddb585a62d4469f843dac221f23eec3cbad31693b23abbc2c366ad41ff4"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:48dfd117ab93f0129084577a07287376cc69c08138694396f305636e229caa1a"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e0ae31fb5ccab6eda09ba1494e87eb226dcbd2372dae96b87800e1dcc98804"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f46f81501160c28d0c0b7333b4f7be8983dbbc161983b6fb814024d1b4952f79"}, - {file = "yarl-1.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04293941646647b3bfb1719d1d11ff1028e9c30199509a844da3c0f5919dc520"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:250e888fa62d73e721f3041e3a9abf427788a1934b426b45e1b92f62c1f68366"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e8f63904df26d1a66aabc141bfd258bf738b9bc7bc6bdef22713b4f5ef789a4c"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:aac44097d838dda26526cffb63bdd8737a2dbdf5f2c68efb72ad83aec6673c7e"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:267b24f891e74eccbdff42241c5fb4f974de2d6271dcc7d7e0c9ae1079a560d9"}, - {file = "yarl-1.11.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6907daa4b9d7a688063ed098c472f96e8181733c525e03e866fb5db480a424df"}, - {file = "yarl-1.11.1-cp39-cp39-win32.whl", hash = "sha256:14438dfc5015661f75f85bc5adad0743678eefee266ff0c9a8e32969d5d69f74"}, - {file = "yarl-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:94d0caaa912bfcdc702a4204cd5e2bb01eb917fc4f5ea2315aa23962549561b0"}, - {file = "yarl-1.11.1-py3-none-any.whl", hash = "sha256:72bf26f66456baa0584eff63e44545c9f0eaed9b73cb6601b647c91f14c11f38"}, - {file = "yarl-1.11.1.tar.gz", hash = "sha256:1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53"}, + {file = "yarl-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:93771146ef048b34201bfa382c2bf74c524980870bb278e6df515efaf93699ff"}, + {file = "yarl-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8281db240a1616af2f9c5f71d355057e73a1409c4648c8949901396dc0a3c151"}, + {file = "yarl-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:170ed4971bf9058582b01a8338605f4d8c849bd88834061e60e83b52d0c76870"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc61b005f6521fcc00ca0d1243559a5850b9dd1e1fe07b891410ee8fe192d0c0"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:871e1b47eec7b6df76b23c642a81db5dd6536cbef26b7e80e7c56c2fd371382e"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a58a2f2ca7aaf22b265388d40232f453f67a6def7355a840b98c2d547bd037f"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:736bb076f7299c5c55dfef3eb9e96071a795cb08052822c2bb349b06f4cb2e0a"}, + {file = "yarl-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8fd51299e21da709eabcd5b2dd60e39090804431292daacbee8d3dabe39a6bc0"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:358dc7ddf25e79e1cc8ee16d970c23faee84d532b873519c5036dbb858965795"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:50d866f7b1a3f16f98603e095f24c0eeba25eb508c85a2c5939c8b3870ba2df8"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8b9c4643e7d843a0dca9cd9d610a0876e90a1b2cbc4c5ba7930a0d90baf6903f"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d63123bfd0dce5f91101e77c8a5427c3872501acece8c90df457b486bc1acd47"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4e76381be3d8ff96a4e6c77815653063e87555981329cf8f85e5be5abf449021"}, + {file = "yarl-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:734144cd2bd633a1516948e477ff6c835041c0536cef1d5b9a823ae29899665b"}, + {file = "yarl-1.17.2-cp310-cp310-win32.whl", hash = "sha256:26bfb6226e0c157af5da16d2d62258f1ac578d2899130a50433ffee4a5dfa673"}, + {file = "yarl-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:76499469dcc24759399accd85ec27f237d52dec300daaca46a5352fcbebb1071"}, + {file = "yarl-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:792155279dc093839e43f85ff7b9b6493a8eaa0af1f94f1f9c6e8f4de8c63500"}, + {file = "yarl-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38bc4ed5cae853409cb193c87c86cd0bc8d3a70fd2268a9807217b9176093ac6"}, + {file = "yarl-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4a8c83f6fcdc327783bdc737e8e45b2e909b7bd108c4da1892d3bc59c04a6d84"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c6d5fed96f0646bfdf698b0a1cebf32b8aae6892d1bec0c5d2d6e2df44e1e2d"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:782ca9c58f5c491c7afa55518542b2b005caedaf4685ec814fadfcee51f02493"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff6af03cac0d1a4c3c19e5dcc4c05252411bf44ccaa2485e20d0a7c77892ab6e"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a3f47930fbbed0f6377639503848134c4aa25426b08778d641491131351c2c8"}, + {file = "yarl-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1fa68a3c921365c5745b4bd3af6221ae1f0ea1bf04b69e94eda60e57958907f"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:187df91395c11e9f9dc69b38d12406df85aa5865f1766a47907b1cc9855b6303"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:93d1c8cc5bf5df401015c5e2a3ce75a5254a9839e5039c881365d2a9dcfc6dc2"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:11d86c6145ac5c706c53d484784cf504d7d10fa407cb73b9d20f09ff986059ef"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c42774d1d1508ec48c3ed29e7b110e33f5e74a20957ea16197dbcce8be6b52ba"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8e589379ef0407b10bed16cc26e7392ef8f86961a706ade0a22309a45414d7"}, + {file = "yarl-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1056cadd5e850a1c026f28e0704ab0a94daaa8f887ece8dfed30f88befb87bb0"}, + {file = "yarl-1.17.2-cp311-cp311-win32.whl", hash = "sha256:be4c7b1c49d9917c6e95258d3d07f43cfba2c69a6929816e77daf322aaba6628"}, + {file = "yarl-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:ac8eda86cc75859093e9ce390d423aba968f50cf0e481e6c7d7d63f90bae5c9c"}, + {file = "yarl-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dd90238d3a77a0e07d4d6ffdebc0c21a9787c5953a508a2231b5f191455f31e9"}, + {file = "yarl-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c74f0b0472ac40b04e6d28532f55cac8090e34c3e81f118d12843e6df14d0909"}, + {file = "yarl-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d486ddcaca8c68455aa01cf53d28d413fb41a35afc9f6594a730c9779545876"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25b7e93f5414b9a983e1a6c1820142c13e1782cc9ed354c25e933aebe97fcf2"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a0baff7827a632204060f48dca9e63fbd6a5a0b8790c1a2adfb25dc2c9c0d50"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:460024cacfc3246cc4d9f47a7fc860e4fcea7d1dc651e1256510d8c3c9c7cde0"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5870d620b23b956f72bafed6a0ba9a62edb5f2ef78a8849b7615bd9433384171"}, + {file = "yarl-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2941756754a10e799e5b87e2319bbec481ed0957421fba0e7b9fb1c11e40509f"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9611b83810a74a46be88847e0ea616794c406dbcb4e25405e52bff8f4bee2d0a"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cd7e35818d2328b679a13268d9ea505c85cd773572ebb7a0da7ccbca77b6a52e"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6b981316fcd940f085f646b822c2ff2b8b813cbd61281acad229ea3cbaabeb6b"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:688058e89f512fb7541cb85c2f149c292d3fa22f981d5a5453b40c5da49eb9e8"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56afb44a12b0864d17b597210d63a5b88915d680f6484d8d202ed68ade38673d"}, + {file = "yarl-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:17931dfbb84ae18b287279c1f92b76a3abcd9a49cd69b92e946035cff06bcd20"}, + {file = "yarl-1.17.2-cp312-cp312-win32.whl", hash = "sha256:ff8d95e06546c3a8c188f68040e9d0360feb67ba8498baf018918f669f7bc39b"}, + {file = "yarl-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:4c840cc11163d3c01a9d8aad227683c48cd3e5be5a785921bcc2a8b4b758c4f3"}, + {file = "yarl-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3294f787a437cb5d81846de3a6697f0c35ecff37a932d73b1fe62490bef69211"}, + {file = "yarl-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1e7fedb09c059efee2533119666ca7e1a2610072076926fa028c2ba5dfeb78c"}, + {file = "yarl-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:da9d3061e61e5ae3f753654813bc1cd1c70e02fb72cf871bd6daf78443e9e2b1"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91c012dceadc695ccf69301bfdccd1fc4472ad714fe2dd3c5ab4d2046afddf29"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f11fd61d72d93ac23718d393d2a64469af40be2116b24da0a4ca6922df26807e"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46c465ad06971abcf46dd532f77560181387b4eea59084434bdff97524444032"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef6eee1a61638d29cd7c85f7fd3ac7b22b4c0fabc8fd00a712b727a3e73b0685"}, + {file = "yarl-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4434b739a8a101a837caeaa0137e0e38cb4ea561f39cb8960f3b1e7f4967a3fc"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:752485cbbb50c1e20908450ff4f94217acba9358ebdce0d8106510859d6eb19a"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:17791acaa0c0f89323c57da7b9a79f2174e26d5debbc8c02d84ebd80c2b7bff8"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5c6ea72fe619fee5e6b5d4040a451d45d8175f560b11b3d3e044cd24b2720526"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db5ac3871ed76340210fe028f535392f097fb31b875354bcb69162bba2632ef4"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7a1606ba68e311576bcb1672b2a1543417e7e0aa4c85e9e718ba6466952476c0"}, + {file = "yarl-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9bc27dd5cfdbe3dc7f381b05e6260ca6da41931a6e582267d5ca540270afeeb2"}, + {file = "yarl-1.17.2-cp313-cp313-win32.whl", hash = "sha256:52492b87d5877ec405542f43cd3da80bdcb2d0c2fbc73236526e5f2c28e6db28"}, + {file = "yarl-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:8e1bf59e035534ba4077f5361d8d5d9194149f9ed4f823d1ee29ef3e8964ace3"}, + {file = "yarl-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c556fbc6820b6e2cda1ca675c5fa5589cf188f8da6b33e9fc05b002e603e44fa"}, + {file = "yarl-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f2f44a4247461965fed18b2573f3a9eb5e2c3cad225201ee858726cde610daca"}, + {file = "yarl-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3a3ede8c248f36b60227eb777eac1dbc2f1022dc4d741b177c4379ca8e75571a"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2654caaf5584449d49c94a6b382b3cb4a246c090e72453493ea168b931206a4d"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d41c684f286ce41fa05ab6af70f32d6da1b6f0457459a56cf9e393c1c0b2217"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2270d590997445a0dc29afa92e5534bfea76ba3aea026289e811bf9ed4b65a7f"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18662443c6c3707e2fc7fad184b4dc32dd428710bbe72e1bce7fe1988d4aa654"}, + {file = "yarl-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:75ac158560dec3ed72f6d604c81090ec44529cfb8169b05ae6fcb3e986b325d9"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1fee66b32e79264f428dc8da18396ad59cc48eef3c9c13844adec890cd339db5"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:585ce7cd97be8f538345de47b279b879e091c8b86d9dbc6d98a96a7ad78876a3"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c019abc2eca67dfa4d8fb72ba924871d764ec3c92b86d5b53b405ad3d6aa56b0"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c6e659b9a24d145e271c2faf3fa6dd1fcb3e5d3f4e17273d9e0350b6ab0fe6e2"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:d17832ba39374134c10e82d137e372b5f7478c4cceeb19d02ae3e3d1daed8721"}, + {file = "yarl-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bc3003710e335e3f842ae3fd78efa55f11a863a89a72e9a07da214db3bf7e1f8"}, + {file = "yarl-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f5ffc6b7ace5b22d9e73b2a4c7305740a339fbd55301d52735f73e21d9eb3130"}, + {file = "yarl-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:48e424347a45568413deec6f6ee2d720de2cc0385019bedf44cd93e8638aa0ed"}, + {file = "yarl-1.17.2-py3-none-any.whl", hash = "sha256:dd7abf4f717e33b7487121faf23560b3a50924f80e4bef62b22dab441ded8f3b"}, + {file = "yarl-1.17.2.tar.gz", hash = "sha256:753eaaa0c7195244c84b5cc159dc8204b7fd99f716f11198f999f2332a86b178"}, ] [package.dependencies] idna = ">=2.0" multidict = ">=4.0" +propcache = ">=0.2.0" [metadata] lock-version = "2.0" diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index ea12cb1d..d4be6c96 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -1,11 +1,9 @@ import asyncio -import time from copy import deepcopy from decimal import Decimal -from typing import Any, Callable, Dict, List, Optional, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Tuple from warnings import warn -import grpc from google.protobuf import json_format from pyinjective.client.chain.grpc.chain_grpc_auth_api import ChainGrpcAuthApi @@ -13,6 +11,7 @@ from pyinjective.client.chain.grpc.chain_grpc_bank_api import ChainGrpcBankApi from pyinjective.client.chain.grpc.chain_grpc_distribution_api import ChainGrpcDistributionApi from pyinjective.client.chain.grpc.chain_grpc_exchange_api import ChainGrpcExchangeApi +from pyinjective.client.chain.grpc.chain_grpc_exchange_v2_api import ChainGrpcExchangeV2Api from pyinjective.client.chain.grpc.chain_grpc_permissions_api import ChainGrpcPermissionsApi from pyinjective.client.chain.grpc.chain_grpc_token_factory_api import ChainGrpcTokenFactoryApi from pyinjective.client.chain.grpc.chain_grpc_wasm_api import ChainGrpcWasmApi @@ -47,43 +46,17 @@ from pyinjective.core.tokens_file_loader import TokensFileLoader from pyinjective.core.tx.grpc.tx_grpc_api import TxGrpcApi from pyinjective.exceptions import NotFoundError -from pyinjective.proto.cosmos.auth.v1beta1 import query_pb2 as auth_query, query_pb2_grpc as auth_query_grpc -from pyinjective.proto.cosmos.authz.v1beta1 import query_pb2 as authz_query, query_pb2_grpc as authz_query_grpc -from pyinjective.proto.cosmos.bank.v1beta1 import query_pb2 as bank_query, query_pb2_grpc as bank_query_grpc -from pyinjective.proto.cosmos.base.abci.v1beta1 import abci_pb2 as abci_type -from pyinjective.proto.cosmos.base.tendermint.v1beta1 import ( - query_pb2 as tendermint_query, - query_pb2_grpc as tendermint_query_grpc, -) +from pyinjective.proto.cosmos.auth.v1beta1 import query_pb2_grpc as auth_query_grpc +from pyinjective.proto.cosmos.authz.v1beta1 import query_pb2_grpc as authz_query_grpc +from pyinjective.proto.cosmos.bank.v1beta1 import query_pb2_grpc as bank_query_grpc +from pyinjective.proto.cosmos.base.tendermint.v1beta1 import query_pb2_grpc as tendermint_query_grpc from pyinjective.proto.cosmos.crypto.ed25519 import keys_pb2 as ed25519_keys # noqa: F401 for validator set responses from pyinjective.proto.cosmos.tx.v1beta1 import service_pb2 as tx_service, service_pb2_grpc as tx_service_grpc -from pyinjective.proto.exchange import ( - injective_accounts_rpc_pb2 as exchange_accounts_rpc_pb, - injective_accounts_rpc_pb2_grpc as exchange_accounts_rpc_grpc, - injective_auction_rpc_pb2 as auction_rpc_pb, - injective_auction_rpc_pb2_grpc as auction_rpc_grpc, - injective_derivative_exchange_rpc_pb2 as derivative_exchange_rpc_pb, - injective_derivative_exchange_rpc_pb2_grpc as derivative_exchange_rpc_grpc, - injective_explorer_rpc_pb2 as explorer_rpc_pb, - injective_explorer_rpc_pb2_grpc as explorer_rpc_grpc, - injective_insurance_rpc_pb2 as insurance_rpc_pb, - injective_insurance_rpc_pb2_grpc as insurance_rpc_grpc, - injective_meta_rpc_pb2 as exchange_meta_rpc_pb, - injective_meta_rpc_pb2_grpc as exchange_meta_rpc_grpc, - injective_oracle_rpc_pb2 as oracle_rpc_pb, - injective_oracle_rpc_pb2_grpc as oracle_rpc_grpc, - injective_portfolio_rpc_pb2 as portfolio_rpc_pb, - injective_portfolio_rpc_pb2_grpc as portfolio_rpc_grpc, - injective_spot_exchange_rpc_pb2 as spot_exchange_rpc_pb, - injective_spot_exchange_rpc_pb2_grpc as spot_exchange_rpc_grpc, -) from pyinjective.proto.ibc.lightclients.tendermint.v1 import ( # noqa: F401 for validator set responses tendermint_pb2 as ibc_tendermint, ) -from pyinjective.proto.injective.stream.v1beta1 import ( - query_pb2 as chain_stream_query, - query_pb2_grpc as stream_rpc_grpc, -) +from pyinjective.proto.injective.stream.v1beta1 import query_pb2 as chain_stream_query +from pyinjective.proto.injective.stream.v2 import query_pb2 as chain_stream_v2_query from pyinjective.proto.injective.types.v1beta1 import account_pb2 from pyinjective.utils.logger import LoggerProvider @@ -97,24 +70,7 @@ class AsyncClient: def __init__( self, network: Network, - insecure: Optional[bool] = None, - credentials=None, ): - # the `insecure` parameter is ignored and will be deprecated soon. The value is taken directly from `network` - if insecure is not None: - warn( - "insecure parameter in AsyncClient is no longer used and will be deprecated", - DeprecationWarning, - stacklevel=2, - ) - # the `credentials` parameter is ignored and will be deprecated soon. The value is taken directly from `network` - if credentials is not None: - warn( - "credentials parameter in AsyncClient is no longer used and will be deprecated", - DeprecationWarning, - stacklevel=2, - ) - self.addr = "" self.number = 0 self.sequence = 0 @@ -135,23 +91,9 @@ def __init__( # exchange stubs self.exchange_channel = self.network.create_exchange_grpc_channel() - self.stubMeta = exchange_meta_rpc_grpc.InjectiveMetaRPCStub(self.exchange_channel) - self.stubExchangeAccount = exchange_accounts_rpc_grpc.InjectiveAccountsRPCStub(self.exchange_channel) - self.stubOracle = oracle_rpc_grpc.InjectiveOracleRPCStub(self.exchange_channel) - self.stubInsurance = insurance_rpc_grpc.InjectiveInsuranceRPCStub(self.exchange_channel) - self.stubSpotExchange = spot_exchange_rpc_grpc.InjectiveSpotExchangeRPCStub(self.exchange_channel) - self.stubDerivativeExchange = derivative_exchange_rpc_grpc.InjectiveDerivativeExchangeRPCStub( - self.exchange_channel - ) - self.stubAuction = auction_rpc_grpc.InjectiveAuctionRPCStub(self.exchange_channel) - self.stubPortfolio = portfolio_rpc_grpc.InjectivePortfolioRPCStub(self.exchange_channel) - # explorer stubs self.explorer_channel = self.network.create_explorer_grpc_channel() - self.stubExplorer = explorer_rpc_grpc.InjectiveExplorerRPCStub(self.explorer_channel) - self.chain_stream_channel = self.network.create_chain_stream_grpc_channel() - self.chain_stream_stub = stream_rpc_grpc.StreamStub(channel=self.chain_stream_channel) self._timeout_height_sync_task = None self._initialize_timeout_height_sync_task() @@ -183,6 +125,10 @@ def __init__( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, ) + self.chain_exchange_v2_api = ChainGrpcExchangeV2Api( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) self.ibc_channel_api = IBCChannelGrpcApi( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, @@ -332,13 +278,6 @@ def get_sequence(self): def get_number(self): return self.number - async def get_tx(self, tx_hash): - """ - This method is deprecated and will be removed soon. Please use `fetch_tx` instead - """ - warn("This method is deprecated. Use fetch_tx instead", DeprecationWarning, stacklevel=2) - return await self.stubTx.GetTx(tx_service.GetTxRequest(hash=tx_hash)) - async def fetch_tx(self, hash: str) -> Dict[str, Any]: return await self.tx_api.fetch_tx(hash=hash) @@ -362,28 +301,6 @@ async def sync_timeout_height(self): # default client methods - async def get_account(self, address: str) -> Optional[account_pb2.EthAccount]: - """ - This method is deprecated and will be removed soon. Please use `fetch_account` instead - """ - warn("This method is deprecated. Use fetch_account instead", DeprecationWarning, stacklevel=2) - - try: - metadata = self.network.chain_cookie_assistant.metadata() - account_any = ( - await self.stubAuth.Account(auth_query.QueryAccountRequest(address=address), metadata=metadata) - ).account - account = account_pb2.EthAccount() - if account_any.Is(account.DESCRIPTOR): - account_any.Unpack(account) - self.number = int(account.base_account.account_number) - self.sequence = int(account.base_account.sequence) - except Exception as e: - LoggerProvider().logger_for_class(logging_class=self.__class__).debug( - f"error while fetching sequence and number {e}" - ) - return None - async def fetch_account(self, address: str) -> Optional[account_pb2.EthAccount]: result_account = None try: @@ -418,74 +335,19 @@ async def get_request_id_by_tx_hash(self, tx_hash: str) -> List[int]: raise NotFoundError("Request Id is not found") return request_ids - async def simulate_tx(self, tx_byte: bytes) -> Tuple[Union[abci_type.SimulationResponse, grpc.RpcError], bool]: - """ - This method is deprecated and will be removed soon. Please use `simulate` instead - """ - warn("This method is deprecated. Use simulate instead", DeprecationWarning, stacklevel=2) - try: - req = tx_service.SimulateRequest(tx_bytes=tx_byte) - metadata = self.network.chain_cookie_assistant.metadata() - return await self.stubTx.Simulate(request=req, metadata=metadata), True - except grpc.RpcError as err: - return err, False - async def simulate(self, tx_bytes: bytes) -> Dict[str, Any]: return await self.tx_api.simulate(tx_bytes=tx_bytes) - async def send_tx_sync_mode(self, tx_byte: bytes) -> abci_type.TxResponse: - """ - This method is deprecated and will be removed soon. Please use `broadcast_tx_sync_mode` instead - """ - warn("This method is deprecated. Use broadcast_tx_sync_mode instead", DeprecationWarning, stacklevel=2) - req = tx_service.BroadcastTxRequest(tx_bytes=tx_byte, mode=tx_service.BroadcastMode.BROADCAST_MODE_SYNC) - metadata = self.network.chain_cookie_assistant.metadata() - result = await self.stubTx.BroadcastTx(request=req, metadata=metadata) - return result.tx_response - async def broadcast_tx_sync_mode(self, tx_bytes: bytes) -> Dict[str, Any]: return await self.tx_api.broadcast(tx_bytes=tx_bytes, mode=tx_service.BroadcastMode.BROADCAST_MODE_SYNC) - async def send_tx_async_mode(self, tx_byte: bytes) -> abci_type.TxResponse: - """ - This method is deprecated and will be removed soon. Please use `broadcast_tx_async_mode` instead - """ - warn("This method is deprecated. Use broadcast_tx_async_mode instead", DeprecationWarning, stacklevel=2) - req = tx_service.BroadcastTxRequest(tx_bytes=tx_byte, mode=tx_service.BroadcastMode.BROADCAST_MODE_ASYNC) - metadata = self.network.chain_cookie_assistant.metadata() - result = await self.stubTx.BroadcastTx(request=req, metadata=metadata) - return result.tx_response - async def broadcast_tx_async_mode(self, tx_bytes: bytes) -> Dict[str, Any]: return await self.tx_api.broadcast(tx_bytes=tx_bytes, mode=tx_service.BroadcastMode.BROADCAST_MODE_ASYNC) - async def send_tx_block_mode(self, tx_byte: bytes) -> abci_type.TxResponse: - """ - This method is deprecated and will be removed soon. BLOCK broadcast mode should not be used - """ - warn("This method is deprecated. BLOCK broadcast mode should not be used", DeprecationWarning, stacklevel=2) - req = tx_service.BroadcastTxRequest(tx_bytes=tx_byte, mode=tx_service.BroadcastMode.BROADCAST_MODE_BLOCK) - metadata = self.network.chain_cookie_assistant.metadata() - result = await self.stubTx.BroadcastTx(request=req, metadata=metadata) - return result.tx_response - async def get_chain_id(self) -> str: latest_block = await self.fetch_latest_block() return latest_block["block"]["header"]["chainId"] - async def get_grants(self, granter: str, grantee: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_grants` instead - """ - warn("This method is deprecated. Use fetch_grants instead", DeprecationWarning, stacklevel=2) - return await self.stubAuthz.Grants( - authz_query.QueryGrantsRequest( - granter=granter, - grantee=grantee, - msg_type_url=kwargs.get("msg_type_url"), - ) - ) - async def fetch_grants( self, granter: str, @@ -500,23 +362,9 @@ async def fetch_grants( pagination=pagination, ) - async def get_bank_balances(self, address: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_balances` instead - """ - warn("This method is deprecated. Use fetch_bank_balances instead", DeprecationWarning, stacklevel=2) - return await self.stubBank.AllBalances(bank_query.QueryAllBalancesRequest(address=address)) - async def fetch_bank_balances(self, address: str) -> Dict[str, Any]: return await self.bank_api.fetch_balances(account_address=address) - async def get_bank_balance(self, address: str, denom: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_bank_balance` instead - """ - warn("This method is deprecated. Use fetch_bank_balance instead", DeprecationWarning, stacklevel=2) - return await self.stubBank.Balance(bank_query.QueryBalanceRequest(address=address, denom=denom)) - async def fetch_bank_balance(self, address: str, denom: str) -> Dict[str, Any]: return await self.bank_api.fetch_balance(account_address=address, denom=denom) @@ -624,7 +472,7 @@ async def fetch_subaccount_deposits( subaccount_trader: Optional[str] = None, subaccount_nonce: Optional[int] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_subaccount_deposits( + return await self.chain_exchange_v2_api.fetch_subaccount_deposits( subaccount_id=subaccount_id, subaccount_trader=subaccount_trader, subaccount_nonce=subaccount_nonce, @@ -635,15 +483,20 @@ async def fetch_subaccount_deposit( subaccount_id: str, denom: str, ) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_subaccount_deposit( + return await self.chain_exchange_v2_api.fetch_subaccount_deposit( subaccount_id=subaccount_id, denom=denom, ) async def fetch_exchange_balances(self) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_exchange_balances() + return await self.chain_exchange_v2_api.fetch_exchange_balances() async def fetch_aggregate_volume(self, account: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_aggregate_volume_v2` instead + """ + warn("This method is deprecated. Use fetch_aggregate_volume_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_aggregate_volume(account=account) async def fetch_aggregate_volumes( @@ -651,6 +504,11 @@ async def fetch_aggregate_volumes( accounts: Optional[List[str]] = None, market_ids: Optional[List[str]] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_aggregate_volumes_v2` instead + """ + warn("This method is deprecated. Use fetch_aggregate_volumes_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_aggregate_volumes( accounts=accounts, market_ids=market_ids, @@ -660,6 +518,13 @@ async def fetch_aggregate_market_volume( self, market_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_aggregate_market_volume_v2` instead + """ + warn( + "This method is deprecated. Use fetch_aggregate_market_volume_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_aggregate_market_volume( market_id=market_id, ) @@ -668,21 +533,33 @@ async def fetch_aggregate_market_volumes( self, market_ids: Optional[List[str]] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_aggregate_market_volumes_v2` instead + """ + warn( + "This method is deprecated. Use fetch_aggregate_market_volumes_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_aggregate_market_volumes( market_ids=market_ids, ) async def fetch_denom_decimal(self, denom: str) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_denom_decimal(denom=denom) + return await self.chain_exchange_v2_api.fetch_denom_decimal(denom=denom) async def fetch_denom_decimals(self, denoms: Optional[List[str]] = None) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_denom_decimals(denoms=denoms) + return await self.chain_exchange_v2_api.fetch_denom_decimals(denoms=denoms) async def fetch_chain_spot_markets( self, status: Optional[str] = None, market_ids: Optional[List[str]] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_spot_markets_v2` instead + """ + warn("This method is deprecated. Use fetch_chain_spot_markets_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_spot_markets( status=status, market_ids=market_ids, @@ -692,6 +569,11 @@ async def fetch_chain_spot_market( self, market_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_spot_market_v2` instead + """ + warn("This method is deprecated. Use fetch_chain_spot_market_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_spot_market( market_id=market_id, ) @@ -702,6 +584,13 @@ async def fetch_chain_full_spot_markets( market_ids: Optional[List[str]] = None, with_mid_price_and_tob: Optional[bool] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_full_spot_markets_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_full_spot_markets_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_full_spot_markets( status=status, market_ids=market_ids, @@ -713,6 +602,11 @@ async def fetch_chain_full_spot_market( market_id: str, with_mid_price_and_tob: Optional[bool] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_full_spot_market_v2` instead + """ + warn("This method is deprecated. Use fetch_chain_full_spot_market_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_full_spot_market( market_id=market_id, with_mid_price_and_tob=with_mid_price_and_tob, @@ -726,6 +620,11 @@ async def fetch_chain_spot_orderbook( limit_cumulative_quantity: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_spot_orderbook_v2` instead + """ + warn("This method is deprecated. Use fetch_chain_spot_orderbook_v2 instead", DeprecationWarning, stacklevel=2) + # Order side could be "Side_Unspecified", "Buy", "Sell" return await self.chain_exchange_api.fetch_spot_orderbook( market_id=market_id, @@ -740,6 +639,13 @@ async def fetch_chain_trader_spot_orders( market_id: str, subaccount_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_trader_spot_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_trader_spot_orders_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_trader_spot_orders( market_id=market_id, subaccount_id=subaccount_id, @@ -750,6 +656,16 @@ async def fetch_chain_account_address_spot_orders( market_id: str, account_address: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_account_address_spot_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_account_address_spot_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_account_address_spot_orders( market_id=market_id, account_address=account_address, @@ -761,6 +677,15 @@ async def fetch_chain_spot_orders_by_hashes( subaccount_id: str, order_hashes: List[str], ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_spot_orders_by_hashes_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_spot_orders_by_hashes_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_spot_orders_by_hashes( market_id=market_id, subaccount_id=subaccount_id, @@ -772,6 +697,13 @@ async def fetch_chain_subaccount_orders( subaccount_id: str, market_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_subaccount_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_subaccount_orders_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_subaccount_orders( subaccount_id=subaccount_id, market_id=market_id, @@ -782,6 +714,16 @@ async def fetch_chain_trader_spot_transient_orders( market_id: str, subaccount_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_trader_spot_transient_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_trader_spot_transient_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_trader_spot_transient_orders( market_id=market_id, subaccount_id=subaccount_id, @@ -791,6 +733,11 @@ async def fetch_spot_mid_price_and_tob( self, market_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_spot_mid_price_and_tob_v2` instead + """ + warn("This method is deprecated. Use fetch_spot_mid_price_and_tob_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_spot_mid_price_and_tob( market_id=market_id, ) @@ -799,6 +746,15 @@ async def fetch_derivative_mid_price_and_tob( self, market_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_derivative_mid_price_and_tob_v2` instead + """ + warn( + "This method is deprecated. Use fetch_derivative_mid_price_and_tob_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_derivative_mid_price_and_tob( market_id=market_id, ) @@ -809,6 +765,15 @@ async def fetch_chain_derivative_orderbook( limit_cumulative_notional: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_derivative_orderbook_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_derivative_orderbook_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_derivative_orderbook( market_id=market_id, limit_cumulative_notional=limit_cumulative_notional, @@ -820,6 +785,15 @@ async def fetch_chain_trader_derivative_orders( market_id: str, subaccount_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_trader_derivative_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_trader_derivative_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_trader_derivative_orders( market_id=market_id, subaccount_id=subaccount_id, @@ -830,6 +804,16 @@ async def fetch_chain_account_address_derivative_orders( market_id: str, account_address: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_account_address_derivative_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_account_address_derivative_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_account_address_derivative_orders( market_id=market_id, account_address=account_address, @@ -841,6 +825,16 @@ async def fetch_chain_derivative_orders_by_hashes( subaccount_id: str, order_hashes: List[str], ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_derivative_orders_by_hashes_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_derivative_orders_by_hashes_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_derivative_orders_by_hashes( market_id=market_id, subaccount_id=subaccount_id, @@ -852,6 +846,16 @@ async def fetch_chain_trader_derivative_transient_orders( market_id: str, subaccount_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_trader_derivative_transient_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_trader_derivative_transient_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_trader_derivative_transient_orders( market_id=market_id, subaccount_id=subaccount_id, @@ -863,6 +867,13 @@ async def fetch_chain_derivative_markets( market_ids: Optional[List[str]] = None, with_mid_price_and_tob: Optional[bool] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_derivative_markets_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_derivative_markets_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_derivative_markets( status=status, market_ids=market_ids, @@ -873,23 +884,54 @@ async def fetch_chain_derivative_market( self, market_id: str, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_derivative_market_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_derivative_market_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_derivative_market( market_id=market_id, ) async def fetch_derivative_market_address(self, market_id: str) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_derivative_market_address(market_id=market_id) + return await self.chain_exchange_v2_api.fetch_derivative_market_address(market_id=market_id) async def fetch_subaccount_trade_nonce(self, subaccount_id: str) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_subaccount_trade_nonce(subaccount_id=subaccount_id) + return await self.chain_exchange_v2_api.fetch_subaccount_trade_nonce(subaccount_id=subaccount_id) async def fetch_chain_positions(self) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_positions_v2` instead + """ + warn("This method is deprecated. Use fetch_chain_positions_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_positions() async def fetch_chain_subaccount_positions(self, subaccount_id: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_subaccount_positions_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_subaccount_positions_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_subaccount_positions(subaccount_id=subaccount_id) async def fetch_chain_subaccount_position_in_market(self, subaccount_id: str, market_id: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_subaccount_position_in_market_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_subaccount_position_in_market_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_subaccount_position_in_market( subaccount_id=subaccount_id, market_id=market_id, @@ -898,21 +940,59 @@ async def fetch_chain_subaccount_position_in_market(self, subaccount_id: str, ma async def fetch_chain_subaccount_effective_position_in_market( self, subaccount_id: str, market_id: str ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_subaccount_effective_position_in_market_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_subaccount_effective_position_in_market_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_subaccount_effective_position_in_market( subaccount_id=subaccount_id, market_id=market_id, ) async def fetch_chain_perpetual_market_info(self, market_id: str) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_perpetual_market_info(market_id=market_id) + return await self.chain_exchange_v2_api.fetch_perpetual_market_info(market_id=market_id) async def fetch_chain_expiry_futures_market_info(self, market_id: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_chain_expiry_futures_market_info_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_expiry_futures_market_info_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_expiry_futures_market_info(market_id=market_id) async def fetch_chain_perpetual_market_funding(self, market_id: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_perpetual_market_funding_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_perpetual_market_funding_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_perpetual_market_funding(market_id=market_id) async def fetch_subaccount_order_metadata(self, subaccount_id: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_subaccount_order_metadata_v2` instead + """ + warn( + "This method is deprecated. Use fetch_subaccount_order_metadata_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_subaccount_order_metadata(subaccount_id=subaccount_id) async def fetch_trade_reward_points( @@ -920,7 +1000,7 @@ async def fetch_trade_reward_points( accounts: Optional[List[str]] = None, pending_pool_timestamp: Optional[int] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_trade_reward_points( + return await self.chain_exchange_v2_api.fetch_trade_reward_points( accounts=accounts, pending_pool_timestamp=pending_pool_timestamp, ) @@ -930,43 +1010,64 @@ async def fetch_pending_trade_reward_points( accounts: Optional[List[str]] = None, pending_pool_timestamp: Optional[int] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_pending_trade_reward_points( + return await self.chain_exchange_v2_api.fetch_pending_trade_reward_points( accounts=accounts, pending_pool_timestamp=pending_pool_timestamp, ) async def fetch_trade_reward_campaign(self) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_trade_reward_campaign() + return await self.chain_exchange_v2_api.fetch_trade_reward_campaign() async def fetch_fee_discount_account_info(self, account: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_fee_discount_account_info_v2` instead + """ + warn( + "This method is deprecated. Use fetch_fee_discount_account_info_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_fee_discount_account_info(account=account) async def fetch_fee_discount_schedule(self) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_fee_discount_schedule_v2` instead + """ + warn("This method is deprecated. Use fetch_fee_discount_schedule_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_fee_discount_schedule() async def fetch_balance_mismatches(self, dust_factor: int) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_balance_mismatches(dust_factor=dust_factor) + return await self.chain_exchange_v2_api.fetch_balance_mismatches(dust_factor=dust_factor) async def fetch_balance_with_balance_holds(self) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_balance_with_balance_holds() + return await self.chain_exchange_v2_api.fetch_balance_with_balance_holds() async def fetch_fee_discount_tier_statistics(self) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_fee_discount_tier_statistics() + return await self.chain_exchange_v2_api.fetch_fee_discount_tier_statistics() async def fetch_mito_vault_infos(self) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_mito_vault_infos() + return await self.chain_exchange_v2_api.fetch_mito_vault_infos() async def fetch_market_id_from_vault(self, vault_address: str) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_market_id_from_vault(vault_address=vault_address) + return await self.chain_exchange_v2_api.fetch_market_id_from_vault(vault_address=vault_address) async def fetch_historical_trade_records(self, market_id: str) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_historical_trade_records_v2` instead + """ + warn( + "This method is deprecated. Use fetch_historical_trade_records_v2 instead", DeprecationWarning, stacklevel=2 + ) + return await self.chain_exchange_api.fetch_historical_trade_records(market_id=market_id) async def fetch_is_opted_out_of_rewards(self, account: str) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_is_opted_out_of_rewards(account=account) + return await self.chain_exchange_v2_api.fetch_is_opted_out_of_rewards(account=account) async def fetch_opted_out_of_rewards_accounts(self) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_opted_out_of_rewards_accounts() + return await self.chain_exchange_v2_api.fetch_opted_out_of_rewards_accounts() async def fetch_market_volatility( self, @@ -976,6 +1077,11 @@ async def fetch_market_volatility( include_raw_history: Optional[bool] = None, include_metadata: Optional[bool] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_market_volatility_v2` instead + """ + warn("This method is deprecated. Use fetch_market_volatility_v2 instead", DeprecationWarning, stacklevel=2) + return await self.chain_exchange_api.fetch_market_volatility( market_id=market_id, trade_grouping_sec=trade_grouping_sec, @@ -985,6 +1091,15 @@ async def fetch_market_volatility( ) async def fetch_chain_binary_options_markets(self, status: Optional[str] = None) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. Please use `fetch_chain_binary_options_markets_v2` instead + """ + warn( + "This method is deprecated. Use fetch_chain_binary_options_markets_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_binary_options_markets(status=status) async def fetch_trader_derivative_conditional_orders( @@ -992,6 +1107,16 @@ async def fetch_trader_derivative_conditional_orders( subaccount_id: Optional[str] = None, market_id: Optional[str] = None, ) -> Dict[str, Any]: + """ + This method is deprecated and will be removed soon. + Please use `fetch_trader_derivative_conditional_orders_v2` instead + """ + warn( + "This method is deprecated. Use fetch_trader_derivative_conditional_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return await self.chain_exchange_api.fetch_trader_derivative_conditional_orders( subaccount_id=subaccount_id, market_id=market_id, @@ -1001,44 +1126,355 @@ async def fetch_market_atomic_execution_fee_multiplier( self, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_api.fetch_market_atomic_execution_fee_multiplier( + return await self.chain_exchange_v2_api.fetch_market_atomic_execution_fee_multiplier( market_id=market_id, ) - # Injective Exchange client methods - - # Auction RPC + async def fetch_active_stake_grant(self, grantee: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_active_stake_grant(grantee=grantee) - async def get_auction(self, bid_round: int): + async def fetch_grant_authorization( + self, + granter: str, + grantee: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_grant_authorization( + granter=granter, + grantee=grantee, + ) + + async def fetch_grant_authorizations(self, granter: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_grant_authorizations(granter=granter) + + async def fetch_l3_derivative_orderbook(self, market_id: str) -> Dict[str, Any]: """ - This method is deprecated and will be removed soon. Please use `fetch_auction` instead + This method is deprecated and will be removed soon. Please use `fetch_l3_derivative_orderbook_v2` instead """ - warn("This method is deprecated. Use fetch_auction instead", DeprecationWarning, stacklevel=2) - req = auction_rpc_pb.AuctionEndpointRequest(round=bid_round) - return await self.stubAuction.AuctionEndpoint(req) + warn( + "This method is deprecated. Use fetch_l3_derivative_orderbook_v2 instead", DeprecationWarning, stacklevel=2 + ) - async def fetch_auction(self, round: int) -> Dict[str, Any]: - return await self.exchange_auction_api.fetch_auction(round=round) + return await self.chain_exchange_api.fetch_l3_derivative_orderbook(market_id=market_id) - async def get_auctions(self): + async def fetch_l3_spot_orderbook(self, market_id: str) -> Dict[str, Any]: """ - This method is deprecated and will be removed soon. Please use `fetch_auctions` instead + This method is deprecated and will be removed soon. Please use `fetch_l3_spot_orderbook_v2` instead """ - warn("This method is deprecated. Use fetch_auctions instead", DeprecationWarning, stacklevel=2) - req = auction_rpc_pb.AuctionsRequest() - return await self.stubAuction.Auctions(req) + warn("This method is deprecated. Use fetch_l3_spot_orderbook_v2 instead", DeprecationWarning, stacklevel=2) + + return await self.chain_exchange_api.fetch_l3_spot_orderbook(market_id=market_id) + + async def fetch_aggregate_volume_v2(self, account: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_aggregate_volume(account=account) + + async def fetch_aggregate_volumes_v2( + self, + accounts: Optional[List[str]] = None, + market_ids: Optional[List[str]] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_aggregate_volumes( + accounts=accounts, + market_ids=market_ids, + ) + + async def fetch_aggregate_market_volume_v2( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_aggregate_market_volume( + market_id=market_id, + ) + + async def fetch_aggregate_market_volumes_v2( + self, + market_ids: Optional[List[str]] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_aggregate_market_volumes( + market_ids=market_ids, + ) + + async def fetch_chain_spot_markets_v2( + self, + status: Optional[str] = None, + market_ids: Optional[List[str]] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_spot_markets( + status=status, + market_ids=market_ids, + ) + + async def fetch_chain_spot_market_v2( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_spot_market( + market_id=market_id, + ) + + async def fetch_chain_full_spot_markets_v2( + self, + status: Optional[str] = None, + market_ids: Optional[List[str]] = None, + with_mid_price_and_tob: Optional[bool] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_full_spot_markets( + status=status, + market_ids=market_ids, + with_mid_price_and_tob=with_mid_price_and_tob, + ) + + async def fetch_chain_full_spot_market_v2( + self, + market_id: str, + with_mid_price_and_tob: Optional[bool] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_full_spot_market( + market_id=market_id, + with_mid_price_and_tob=with_mid_price_and_tob, + ) + + async def fetch_chain_spot_orderbook_v2( + self, + market_id: str, + order_side: Optional[str] = None, + limit_cumulative_notional: Optional[str] = None, + limit_cumulative_quantity: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + # Order side could be "Side_Unspecified", "Buy", "Sell" + return await self.chain_exchange_v2_api.fetch_spot_orderbook( + market_id=market_id, + order_side=order_side, + limit_cumulative_notional=limit_cumulative_notional, + limit_cumulative_quantity=limit_cumulative_quantity, + pagination=pagination, + ) + + async def fetch_chain_trader_spot_orders_v2( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_trader_spot_orders( + market_id=market_id, + subaccount_id=subaccount_id, + ) + + async def fetch_chain_account_address_spot_orders_v2( + self, + market_id: str, + account_address: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_account_address_spot_orders( + market_id=market_id, + account_address=account_address, + ) + + async def fetch_chain_spot_orders_by_hashes_v2( + self, + market_id: str, + subaccount_id: str, + order_hashes: List[str], + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_spot_orders_by_hashes( + market_id=market_id, + subaccount_id=subaccount_id, + order_hashes=order_hashes, + ) + + async def fetch_chain_subaccount_orders_v2( + self, + subaccount_id: str, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_subaccount_orders( + subaccount_id=subaccount_id, + market_id=market_id, + ) + + async def fetch_chain_trader_spot_transient_orders_v2( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_trader_spot_transient_orders( + market_id=market_id, + subaccount_id=subaccount_id, + ) + + async def fetch_spot_mid_price_and_tob_v2( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_spot_mid_price_and_tob( + market_id=market_id, + ) + + async def fetch_derivative_mid_price_and_tob_v2( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_derivative_mid_price_and_tob( + market_id=market_id, + ) + + async def fetch_chain_derivative_orderbook_v2( + self, + market_id: str, + limit_cumulative_notional: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_derivative_orderbook( + market_id=market_id, + limit_cumulative_notional=limit_cumulative_notional, + pagination=pagination, + ) + + async def fetch_chain_trader_derivative_orders_v2( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_trader_derivative_orders( + market_id=market_id, + subaccount_id=subaccount_id, + ) + + async def fetch_chain_account_address_derivative_orders_v2( + self, + market_id: str, + account_address: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_account_address_derivative_orders( + market_id=market_id, + account_address=account_address, + ) + + async def fetch_chain_derivative_orders_by_hashes_v2( + self, + market_id: str, + subaccount_id: str, + order_hashes: List[str], + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_derivative_orders_by_hashes( + market_id=market_id, + subaccount_id=subaccount_id, + order_hashes=order_hashes, + ) + + async def fetch_chain_trader_derivative_transient_orders_v2( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_trader_derivative_transient_orders( + market_id=market_id, + subaccount_id=subaccount_id, + ) + + async def fetch_chain_derivative_markets_v2( + self, + status: Optional[str] = None, + market_ids: Optional[List[str]] = None, + with_mid_price_and_tob: Optional[bool] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_derivative_markets( + status=status, + market_ids=market_ids, + with_mid_price_and_tob=with_mid_price_and_tob, + ) + + async def fetch_chain_derivative_market_v2( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_derivative_market( + market_id=market_id, + ) + + async def fetch_chain_positions_v2(self) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_positions() + + async def fetch_chain_subaccount_positions_v2(self, subaccount_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_subaccount_positions(subaccount_id=subaccount_id) + + async def fetch_chain_subaccount_position_in_market_v2(self, subaccount_id: str, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_subaccount_position_in_market( + subaccount_id=subaccount_id, + market_id=market_id, + ) + + async def fetch_chain_subaccount_effective_position_in_market_v2( + self, subaccount_id: str, market_id: str + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_subaccount_effective_position_in_market( + subaccount_id=subaccount_id, + market_id=market_id, + ) + + async def fetch_chain_expiry_futures_market_info_v2(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_expiry_futures_market_info(market_id=market_id) + + async def fetch_chain_perpetual_market_funding_v2(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_perpetual_market_funding(market_id=market_id) + + async def fetch_subaccount_order_metadata_v2(self, subaccount_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_subaccount_order_metadata(subaccount_id=subaccount_id) + + async def fetch_fee_discount_account_info_v2(self, account: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_fee_discount_account_info(account=account) + + async def fetch_fee_discount_schedule_v2(self) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_fee_discount_schedule() + + async def fetch_historical_trade_records_v2(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_historical_trade_records(market_id=market_id) + + async def fetch_market_volatility_v2( + self, + market_id: str, + trade_grouping_sec: Optional[int] = None, + max_age: Optional[int] = None, + include_raw_history: Optional[bool] = None, + include_metadata: Optional[bool] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_market_volatility( + market_id=market_id, + trade_grouping_sec=trade_grouping_sec, + max_age=max_age, + include_raw_history=include_raw_history, + include_metadata=include_metadata, + ) + + async def fetch_chain_binary_options_markets_v2(self, status: Optional[str] = None) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_binary_options_markets(status=status) + + async def fetch_trader_derivative_conditional_orders_v2( + self, + subaccount_id: Optional[str] = None, + market_id: Optional[str] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_trader_derivative_conditional_orders( + subaccount_id=subaccount_id, + market_id=market_id, + ) + + async def fetch_l3_derivative_orderbook_v2(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_l3_derivative_orderbook(market_id=market_id) + + async def fetch_l3_spot_orderbook_v2(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_l3_spot_orderbook(market_id=market_id) + + # Injective Exchange client methods + + # Auction RPC + + async def fetch_auction(self, round: int) -> Dict[str, Any]: + return await self.exchange_auction_api.fetch_auction(round=round) async def fetch_auctions(self) -> Dict[str, Any]: return await self.exchange_auction_api.fetch_auctions() - async def stream_bids(self): - """ - This method is deprecated and will be removed soon. Please use `listen_bids_updates` instead - """ - warn("This method is deprecated. Use listen_bids_updates instead", DeprecationWarning, stacklevel=2) - req = auction_rpc_pb.StreamBidsRequest() - return self.stubAuction.StreamBids(req) - async def listen_bids_updates( self, callback: Callable, @@ -1053,49 +1489,15 @@ async def listen_bids_updates( # Meta RPC - async def ping(self): - """ - This method is deprecated and will be removed soon. Please use `fetch_ping` instead - """ - warn("This method is deprecated. Use fetch_ping instead", DeprecationWarning, stacklevel=2) - req = exchange_meta_rpc_pb.PingRequest() - return await self.stubMeta.Ping(req) - async def fetch_ping(self) -> Dict[str, Any]: return await self.exchange_meta_api.fetch_ping() - async def version(self): - """ - This method is deprecated and will be removed soon. Please use `fetch_version` instead - """ - warn("This method is deprecated. Use fetch_version instead", DeprecationWarning, stacklevel=2) - req = exchange_meta_rpc_pb.VersionRequest() - return await self.stubMeta.Version(req) - async def fetch_version(self) -> Dict[str, Any]: return await self.exchange_meta_api.fetch_version() - async def info(self): - """ - This method is deprecated and will be removed soon. Please use `fetch_info` instead - """ - warn("This method is deprecated. Use fetch_info instead", DeprecationWarning, stacklevel=2) - req = exchange_meta_rpc_pb.InfoRequest( - timestamp=int(time.time() * 1000), - ) - return await self.stubMeta.Info(req) - async def fetch_info(self) -> Dict[str, Any]: return await self.exchange_meta_api.fetch_info() - async def stream_keepalive(self): - """ - This method is deprecated and will be removed soon. Please use `listen_keepalive` instead - """ - warn("This method is deprecated. Use listen_keepalive instead", DeprecationWarning, stacklevel=2) - req = exchange_meta_rpc_pb.StreamKeepaliveRequest() - return self.stubMeta.StreamKeepalive(req) - async def listen_keepalive( self, callback: Callable, @@ -1203,14 +1605,6 @@ async def fetch_node_info(self) -> Dict[str, Any]: async def fetch_syncing(self) -> Dict[str, Any]: return await self.tendermint_api.fetch_syncing() - async def get_latest_block(self) -> tendermint_query.GetLatestBlockResponse: - """ - This method is deprecated and will be removed soon. Please use `fetch_latest_block` instead - """ - warn("This method is deprecated. Use fetch_latest_block instead", DeprecationWarning, stacklevel=2) - req = tendermint_query.GetLatestBlockRequest() - return await self.stubCosmosTendermint.GetLatestBlock(req) - async def fetch_latest_block(self) -> Dict[str, Any]: return await self.tendermint_api.fetch_latest_block() @@ -1234,35 +1628,9 @@ async def abci_query( # ------------------------------ # Explorer RPC - - async def get_tx_by_hash(self, tx_hash: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_tx_by_tx_hash` instead - """ - warn("This method is deprecated. Use fetch_tx_by_tx_hash instead", DeprecationWarning, stacklevel=2) - - req = explorer_rpc_pb.GetTxByTxHashRequest(hash=tx_hash) - return await self.stubExplorer.GetTxByTxHash(req) - async def fetch_tx_by_tx_hash(self, tx_hash: str) -> Dict[str, Any]: return await self.exchange_explorer_api.fetch_tx_by_tx_hash(tx_hash=tx_hash) - async def get_account_txs(self, address: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_account_txs` instead - """ - warn("This method is deprecated. Use fetch_account_txs instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetAccountTxsRequest( - address=address, - before=kwargs.get("before"), - after=kwargs.get("after"), - limit=kwargs.get("limit"), - skip=kwargs.get("skip"), - type=kwargs.get("type"), - module=kwargs.get("module"), - ) - return await self.stubExplorer.GetAccountTxs(req) - async def fetch_account_txs( self, address: str, @@ -1287,52 +1655,9 @@ async def fetch_account_txs( pagination=pagination, ) - async def get_blocks(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_blocks` instead - """ - warn("This method is deprecated. Use fetch_blocks instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetBlocksRequest( - before=kwargs.get("before"), - after=kwargs.get("after"), - limit=kwargs.get("limit"), - ) - return await self.stubExplorer.GetBlocks(req) - - async def fetch_blocks( - self, - before: Optional[int] = None, - after: Optional[int] = None, - pagination: Optional[PaginationOption] = None, - ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_blocks(before=before, after=after, pagination=pagination) - - async def get_block(self, block_height: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_block` instead - """ - warn("This method is deprecated. Use fetch_block instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetBlockRequest(id=block_height) - return await self.stubExplorer.GetBlock(req) - async def fetch_block(self, block_id: str) -> Dict[str, Any]: return await self.exchange_explorer_api.fetch_block(block_id=block_id) - async def get_txs(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_txs` instead - """ - warn("This method is deprecated. Use fetch_txs instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetTxsRequest( - before=kwargs.get("before"), - after=kwargs.get("after"), - limit=kwargs.get("limit"), - skip=kwargs.get("skip"), - type=kwargs.get("type"), - module=kwargs.get("module"), - ) - return await self.stubExplorer.GetTxs(req) - async def fetch_txs( self, before: Optional[int] = None, @@ -1355,14 +1680,6 @@ async def fetch_txs( pagination=pagination, ) - async def stream_txs(self): - """ - This method is deprecated and will be removed soon. Please use `listen_txs_updates` instead - """ - warn("This method is deprecated. Use listen_txs_updates instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.StreamTxsRequest() - return self.stubExplorer.StreamTxs(req) - async def listen_txs_updates( self, callback: Callable, @@ -1375,14 +1692,6 @@ async def listen_txs_updates( on_status_callback=on_status_callback, ) - async def stream_blocks(self): - """ - This method is deprecated and will be removed soon. Please use `listen_blocks_updates` instead - """ - warn("This method is deprecated. Use listen_blocks_updates instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.StreamBlocksRequest() - return self.stubExplorer.StreamBlocks(req) - async def listen_blocks_updates( self, callback: Callable, @@ -1395,19 +1704,6 @@ async def listen_blocks_updates( on_status_callback=on_status_callback, ) - async def get_peggy_deposits(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_peggy_deposit_txs` instead - """ - warn("This method is deprecated. Use fetch_peggy_deposit_txs instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetPeggyDepositTxsRequest( - sender=kwargs.get("sender"), - receiver=kwargs.get("receiver"), - limit=kwargs.get("limit"), - skip=kwargs.get("skip"), - ) - return await self.stubExplorer.GetPeggyDepositTxs(req) - async def fetch_peggy_deposit_txs( self, sender: Optional[str] = None, @@ -1420,19 +1716,6 @@ async def fetch_peggy_deposit_txs( pagination=pagination, ) - async def get_peggy_withdrawals(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_peggy_withdrawal_txs` instead - """ - warn("This method is deprecated. Use fetch_peggy_withdrawal_txs instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetPeggyWithdrawalTxsRequest( - sender=kwargs.get("sender"), - receiver=kwargs.get("receiver"), - limit=kwargs.get("limit"), - skip=kwargs.get("skip"), - ) - return await self.stubExplorer.GetPeggyWithdrawalTxs(req) - async def fetch_peggy_withdrawal_txs( self, sender: Optional[str] = None, @@ -1445,23 +1728,6 @@ async def fetch_peggy_withdrawal_txs( pagination=pagination, ) - async def get_ibc_transfers(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_ibc_transfer_txs` instead - """ - warn("This method is deprecated. Use fetch_ibc_transfer_txs instead", DeprecationWarning, stacklevel=2) - req = explorer_rpc_pb.GetIBCTransferTxsRequest( - sender=kwargs.get("sender"), - receiver=kwargs.get("receiver"), - src_channel=kwargs.get("src_channel"), - src_port=kwargs.get("src_port"), - dest_channel=kwargs.get("dest_channel"), - dest_port=kwargs.get("dest_port"), - limit=kwargs.get("limit"), - skip=kwargs.get("skip"), - ) - return await self.stubExplorer.GetIBCTransferTxs(req) - async def fetch_ibc_transfer_txs( self, sender: Optional[str] = None, @@ -1484,18 +1750,6 @@ async def fetch_ibc_transfer_txs( # AccountsRPC - async def stream_subaccount_balance(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_subaccount_balance_updates` instead - """ - warn( - "This method is deprecated. Use listen_subaccount_balance_updates instead", DeprecationWarning, stacklevel=2 - ) - req = exchange_accounts_rpc_pb.StreamSubaccountBalanceRequest( - subaccount_id=subaccount_id, denoms=kwargs.get("denoms") - ) - return self.stubExchangeAccount.StreamSubaccountBalance(req) - async def listen_subaccount_balance_updates( self, subaccount_id: str, @@ -1512,38 +1766,12 @@ async def listen_subaccount_balance_updates( denoms=denoms, ) - async def get_subaccount_balance(self, subaccount_id: str, denom: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_subaccount_balance` instead - """ - warn("This method is deprecated. Use fetch_subaccount_balance instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.SubaccountBalanceEndpointRequest(subaccount_id=subaccount_id, denom=denom) - return await self.stubExchangeAccount.SubaccountBalanceEndpoint(req) - async def fetch_subaccount_balance(self, subaccount_id: str, denom: str) -> Dict[str, Any]: return await self.exchange_account_api.fetch_subaccount_balance(subaccount_id=subaccount_id, denom=denom) - async def get_subaccount_list(self, account_address: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_subaccounts_list` instead - """ - warn("This method is deprecated. Use fetch_subaccounts_list instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.SubaccountsListRequest(account_address=account_address) - return await self.stubExchangeAccount.SubaccountsList(req) - async def fetch_subaccounts_list(self, address: str) -> Dict[str, Any]: return await self.exchange_account_api.fetch_subaccounts_list(address=address) - async def get_subaccount_balances_list(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_subaccount_balances_list` instead - """ - warn("This method is deprecated. Use fetch_subaccount_balances_list instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.SubaccountBalancesListRequest( - subaccount_id=subaccount_id, denoms=kwargs.get("denoms") - ) - return await self.stubExchangeAccount.SubaccountBalancesList(req) - async def fetch_subaccount_balances_list( self, subaccount_id: str, denoms: Optional[List[str]] = None ) -> Dict[str, Any]: @@ -1551,21 +1779,6 @@ async def fetch_subaccount_balances_list( subaccount_id=subaccount_id, denoms=denoms ) - async def get_subaccount_history(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_subaccount_history` instead - """ - warn("This method is deprecated. Use fetch_subaccount_history instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.SubaccountHistoryRequest( - subaccount_id=subaccount_id, - denom=kwargs.get("denom"), - transfer_types=kwargs.get("transfer_types"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - end_time=kwargs.get("end_time"), - ) - return await self.stubExchangeAccount.SubaccountHistory(req) - async def fetch_subaccount_history( self, subaccount_id: str, @@ -1580,18 +1793,6 @@ async def fetch_subaccount_history( pagination=pagination, ) - async def get_subaccount_order_summary(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_subaccount_order_summary` instead - """ - warn("This method is deprecated. Use fetch_subaccount_order_summary instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.SubaccountOrderSummaryRequest( - subaccount_id=subaccount_id, - order_direction=kwargs.get("order_direction"), - market_id=kwargs.get("market_id"), - ) - return await self.stubExchangeAccount.SubaccountOrderSummary(req) - async def fetch_subaccount_order_summary( self, subaccount_id: str, @@ -1601,19 +1802,8 @@ async def fetch_subaccount_order_summary( return await self.exchange_account_api.fetch_subaccount_order_summary( subaccount_id=subaccount_id, market_id=market_id, - order_direction=order_direction, - ) - - async def get_order_states(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_order_states` instead - """ - warn("This method is deprecated. Use fetch_order_states instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.OrderStatesRequest( - spot_order_hashes=kwargs.get("spot_order_hashes"), - derivative_order_hashes=kwargs.get("derivative_order_hashes"), + order_direction=order_direction, ) - return await self.stubExchangeAccount.OrderStates(req) async def fetch_order_states( self, @@ -1625,43 +1815,14 @@ async def fetch_order_states( derivative_order_hashes=derivative_order_hashes, ) - async def get_portfolio(self, account_address: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_portfolio` instead - """ - warn("This method is deprecated. Use fetch_portfolio instead", DeprecationWarning, stacklevel=2) - - req = exchange_accounts_rpc_pb.PortfolioRequest(account_address=account_address) - return await self.stubExchangeAccount.Portfolio(req) - async def fetch_portfolio(self, account_address: str) -> Dict[str, Any]: return await self.exchange_account_api.fetch_portfolio(account_address=account_address) - async def get_rewards(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_rewards` instead - """ - warn("This method is deprecated. Use fetch_rewards instead", DeprecationWarning, stacklevel=2) - req = exchange_accounts_rpc_pb.RewardsRequest( - account_address=kwargs.get("account_address"), epoch=kwargs.get("epoch") - ) - return await self.stubExchangeAccount.Rewards(req) - async def fetch_rewards(self, account_address: Optional[str] = None, epoch: Optional[int] = None) -> Dict[str, Any]: return await self.exchange_account_api.fetch_rewards(account_address=account_address, epoch=epoch) # OracleRPC - async def stream_oracle_prices(self, base_symbol: str, quote_symbol: str, oracle_type: str): - """ - This method is deprecated and will be removed soon. Please use `listen_subaccount_balance_updates` instead - """ - warn("This method is deprecated. Use listen_oracle_prices_updates instead", DeprecationWarning, stacklevel=2) - req = oracle_rpc_pb.StreamPricesRequest( - base_symbol=base_symbol, quote_symbol=quote_symbol, oracle_type=oracle_type - ) - return self.stubOracle.StreamPrices(req) - async def listen_oracle_prices_updates( self, callback: Callable, @@ -1680,25 +1841,6 @@ async def listen_oracle_prices_updates( oracle_type=oracle_type, ) - async def get_oracle_prices( - self, - base_symbol: str, - quote_symbol: str, - oracle_type: str, - oracle_scale_factor: int, - ): - """ - This method is deprecated and will be removed soon. Please use `fetch_oracle_price` instead - """ - warn("This method is deprecated. Use fetch_oracle_price instead", DeprecationWarning, stacklevel=2) - req = oracle_rpc_pb.PriceRequest( - base_symbol=base_symbol, - quote_symbol=quote_symbol, - oracle_type=oracle_type, - oracle_scale_factor=oracle_scale_factor, - ) - return await self.stubOracle.Price(req) - async def fetch_oracle_price( self, base_symbol: Optional[str] = None, @@ -1713,42 +1855,14 @@ async def fetch_oracle_price( oracle_scale_factor=oracle_scale_factor, ) - async def get_oracle_list(self): - """ - This method is deprecated and will be removed soon. Please use `fetch_oracle_list` instead - """ - warn("This method is deprecated. Use fetch_oracle_list instead", DeprecationWarning, stacklevel=2) - req = oracle_rpc_pb.OracleListRequest() - return await self.stubOracle.OracleList(req) - async def fetch_oracle_list(self) -> Dict[str, Any]: return await self.exchange_oracle_api.fetch_oracle_list() # InsuranceRPC - async def get_insurance_funds(self): - """ - This method is deprecated and will be removed soon. Please use `fetch_insurance_funds` instead - """ - warn("This method is deprecated. Use fetch_insurance_funds instead", DeprecationWarning, stacklevel=2) - req = insurance_rpc_pb.FundsRequest() - return await self.stubInsurance.Funds(req) - async def fetch_insurance_funds(self) -> Dict[str, Any]: return await self.exchange_insurance_api.fetch_insurance_funds() - async def get_redemptions(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_redemptions` instead - """ - warn("This method is deprecated. Use fetch_redemptions instead", DeprecationWarning, stacklevel=2) - req = insurance_rpc_pb.RedemptionsRequest( - redeemer=kwargs.get("redeemer"), - redemption_denom=kwargs.get("redemption_denom"), - status=kwargs.get("status"), - ) - return await self.stubInsurance.Redemptions(req) - async def fetch_redemptions( self, address: Optional[str] = None, @@ -1763,29 +1877,9 @@ async def fetch_redemptions( # SpotRPC - async def get_spot_market(self, market_id: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_market` instead - """ - warn("This method is deprecated. Use fetch_spot_market instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.MarketRequest(market_id=market_id) - return await self.stubSpotExchange.Market(req) - async def fetch_spot_market(self, market_id: str) -> Dict[str, Any]: return await self.exchange_spot_api.fetch_market(market_id=market_id) - async def get_spot_markets(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_markets` instead - """ - warn("This method is deprecated. Use fetch_spot_markets instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.MarketsRequest( - market_status=kwargs.get("market_status"), - base_denom=kwargs.get("base_denom"), - quote_denom=kwargs.get("quote_denom"), - ) - return await self.stubSpotExchange.Markets(req) - async def fetch_spot_markets( self, market_statuses: Optional[List[str]] = None, @@ -1796,16 +1890,6 @@ async def fetch_spot_markets( market_statuses=market_statuses, base_denom=base_denom, quote_denom=quote_denom ) - async def stream_spot_markets(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_spot_markets_updates` instead - """ - warn("This method is deprecated. Use listen_spot_markets_updates instead", DeprecationWarning, stacklevel=2) - - req = spot_exchange_rpc_pb.StreamMarketsRequest(market_ids=kwargs.get("market_ids")) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubSpotExchange.StreamMarkets(request=req, metadata=metadata) - async def listen_spot_markets_updates( self, callback: Callable, @@ -1820,49 +1904,12 @@ async def listen_spot_markets_updates( market_ids=market_ids, ) - async def get_spot_orderbookV2(self, market_id: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_orderbook_v2` instead - """ - warn("This method is deprecated. Use fetch_spot_orderbook_v2 instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.OrderbookV2Request(market_id=market_id) - return await self.stubSpotExchange.OrderbookV2(req) - async def fetch_spot_orderbook_v2(self, market_id: str) -> Dict[str, Any]: return await self.exchange_spot_api.fetch_orderbook_v2(market_id=market_id) - async def get_spot_orderbooksV2(self, market_ids: List): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_orderbooks_v2` instead - """ - warn("This method is deprecated. Use fetch_spot_orderbooks_v2 instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.OrderbooksV2Request(market_ids=market_ids) - return await self.stubSpotExchange.OrderbooksV2(req) - async def fetch_spot_orderbooks_v2(self, market_ids: List[str]) -> Dict[str, Any]: return await self.exchange_spot_api.fetch_orderbooks_v2(market_ids=market_ids) - async def get_spot_orders(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_orders` instead - """ - warn("This method is deprecated. Use fetch_spot_orders instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.OrdersRequest( - market_id=market_id, - order_side=kwargs.get("order_side"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - include_inactive=kwargs.get("include_inactive"), - subaccount_total_orders=kwargs.get("subaccount_total_orders"), - trade_id=kwargs.get("trade_id"), - cid=kwargs.get("cid"), - ) - return await self.stubSpotExchange.Orders(req) - async def fetch_spot_orders( self, market_ids: Optional[List[str]] = None, @@ -1885,35 +1932,6 @@ async def fetch_spot_orders( pagination=pagination, ) - async def get_historical_spot_orders(self, market_id: Optional[str] = None, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_orders_history` instead - """ - warn("This method is deprecated. Use fetch_spot_orders_history instead", DeprecationWarning, stacklevel=2) - market_ids = kwargs.get("market_ids", []) - if market_id is not None: - market_ids.append(market_id) - order_types = kwargs.get("order_types", []) - order_type = kwargs.get("order_type") - if order_type is not None: - order_types.append(market_id) - req = spot_exchange_rpc_pb.OrdersHistoryRequest( - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - order_types=order_types, - direction=kwargs.get("direction"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - state=kwargs.get("state"), - execution_types=kwargs.get("execution_types", []), - market_ids=market_ids, - trade_id=kwargs.get("trade_id"), - active_markets_only=kwargs.get("active_markets_only"), - cid=kwargs.get("cid"), - ) - return await self.stubSpotExchange.OrdersHistory(req) - async def fetch_spot_orders_history( self, subaccount_id: Optional[str] = None, @@ -1940,29 +1958,6 @@ async def fetch_spot_orders_history( pagination=pagination, ) - async def get_spot_trades(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_trades` instead - """ - warn("This method is deprecated. Use fetch_spot_trades instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.TradesRequest( - market_id=kwargs.get("market_id"), - execution_side=kwargs.get("execution_side"), - direction=kwargs.get("direction"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - subaccount_ids=kwargs.get("subaccount_ids"), - execution_types=kwargs.get("execution_types"), - trade_id=kwargs.get("trade_id"), - account_address=kwargs.get("account_address"), - cid=kwargs.get("cid"), - ) - return await self.stubSpotExchange.Trades(req) - async def fetch_spot_trades( self, market_ids: Optional[List[str]] = None, @@ -1987,15 +1982,6 @@ async def fetch_spot_trades( pagination=pagination, ) - async def stream_spot_orderbook_snapshot(self, market_ids: List[str]): - """ - This method is deprecated and will be removed soon. Please use `listen_spot_orderbook_snapshots` instead - """ - warn("This method is deprecated. Use listen_spot_orderbook_snapshots instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.StreamOrderbookV2Request(market_ids=market_ids) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubSpotExchange.StreamOrderbookV2(request=req, metadata=metadata) - async def listen_spot_orderbook_snapshots( self, market_ids: List[str], @@ -2010,15 +1996,6 @@ async def listen_spot_orderbook_snapshots( on_status_callback=on_status_callback, ) - async def stream_spot_orderbook_update(self, market_ids: List[str]): - """ - This method is deprecated and will be removed soon. Please use `listen_spot_orderbook_updates` instead - """ - warn("This method is deprecated. Use listen_spot_orderbook_updates instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.StreamOrderbookUpdateRequest(market_ids=market_ids) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubSpotExchange.StreamOrderbookUpdate(request=req, metadata=metadata) - async def listen_spot_orderbook_updates( self, market_ids: List[str], @@ -2033,28 +2010,6 @@ async def listen_spot_orderbook_updates( on_status_callback=on_status_callback, ) - async def stream_spot_orders(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_spot_orders_updates` instead - """ - warn("This method is deprecated. Use listen_spot_orders_updates instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.StreamOrdersRequest( - market_id=market_id, - order_side=kwargs.get("order_side"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - include_inactive=kwargs.get("include_inactive"), - subaccount_total_orders=kwargs.get("subaccount_total_orders"), - trade_id=kwargs.get("trade_id"), - cid=kwargs.get("cid"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubSpotExchange.StreamOrders(request=req, metadata=metadata) - async def listen_spot_orders_updates( self, callback: Callable, @@ -2083,26 +2038,6 @@ async def listen_spot_orders_updates( pagination=pagination, ) - async def stream_historical_spot_orders(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_spot_orders_history_updates` instead - """ - warn( - "This method is deprecated. Use listen_spot_orders_history_updates instead", - DeprecationWarning, - stacklevel=2, - ) - req = spot_exchange_rpc_pb.StreamOrdersHistoryRequest( - market_id=market_id, - direction=kwargs.get("direction"), - subaccount_id=kwargs.get("subaccount_id"), - order_types=kwargs.get("order_types"), - state=kwargs.get("state"), - execution_types=kwargs.get("execution_types"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubSpotExchange.StreamOrdersHistory(request=req, metadata=metadata) - async def listen_spot_orders_history_updates( self, callback: Callable, @@ -2127,27 +2062,6 @@ async def listen_spot_orders_history_updates( execution_types=execution_types, ) - async def stream_historical_derivative_orders(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. - Please use `listen_derivative_orders_history_updates` instead - """ - warn( - "This method is deprecated. Use listen_derivative_orders_history_updates instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.StreamOrdersHistoryRequest( - market_id=market_id, - direction=kwargs.get("direction"), - subaccount_id=kwargs.get("subaccount_id"), - order_types=kwargs.get("order_types"), - state=kwargs.get("state"), - execution_types=kwargs.get("execution_types"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamOrdersHistory(request=req, metadata=metadata) - async def listen_derivative_orders_history_updates( self, callback: Callable, @@ -2172,30 +2086,6 @@ async def listen_derivative_orders_history_updates( execution_types=execution_types, ) - async def stream_spot_trades(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_spot_trades_updates` instead - """ - warn("This method is deprecated. Use listen_spot_trades_updates instead", DeprecationWarning, stacklevel=2) - req = spot_exchange_rpc_pb.StreamTradesRequest( - market_id=kwargs.get("market_id"), - execution_side=kwargs.get("execution_side"), - direction=kwargs.get("direction"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - subaccount_ids=kwargs.get("subaccount_ids"), - execution_types=kwargs.get("execution_types"), - trade_id=kwargs.get("trade_id"), - account_address=kwargs.get("account_address"), - cid=kwargs.get("cid"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubSpotExchange.StreamTrades(request=req, metadata=metadata) - async def listen_spot_trades_updates( self, callback: Callable, @@ -2226,21 +2116,6 @@ async def listen_spot_trades_updates( pagination=pagination, ) - async def get_spot_subaccount_orders(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_subaccount_orders_list` instead - """ - warn( - "This method is deprecated. Use fetch_spot_subaccount_orders_list instead", DeprecationWarning, stacklevel=2 - ) - req = spot_exchange_rpc_pb.SubaccountOrdersListRequest( - subaccount_id=subaccount_id, - market_id=kwargs.get("market_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubSpotExchange.SubaccountOrdersList(req) - async def fetch_spot_subaccount_orders_list( self, subaccount_id: str, @@ -2251,23 +2126,6 @@ async def fetch_spot_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) - async def get_spot_subaccount_trades(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_spot_subaccount_trades_list` instead - """ - warn( - "This method is deprecated. Use fetch_spot_subaccount_trades_list instead", DeprecationWarning, stacklevel=2 - ) - req = spot_exchange_rpc_pb.SubaccountTradesListRequest( - subaccount_id=subaccount_id, - market_id=kwargs.get("market_id"), - execution_type=kwargs.get("execution_type"), - direction=kwargs.get("direction"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubSpotExchange.SubaccountTradesList(req) - async def fetch_spot_subaccount_trades_list( self, subaccount_id: str, @@ -2285,29 +2143,9 @@ async def fetch_spot_subaccount_trades_list( ) # DerivativeRPC - - async def get_derivative_market(self, market_id: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_market` instead - """ - warn("This method is deprecated. Use fetch_derivative_market instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.MarketRequest(market_id=market_id) - return await self.stubDerivativeExchange.Market(req) - async def fetch_derivative_market(self, market_id: str) -> Dict[str, Any]: return await self.exchange_derivative_api.fetch_market(market_id=market_id) - async def get_derivative_markets(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_markets` instead - """ - warn("This method is deprecated. Use fetch_derivative_markets instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.MarketsRequest( - market_status=kwargs.get("market_status"), - quote_denom=kwargs.get("quote_denom"), - ) - return await self.stubDerivativeExchange.Markets(req) - async def fetch_derivative_markets( self, market_statuses: Optional[List[str]] = None, @@ -2318,17 +2156,6 @@ async def fetch_derivative_markets( quote_denom=quote_denom, ) - async def stream_derivative_markets(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_derivative_market_updates` instead - """ - warn( - "This method is deprecated. Use listen_derivative_market_updates instead", DeprecationWarning, stacklevel=2 - ) - req = derivative_exchange_rpc_pb.StreamMarketRequest(market_ids=kwargs.get("market_ids")) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamMarket(request=req, metadata=metadata) - async def listen_derivative_market_updates( self, callback: Callable, @@ -2343,51 +2170,12 @@ async def listen_derivative_market_updates( market_ids=market_ids, ) - async def get_derivative_orderbook(self, market_id: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_orderbook_v2` instead - """ - warn("This method is deprecated. Use fetch_derivative_orderbook_v2 instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.OrderbookV2Request(market_id=market_id) - return await self.stubDerivativeExchange.OrderbookV2(req) - async def fetch_derivative_orderbook_v2(self, market_id: str) -> Dict[str, Any]: return await self.exchange_derivative_api.fetch_orderbook_v2(market_id=market_id) - async def get_derivative_orderbooksV2(self, market_ids: List[str]): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_orderbooks_v2` instead - """ - warn("This method is deprecated. Use fetch_derivative_orderbooks_v2 instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.OrderbooksV2Request(market_ids=market_ids) - return await self.stubDerivativeExchange.OrderbooksV2(req) - async def fetch_derivative_orderbooks_v2(self, market_ids: List[str]) -> Dict[str, Any]: return await self.exchange_derivative_api.fetch_orderbooks_v2(market_ids=market_ids) - async def get_derivative_orders(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_orders` instead - """ - warn("This method is deprecated. Use fetch_derivative_orders instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.OrdersRequest( - market_id=market_id, - order_side=kwargs.get("order_side"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - is_conditional=kwargs.get("is_conditional"), - order_type=kwargs.get("order_type"), - include_inactive=kwargs.get("include_inactive"), - subaccount_total_orders=kwargs.get("subaccount_total_orders"), - trade_id=kwargs.get("trade_id"), - cid=kwargs.get("cid"), - ) - return await self.stubDerivativeExchange.Orders(req) - async def fetch_derivative_orders( self, market_ids: Optional[List[str]] = None, @@ -2414,36 +2202,6 @@ async def fetch_derivative_orders( pagination=pagination, ) - async def get_historical_derivative_orders(self, market_id: Optional[str] = None, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_orders_history` instead - """ - warn("This method is deprecated. Use fetch_derivative_orders_history instead", DeprecationWarning, stacklevel=2) - market_ids = kwargs.get("market_ids", []) - if market_id is not None: - market_ids.append(market_id) - order_types = kwargs.get("order_types", []) - order_type = kwargs.get("order_type") - if order_type is not None: - order_types.append(market_id) - req = derivative_exchange_rpc_pb.OrdersHistoryRequest( - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - order_types=order_types, - direction=kwargs.get("direction"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - is_conditional=kwargs.get("is_conditional"), - state=kwargs.get("state"), - execution_types=kwargs.get("execution_types", []), - market_ids=market_ids, - trade_id=kwargs.get("trade_id"), - active_markets_only=kwargs.get("active_markets_only"), - cid=kwargs.get("cid"), - ) - return await self.stubDerivativeExchange.OrdersHistory(req) - async def fetch_derivative_orders_history( self, subaccount_id: Optional[str] = None, @@ -2472,29 +2230,6 @@ async def fetch_derivative_orders_history( pagination=pagination, ) - async def get_derivative_trades(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_trades` instead - """ - warn("This method is deprecated. Use fetch_derivative_trades instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.TradesRequest( - market_id=kwargs.get("market_id"), - execution_side=kwargs.get("execution_side"), - direction=kwargs.get("direction"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - subaccount_ids=kwargs.get("subaccount_ids"), - execution_types=kwargs.get("execution_types"), - trade_id=kwargs.get("trade_id"), - account_address=kwargs.get("account_address"), - cid=kwargs.get("cid"), - ) - return await self.stubDerivativeExchange.Trades(req) - async def fetch_derivative_trades( self, market_ids: Optional[List[str]] = None, @@ -2519,19 +2254,6 @@ async def fetch_derivative_trades( pagination=pagination, ) - async def stream_derivative_orderbook_snapshot(self, market_ids: List[str]): - """ - This method is deprecated and will be removed soon. Please use `listen_derivative_orderbook_snapshots` instead - """ - warn( - "This method is deprecated. Use listen_derivative_orderbook_snapshots instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.StreamOrderbookV2Request(market_ids=market_ids) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamOrderbookV2(request=req, metadata=metadata) - async def listen_derivative_orderbook_snapshots( self, market_ids: List[str], @@ -2546,19 +2268,6 @@ async def listen_derivative_orderbook_snapshots( on_status_callback=on_status_callback, ) - async def stream_derivative_orderbook_update(self, market_ids: List[str]): - """ - This method is deprecated and will be removed soon. Please use `listen_derivative_orderbook_updates` instead - """ - warn( - "This method is deprecated. Use listen_derivative_orderbook_updates instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.StreamOrderbookUpdateRequest(market_ids=market_ids) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamOrderbookUpdate(request=req, metadata=metadata) - async def listen_derivative_orderbook_updates( self, market_ids: List[str], @@ -2573,32 +2282,6 @@ async def listen_derivative_orderbook_updates( on_status_callback=on_status_callback, ) - async def stream_derivative_orders(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_derivative_orders_updates` instead - """ - warn( - "This method is deprecated. Use listen_derivative_orders_updates instead", DeprecationWarning, stacklevel=2 - ) - req = derivative_exchange_rpc_pb.StreamOrdersRequest( - market_id=market_id, - order_side=kwargs.get("order_side"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - is_conditional=kwargs.get("is_conditional"), - order_type=kwargs.get("order_type"), - include_inactive=kwargs.get("include_inactive"), - subaccount_total_orders=kwargs.get("subaccount_total_orders"), - trade_id=kwargs.get("trade_id"), - cid=kwargs.get("cid"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamOrders(request=req, metadata=metadata) - async def listen_derivative_orders_updates( self, callback: Callable, @@ -2631,32 +2314,6 @@ async def listen_derivative_orders_updates( pagination=pagination, ) - async def stream_derivative_trades(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_derivative_trades_updates` instead - """ - warn( - "This method is deprecated. Use listen_derivative_trades_updates instead", DeprecationWarning, stacklevel=2 - ) - req = derivative_exchange_rpc_pb.StreamTradesRequest( - market_id=kwargs.get("market_id"), - execution_side=kwargs.get("execution_side"), - direction=kwargs.get("direction"), - subaccount_id=kwargs.get("subaccount_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - start_time=kwargs.get("start_time"), - end_time=kwargs.get("end_time"), - market_ids=kwargs.get("market_ids"), - subaccount_ids=kwargs.get("subaccount_ids"), - execution_types=kwargs.get("execution_types"), - trade_id=kwargs.get("trade_id"), - account_address=kwargs.get("account_address"), - cid=kwargs.get("cid"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamTrades(request=req, metadata=metadata) - async def listen_derivative_trades_updates( self, callback: Callable, @@ -2687,22 +2344,6 @@ async def listen_derivative_trades_updates( pagination=pagination, ) - async def get_derivative_positions(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_positions_v2` instead - """ - warn("This method is deprecated. Use fetch_derivative_positions_v2 instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.PositionsRequest( - market_id=kwargs.get("market_id"), - market_ids=kwargs.get("market_ids"), - subaccount_id=kwargs.get("subaccount_id"), - direction=kwargs.get("direction"), - subaccount_total_positions=kwargs.get("subaccount_total_positions"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubDerivativeExchange.Positions(req) - async def fetch_derivative_positions_v2( self, market_ids: Optional[List[str]] = None, @@ -2719,24 +2360,6 @@ async def fetch_derivative_positions_v2( pagination=pagination, ) - async def stream_derivative_positions(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_derivative_positions_updates` instead - """ - warn( - "This method is deprecated. Use listen_derivative_positions_updates instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.StreamPositionsRequest( - market_id=kwargs.get("market_id"), - market_ids=kwargs.get("market_ids"), - subaccount_id=kwargs.get("subaccount_id"), - subaccount_ids=kwargs.get("subaccount_ids"), - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubDerivativeExchange.StreamPositions(request=req, metadata=metadata) - async def listen_derivative_positions_updates( self, callback: Callable, @@ -2753,22 +2376,6 @@ async def listen_derivative_positions_updates( subaccount_ids=subaccount_ids, ) - async def get_derivative_liquidable_positions(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_liquidable_positions` instead - """ - warn( - "This method is deprecated. Use fetch_derivative_liquidable_positions instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.LiquidablePositionsRequest( - market_id=kwargs.get("market_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubDerivativeExchange.LiquidablePositions(req) - async def fetch_derivative_liquidable_positions( self, market_id: Optional[str] = None, @@ -2779,23 +2386,6 @@ async def fetch_derivative_liquidable_positions( pagination=pagination, ) - async def get_derivative_subaccount_orders(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_subaccount_orders` instead - """ - warn( - "This method is deprecated. Use fetch_derivative_subaccount_orders instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.SubaccountOrdersListRequest( - subaccount_id=subaccount_id, - market_id=kwargs.get("market_id"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubDerivativeExchange.SubaccountOrdersList(req) - async def fetch_subaccount_orders_list( self, subaccount_id: str, @@ -2806,25 +2396,6 @@ async def fetch_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) - async def get_derivative_subaccount_trades(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_derivative_subaccount_trades` instead - """ - warn( - "This method is deprecated. Use fetch_derivative_subaccount_trades instead", - DeprecationWarning, - stacklevel=2, - ) - req = derivative_exchange_rpc_pb.SubaccountTradesListRequest( - subaccount_id=subaccount_id, - market_id=kwargs.get("market_id"), - execution_type=kwargs.get("execution_type"), - direction=kwargs.get("direction"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubDerivativeExchange.SubaccountTradesList(req) - async def fetch_derivative_subaccount_trades_list( self, subaccount_id: str, @@ -2841,21 +2412,6 @@ async def fetch_derivative_subaccount_trades_list( pagination=pagination, ) - async def get_funding_payments(self, subaccount_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_funding_payments` instead - """ - warn("This method is deprecated. Use fetch_funding_payments instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.FundingPaymentsRequest( - subaccount_id=subaccount_id, - market_id=kwargs.get("market_id"), - market_ids=kwargs.get("market_ids"), - skip=kwargs.get("skip"), - end_time=kwargs.get("end_time"), - limit=kwargs.get("limit"), - ) - return await self.stubDerivativeExchange.FundingPayments(req) - async def fetch_funding_payments( self, market_ids: Optional[List[str]] = None, @@ -2866,19 +2422,6 @@ async def fetch_funding_payments( market_ids=market_ids, subaccount_id=subaccount_id, pagination=pagination ) - async def get_funding_rates(self, market_id: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_funding_rates` instead - """ - warn("This method is deprecated. Use fetch_funding_rates instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.FundingRatesRequest( - market_id=market_id, - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - end_time=kwargs.get("end_time"), - ) - return await self.stubDerivativeExchange.FundingRates(req) - async def fetch_funding_rates( self, market_id: str, @@ -2886,19 +2429,6 @@ async def fetch_funding_rates( ) -> Dict[str, Any]: return await self.exchange_derivative_api.fetch_funding_rates(market_id=market_id, pagination=pagination) - async def get_binary_options_markets(self, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `fetch_binary_options_markets` instead - """ - warn("This method is deprecated. Use fetch_binary_options_markets instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.BinaryOptionsMarketsRequest( - market_status=kwargs.get("market_status"), - quote_denom=kwargs.get("quote_denom"), - skip=kwargs.get("skip"), - limit=kwargs.get("limit"), - ) - return await self.stubDerivativeExchange.BinaryOptionsMarkets(req) - async def fetch_binary_options_markets( self, market_status: Optional[str] = None, @@ -2911,45 +2441,13 @@ async def fetch_binary_options_markets( pagination=pagination, ) - async def get_binary_options_market(self, market_id: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_binary_options_market` instead - """ - warn("This method is deprecated. Use fetch_binary_options_market instead", DeprecationWarning, stacklevel=2) - req = derivative_exchange_rpc_pb.BinaryOptionsMarketRequest(market_id=market_id) - return await self.stubDerivativeExchange.BinaryOptionsMarket(req) - async def fetch_binary_options_market(self, market_id: str) -> Dict[str, Any]: return await self.exchange_derivative_api.fetch_binary_options_market(market_id=market_id) # PortfolioRPC - - async def get_account_portfolio(self, account_address: str): - """ - This method is deprecated and will be removed soon. Please use `fetch_account_portfolio_balances` instead - """ - warn( - "This method is deprecated. Use fetch_account_portfolio_balances instead", DeprecationWarning, stacklevel=2 - ) - req = portfolio_rpc_pb.AccountPortfolioRequest(account_address=account_address) - return await self.stubPortfolio.AccountPortfolio(req) - async def fetch_account_portfolio_balances(self, account_address: str) -> Dict[str, Any]: return await self.exchange_portfolio_api.fetch_account_portfolio_balances(account_address=account_address) - async def stream_account_portfolio(self, account_address: str, **kwargs): - """ - This method is deprecated and will be removed soon. Please use `listen_account_portfolio_updates` instead - """ - warn( - "This method is deprecated. Use listen_account_portfolio_updates instead", DeprecationWarning, stacklevel=2 - ) - req = portfolio_rpc_pb.StreamAccountPortfolioRequest( - account_address=account_address, subaccount_id=kwargs.get("subaccount_id"), type=kwargs.get("type") - ) - metadata = self.network.exchange_cookie_assistant.metadata() - return self.stubPortfolio.StreamAccountPortfolio(request=req, metadata=metadata) - async def listen_account_portfolio_updates( self, account_address: str, @@ -2968,8 +2466,11 @@ async def listen_account_portfolio_updates( update_type=update_type, ) - async def chain_stream( + async def listen_chain_stream_updates( self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, bank_balances_filter: Optional[chain_stream_query.BankBalancesFilter] = None, subaccount_deposits_filter: Optional[chain_stream_query.SubaccountDepositsFilter] = None, spot_trades_filter: Optional[chain_stream_query.TradesFilter] = None, @@ -2982,10 +2483,14 @@ async def chain_stream( oracle_price_filter: Optional[chain_stream_query.OraclePriceFilter] = None, ): """ - This method is deprecated and will be removed soon. Please use `listen_chain_stream_updates` instead + This method is deprecated and will be removed soon. Please use `listen_chain_stream_v2_updates` instead """ - warn("This method is deprecated. Use listen_chain_stream_updates instead", DeprecationWarning, stacklevel=2) - request = chain_stream_query.StreamRequest( + warn("This method is deprecated. Use listen_chain_stream_v2_updates instead", DeprecationWarning, stacklevel=2) + + return await self.chain_stream_api.stream( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, bank_balances_filter=bank_balances_filter, subaccount_deposits_filter=subaccount_deposits_filter, spot_trades_filter=spot_trades_filter, @@ -2997,26 +2502,24 @@ async def chain_stream( positions_filter=positions_filter, oracle_price_filter=oracle_price_filter, ) - metadata = self.network.chain_cookie_assistant.metadata() - return self.chain_stream_stub.Stream(request=request, metadata=metadata) - async def listen_chain_stream_updates( + async def listen_chain_stream_v2_updates( self, callback: Callable, on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, - bank_balances_filter: Optional[chain_stream_query.BankBalancesFilter] = None, - subaccount_deposits_filter: Optional[chain_stream_query.SubaccountDepositsFilter] = None, - spot_trades_filter: Optional[chain_stream_query.TradesFilter] = None, - derivative_trades_filter: Optional[chain_stream_query.TradesFilter] = None, - spot_orders_filter: Optional[chain_stream_query.OrdersFilter] = None, - derivative_orders_filter: Optional[chain_stream_query.OrdersFilter] = None, - spot_orderbooks_filter: Optional[chain_stream_query.OrderbookFilter] = None, - derivative_orderbooks_filter: Optional[chain_stream_query.OrderbookFilter] = None, - positions_filter: Optional[chain_stream_query.PositionsFilter] = None, - oracle_price_filter: Optional[chain_stream_query.OraclePriceFilter] = None, + bank_balances_filter: Optional[chain_stream_v2_query.BankBalancesFilter] = None, + subaccount_deposits_filter: Optional[chain_stream_v2_query.SubaccountDepositsFilter] = None, + spot_trades_filter: Optional[chain_stream_v2_query.TradesFilter] = None, + derivative_trades_filter: Optional[chain_stream_v2_query.TradesFilter] = None, + spot_orders_filter: Optional[chain_stream_v2_query.OrdersFilter] = None, + derivative_orders_filter: Optional[chain_stream_v2_query.OrdersFilter] = None, + spot_orderbooks_filter: Optional[chain_stream_v2_query.OrderbookFilter] = None, + derivative_orderbooks_filter: Optional[chain_stream_v2_query.OrderbookFilter] = None, + positions_filter: Optional[chain_stream_v2_query.PositionsFilter] = None, + oracle_price_filter: Optional[chain_stream_v2_query.OraclePriceFilter] = None, ): - return await self.chain_stream_api.stream( + return await self.chain_stream_api.stream_v2( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -3294,7 +2797,7 @@ async def _initialize_tokens_and_markets(self): self._tokens_by_denom.update(tokens_by_denom) self._tokens_by_symbol.update(tokens_by_symbol) - markets_info = (await self.fetch_chain_spot_markets(status="Active"))["markets"] + markets_info = (await self.fetch_chain_spot_markets_v2(status="Active"))["markets"] for market_info in markets_info: base_token = self._tokens_by_denom.get(market_info["baseDenom"]) quote_token = self._tokens_by_denom.get(market_info["quoteDenom"]) @@ -3321,7 +2824,7 @@ async def _initialize_tokens_and_markets(self): spot_markets[market.id] = market - markets_info = (await self.fetch_chain_derivative_markets(status="Active", with_mid_price_and_tob=False))[ + markets_info = (await self.fetch_chain_derivative_markets_v2(status="Active", with_mid_price_and_tob=False))[ "markets" ] for market_info in markets_info: @@ -3359,7 +2862,7 @@ async def _initialize_tokens_and_markets(self): derivative_markets[derivative_market.id] = derivative_market - markets_info = (await self.fetch_chain_binary_options_markets(status="Active"))["markets"] + markets_info = (await self.fetch_chain_binary_options_markets_v2(status="Active"))["markets"] for market_info in markets_info: quote_token = self._tokens_by_denom.get(market_info["quoteDenom"]) diff --git a/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py b/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py index 6ac66a67..fa6be3c6 100644 --- a/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py +++ b/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py @@ -575,5 +575,52 @@ async def fetch_market_atomic_execution_fee_multiplier( return response + async def fetch_active_stake_grant(self, grantee: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryActiveStakeGrantRequest(grantee=grantee) + response = await self._execute_call(call=self._stub.ActiveStakeGrant, request=request) + + return response + + async def fetch_grant_authorization( + self, + granter: str, + grantee: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryGrantAuthorizationRequest( + granter=granter, + grantee=grantee, + ) + response = await self._execute_call(call=self._stub.GrantAuthorization, request=request) + + return response + + async def fetch_grant_authorizations(self, granter: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryGrantAuthorizationsRequest(granter=granter) + response = await self._execute_call(call=self._stub.GrantAuthorizations, request=request) + + return response + + async def fetch_l3_derivative_orderbook( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFullDerivativeOrderbookRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.L3DerivativeOrderBook, request=request) + + return response + + async def fetch_l3_spot_orderbook( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFullSpotOrderbookRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.L3SpotOrderBook, request=request) + + return response + async def _execute_call(self, call: Callable, request) -> Dict[str, Any]: return await self._assistant.execute_call(call=call, request=request) diff --git a/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py new file mode 100644 index 00000000..d931701b --- /dev/null +++ b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py @@ -0,0 +1,626 @@ +from typing import Any, Callable, Dict, List, Optional + +from grpc.aio import Channel + +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import CookieAssistant +from pyinjective.proto.injective.exchange.v2 import ( + query_pb2 as exchange_query_pb, + query_pb2_grpc as exchange_query_grpc, +) +from pyinjective.utils.grpc_api_request_assistant import GrpcApiRequestAssistant + + +class ChainGrpcExchangeV2Api: + def __init__(self, channel: Channel, cookie_assistant: CookieAssistant): + self._stub = exchange_query_grpc.QueryStub(channel) + self._assistant = GrpcApiRequestAssistant(cookie_assistant=cookie_assistant) + + async def fetch_exchange_params(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryExchangeParamsRequest() + response = await self._execute_call(call=self._stub.QueryExchangeParams, request=request) + + return response + + async def fetch_subaccount_deposits( + self, + subaccount_id: Optional[str] = None, + subaccount_trader: Optional[str] = None, + subaccount_nonce: Optional[int] = None, + ) -> Dict[str, Any]: + subaccount = None + if subaccount_trader is not None or subaccount_nonce is not None: + subaccount = exchange_query_pb.Subaccount( + trader=subaccount_trader, + subaccount_nonce=subaccount_nonce, + ) + + request = exchange_query_pb.QuerySubaccountDepositsRequest(subaccount_id=subaccount_id, subaccount=subaccount) + response = await self._execute_call(call=self._stub.SubaccountDeposits, request=request) + + return response + + async def fetch_subaccount_deposit( + self, + subaccount_id: str, + denom: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountDepositRequest( + subaccount_id=subaccount_id, + denom=denom, + ) + response = await self._execute_call(call=self._stub.SubaccountDeposit, request=request) + + return response + + async def fetch_exchange_balances(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryExchangeBalancesRequest() + response = await self._execute_call(call=self._stub.ExchangeBalances, request=request) + + return response + + async def fetch_aggregate_volume(self, account: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryAggregateVolumeRequest(account=account) + response = await self._execute_call(call=self._stub.AggregateVolume, request=request) + + return response + + async def fetch_aggregate_volumes( + self, + accounts: Optional[List[str]] = None, + market_ids: Optional[List[str]] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryAggregateVolumesRequest(accounts=accounts, market_ids=market_ids) + response = await self._execute_call(call=self._stub.AggregateVolumes, request=request) + + return response + + async def fetch_aggregate_market_volume(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryAggregateMarketVolumeRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.AggregateMarketVolume, request=request) + + return response + + async def fetch_aggregate_market_volumes(self, market_ids: Optional[List[str]] = None) -> Dict[str, Any]: + request = exchange_query_pb.QueryAggregateMarketVolumesRequest(market_ids=market_ids) + response = await self._execute_call(call=self._stub.AggregateMarketVolumes, request=request) + + return response + + async def fetch_denom_decimal(self, denom: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryDenomDecimalRequest(denom=denom) + response = await self._execute_call(call=self._stub.DenomDecimal, request=request) + + return response + + async def fetch_denom_decimals(self, denoms: Optional[List[str]] = None) -> Dict[str, Any]: + request = exchange_query_pb.QueryDenomDecimalsRequest(denoms=denoms) + response = await self._execute_call(call=self._stub.DenomDecimals, request=request) + + return response + + async def fetch_spot_markets( + self, + status: Optional[str] = None, + market_ids: Optional[List[str]] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QuerySpotMarketsRequest( + status=status, + market_ids=market_ids, + ) + response = await self._execute_call(call=self._stub.SpotMarkets, request=request) + + return response + + async def fetch_spot_market(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QuerySpotMarketRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.SpotMarket, request=request) + + return response + + async def fetch_full_spot_markets( + self, + status: Optional[str] = None, + market_ids: Optional[List[str]] = None, + with_mid_price_and_tob: Optional[bool] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFullSpotMarketsRequest( + status=status, + market_ids=market_ids, + with_mid_price_and_tob=with_mid_price_and_tob, + ) + response = await self._execute_call(call=self._stub.FullSpotMarkets, request=request) + + return response + + async def fetch_full_spot_market( + self, + market_id: str, + with_mid_price_and_tob: Optional[bool] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFullSpotMarketRequest( + market_id=market_id, + with_mid_price_and_tob=with_mid_price_and_tob, + ) + response = await self._execute_call(call=self._stub.FullSpotMarket, request=request) + + return response + + async def fetch_spot_orderbook( + self, + market_id: str, + order_side: Optional[str] = None, + limit_cumulative_notional: Optional[str] = None, + limit_cumulative_quantity: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + limit = None + if pagination is not None: + limit = pagination.limit + request = exchange_query_pb.QuerySpotOrderbookRequest( + market_id=market_id, + order_side=order_side, + limit=limit, + limit_cumulative_notional=limit_cumulative_notional, + limit_cumulative_quantity=limit_cumulative_quantity, + ) + response = await self._execute_call(call=self._stub.SpotOrderbook, request=request) + + return response + + async def fetch_trader_spot_orders( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTraderSpotOrdersRequest( + market_id=market_id, + subaccount_id=subaccount_id, + ) + response = await self._execute_call(call=self._stub.TraderSpotOrders, request=request) + + return response + + async def fetch_account_address_spot_orders( + self, + market_id: str, + account_address: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryAccountAddressSpotOrdersRequest( + market_id=market_id, + account_address=account_address, + ) + response = await self._execute_call(call=self._stub.AccountAddressSpotOrders, request=request) + + return response + + async def fetch_spot_orders_by_hashes( + self, + market_id: str, + subaccount_id: str, + order_hashes: List[str], + ) -> Dict[str, Any]: + request = exchange_query_pb.QuerySpotOrdersByHashesRequest( + market_id=market_id, + subaccount_id=subaccount_id, + order_hashes=order_hashes, + ) + response = await self._execute_call(call=self._stub.SpotOrdersByHashes, request=request) + + return response + + async def fetch_subaccount_orders( + self, + subaccount_id: str, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountOrdersRequest( + subaccount_id=subaccount_id, + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.SubaccountOrders, request=request) + + return response + + async def fetch_trader_spot_transient_orders( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTraderSpotOrdersRequest( + market_id=market_id, + subaccount_id=subaccount_id, + ) + response = await self._execute_call(call=self._stub.TraderSpotTransientOrders, request=request) + + return response + + async def fetch_spot_mid_price_and_tob( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QuerySpotMidPriceAndTOBRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.SpotMidPriceAndTOB, request=request) + + return response + + async def fetch_derivative_mid_price_and_tob( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryDerivativeMidPriceAndTOBRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.DerivativeMidPriceAndTOB, request=request) + + return response + + async def fetch_derivative_orderbook( + self, + market_id: str, + limit_cumulative_notional: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + limit = None + if pagination is not None: + limit = pagination.limit + request = exchange_query_pb.QueryDerivativeOrderbookRequest( + market_id=market_id, + limit=limit, + limit_cumulative_notional=limit_cumulative_notional, + ) + response = await self._execute_call(call=self._stub.DerivativeOrderbook, request=request) + + return response + + async def fetch_trader_derivative_orders( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTraderDerivativeOrdersRequest( + market_id=market_id, + subaccount_id=subaccount_id, + ) + response = await self._execute_call(call=self._stub.TraderDerivativeOrders, request=request) + + return response + + async def fetch_account_address_derivative_orders( + self, + market_id: str, + account_address: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryAccountAddressDerivativeOrdersRequest( + market_id=market_id, + account_address=account_address, + ) + response = await self._execute_call(call=self._stub.AccountAddressDerivativeOrders, request=request) + + return response + + async def fetch_derivative_orders_by_hashes( + self, + market_id: str, + subaccount_id: str, + order_hashes: List[str], + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryDerivativeOrdersByHashesRequest( + market_id=market_id, + subaccount_id=subaccount_id, + order_hashes=order_hashes, + ) + response = await self._execute_call(call=self._stub.DerivativeOrdersByHashes, request=request) + + return response + + async def fetch_trader_derivative_transient_orders( + self, + market_id: str, + subaccount_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTraderDerivativeOrdersRequest( + market_id=market_id, + subaccount_id=subaccount_id, + ) + response = await self._execute_call(call=self._stub.TraderDerivativeTransientOrders, request=request) + + return response + + async def fetch_derivative_markets( + self, + status: Optional[str] = None, + market_ids: Optional[List[str]] = None, + with_mid_price_and_tob: Optional[bool] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryDerivativeMarketsRequest( + status=status, + market_ids=market_ids, + with_mid_price_and_tob=with_mid_price_and_tob, + ) + response = await self._execute_call(call=self._stub.DerivativeMarkets, request=request) + + return response + + async def fetch_derivative_market( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryDerivativeMarketRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.DerivativeMarket, request=request) + + return response + + async def fetch_derivative_market_address( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryDerivativeMarketAddressRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.DerivativeMarketAddress, request=request) + + return response + + async def fetch_subaccount_trade_nonce(self, subaccount_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountTradeNonceRequest(subaccount_id=subaccount_id) + response = await self._execute_call(call=self._stub.SubaccountTradeNonce, request=request) + + return response + + async def fetch_positions(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryPositionsRequest() + response = await self._execute_call(call=self._stub.Positions, request=request) + + return response + + async def fetch_subaccount_positions(self, subaccount_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountPositionsRequest(subaccount_id=subaccount_id) + response = await self._execute_call(call=self._stub.SubaccountPositions, request=request) + + return response + + async def fetch_subaccount_position_in_market(self, subaccount_id: str, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountPositionInMarketRequest( + subaccount_id=subaccount_id, + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.SubaccountPositionInMarket, request=request) + + return response + + async def fetch_subaccount_effective_position_in_market(self, subaccount_id: str, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountEffectivePositionInMarketRequest( + subaccount_id=subaccount_id, + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.SubaccountEffectivePositionInMarket, request=request) + + return response + + async def fetch_perpetual_market_info(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryPerpetualMarketInfoRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.PerpetualMarketInfo, request=request) + + return response + + async def fetch_expiry_futures_market_info(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryExpiryFuturesMarketInfoRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.ExpiryFuturesMarketInfo, request=request) + + return response + + async def fetch_perpetual_market_funding(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryPerpetualMarketFundingRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.PerpetualMarketFunding, request=request) + + return response + + async def fetch_subaccount_order_metadata(self, subaccount_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QuerySubaccountOrderMetadataRequest(subaccount_id=subaccount_id) + response = await self._execute_call(call=self._stub.SubaccountOrderMetadata, request=request) + + return response + + async def fetch_trade_reward_points( + self, + accounts: Optional[List[str]] = None, + pending_pool_timestamp: Optional[int] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTradeRewardPointsRequest( + accounts=accounts, + pending_pool_timestamp=pending_pool_timestamp, + ) + response = await self._execute_call(call=self._stub.TradeRewardPoints, request=request) + + return response + + async def fetch_pending_trade_reward_points( + self, + accounts: Optional[List[str]] = None, + pending_pool_timestamp: Optional[int] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTradeRewardPointsRequest( + accounts=accounts, + pending_pool_timestamp=pending_pool_timestamp, + ) + response = await self._execute_call(call=self._stub.PendingTradeRewardPoints, request=request) + + return response + + async def fetch_trade_reward_campaign(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryTradeRewardCampaignRequest() + response = await self._execute_call(call=self._stub.TradeRewardCampaign, request=request) + + return response + + async def fetch_fee_discount_account_info( + self, + account: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFeeDiscountAccountInfoRequest(account=account) + response = await self._execute_call(call=self._stub.FeeDiscountAccountInfo, request=request) + + return response + + async def fetch_fee_discount_schedule(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryFeeDiscountScheduleRequest() + response = await self._execute_call(call=self._stub.FeeDiscountSchedule, request=request) + + return response + + async def fetch_balance_mismatches(self, dust_factor: int) -> Dict[str, Any]: + request = exchange_query_pb.QueryBalanceMismatchesRequest(dust_factor=dust_factor) + response = await self._execute_call(call=self._stub.BalanceMismatches, request=request) + + return response + + async def fetch_balance_with_balance_holds(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryBalanceWithBalanceHoldsRequest() + response = await self._execute_call(call=self._stub.BalanceWithBalanceHolds, request=request) + + return response + + async def fetch_fee_discount_tier_statistics(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryFeeDiscountTierStatisticsRequest() + response = await self._execute_call(call=self._stub.FeeDiscountTierStatistics, request=request) + + return response + + async def fetch_mito_vault_infos(self) -> Dict[str, Any]: + request = exchange_query_pb.MitoVaultInfosRequest() + response = await self._execute_call(call=self._stub.MitoVaultInfos, request=request) + + return response + + async def fetch_market_id_from_vault(self, vault_address: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryMarketIDFromVaultRequest(vault_address=vault_address) + response = await self._execute_call(call=self._stub.QueryMarketIDFromVault, request=request) + + return response + + async def fetch_historical_trade_records(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryHistoricalTradeRecordsRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.HistoricalTradeRecords, request=request) + + return response + + async def fetch_is_opted_out_of_rewards(self, account: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryIsOptedOutOfRewardsRequest(account=account) + response = await self._execute_call(call=self._stub.IsOptedOutOfRewards, request=request) + + return response + + async def fetch_opted_out_of_rewards_accounts(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryOptedOutOfRewardsAccountsRequest() + response = await self._execute_call(call=self._stub.OptedOutOfRewardsAccounts, request=request) + + return response + + async def fetch_market_volatility( + self, + market_id: str, + trade_grouping_sec: Optional[int] = None, + max_age: Optional[int] = None, + include_raw_history: Optional[bool] = None, + include_metadata: Optional[bool] = None, + ) -> Dict[str, Any]: + trade_history_options = exchange_query_pb.TradeHistoryOptions() + if trade_grouping_sec is not None: + trade_history_options.trade_grouping_sec = trade_grouping_sec + if max_age is not None: + trade_history_options.max_age = max_age + if include_raw_history is not None: + trade_history_options.include_raw_history = include_raw_history + if include_metadata is not None: + trade_history_options.include_metadata = include_metadata + request = exchange_query_pb.QueryMarketVolatilityRequest( + market_id=market_id, trade_history_options=trade_history_options + ) + response = await self._execute_call(call=self._stub.MarketVolatility, request=request) + + return response + + async def fetch_binary_options_markets(self, status: Optional[str] = None) -> Dict[str, Any]: + request = exchange_query_pb.QueryBinaryMarketsRequest(status=status) + response = await self._execute_call(call=self._stub.BinaryOptionsMarkets, request=request) + + return response + + async def fetch_trader_derivative_conditional_orders( + self, + subaccount_id: Optional[str] = None, + market_id: Optional[str] = None, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryTraderDerivativeConditionalOrdersRequest( + subaccount_id=subaccount_id, + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.TraderDerivativeConditionalOrders, request=request) + + return response + + async def fetch_market_atomic_execution_fee_multiplier( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryMarketAtomicExecutionFeeMultiplierRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.MarketAtomicExecutionFeeMultiplier, request=request) + + return response + + async def fetch_active_stake_grant(self, grantee: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryActiveStakeGrantRequest(grantee=grantee) + response = await self._execute_call(call=self._stub.ActiveStakeGrant, request=request) + + return response + + async def fetch_grant_authorization( + self, + granter: str, + grantee: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryGrantAuthorizationRequest( + granter=granter, + grantee=grantee, + ) + response = await self._execute_call(call=self._stub.GrantAuthorization, request=request) + + return response + + async def fetch_grant_authorizations(self, granter: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryGrantAuthorizationsRequest(granter=granter) + response = await self._execute_call(call=self._stub.GrantAuthorizations, request=request) + + return response + + async def fetch_l3_derivative_orderbook( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFullDerivativeOrderbookRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.L3DerivativeOrderBook, request=request) + + return response + + async def fetch_l3_spot_orderbook( + self, + market_id: str, + ) -> Dict[str, Any]: + request = exchange_query_pb.QueryFullSpotOrderbookRequest( + market_id=market_id, + ) + response = await self._execute_call(call=self._stub.L3SpotOrderBook, request=request) + + return response + + async def _execute_call(self, call: Callable, request) -> Dict[str, Any]: + return await self._assistant.execute_call(call=call, request=request) diff --git a/pyinjective/client/chain/grpc_stream/chain_grpc_chain_stream.py b/pyinjective/client/chain/grpc_stream/chain_grpc_chain_stream.py index 019ecc31..4f86599a 100644 --- a/pyinjective/client/chain/grpc_stream/chain_grpc_chain_stream.py +++ b/pyinjective/client/chain/grpc_stream/chain_grpc_chain_stream.py @@ -4,12 +4,17 @@ from pyinjective.core.network import CookieAssistant from pyinjective.proto.injective.stream.v1beta1 import query_pb2 as chain_stream_pb, query_pb2_grpc as chain_stream_grpc +from pyinjective.proto.injective.stream.v2 import ( + query_pb2 as chain_stream_v2_pb, + query_pb2_grpc as chain_stream_v2_grpc, +) from pyinjective.utils.grpc_api_stream_assistant import GrpcApiStreamAssistant class ChainGrpcChainStream: def __init__(self, channel: Channel, cookie_assistant: CookieAssistant): - self._stub = self._stub = chain_stream_grpc.StreamStub(channel) + self._stub = chain_stream_grpc.StreamStub(channel) + self._stub_v2 = chain_stream_v2_grpc.StreamStub(channel) self._assistant = GrpcApiStreamAssistant(cookie_assistant=cookie_assistant) async def stream( @@ -48,3 +53,40 @@ async def stream( on_end_callback=on_end_callback, on_status_callback=on_status_callback, ) + + async def stream_v2( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + bank_balances_filter: Optional[chain_stream_v2_pb.BankBalancesFilter] = None, + subaccount_deposits_filter: Optional[chain_stream_v2_pb.SubaccountDepositsFilter] = None, + spot_trades_filter: Optional[chain_stream_v2_pb.TradesFilter] = None, + derivative_trades_filter: Optional[chain_stream_v2_pb.TradesFilter] = None, + spot_orders_filter: Optional[chain_stream_v2_pb.OrdersFilter] = None, + derivative_orders_filter: Optional[chain_stream_v2_pb.OrdersFilter] = None, + spot_orderbooks_filter: Optional[chain_stream_v2_pb.OrderbookFilter] = None, + derivative_orderbooks_filter: Optional[chain_stream_v2_pb.OrderbookFilter] = None, + positions_filter: Optional[chain_stream_v2_pb.PositionsFilter] = None, + oracle_price_filter: Optional[chain_stream_v2_pb.OraclePriceFilter] = None, + ): + request = chain_stream_v2_pb.StreamRequest( + bank_balances_filter=bank_balances_filter, + subaccount_deposits_filter=subaccount_deposits_filter, + spot_trades_filter=spot_trades_filter, + derivative_trades_filter=derivative_trades_filter, + spot_orders_filter=spot_orders_filter, + derivative_orders_filter=derivative_orders_filter, + spot_orderbooks_filter=spot_orderbooks_filter, + derivative_orderbooks_filter=derivative_orderbooks_filter, + positions_filter=positions_filter, + oracle_price_filter=oracle_price_filter, + ) + + await self._assistant.listen_stream( + call=self._stub_v2.StreamV2, + request=request, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 08e17021..6b89473a 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -29,6 +29,12 @@ exchange_pb2 as injective_exchange_pb, tx_pb2 as injective_exchange_tx_pb, ) +from pyinjective.proto.injective.exchange.v2 import ( + authz_pb2 as injective_authz_v2_pb, + exchange_pb2 as injective_exchange_v2_pb, + order_pb2 as injective_order_v2_pb, + tx_pb2 as injective_exchange_tx_v2_pb, +) from pyinjective.proto.injective.insurance.v1beta1 import tx_pb2 as injective_insurance_tx_pb from pyinjective.proto.injective.oracle.v1beta1 import ( oracle_pb2 as injective_oracle_pb, @@ -40,65 +46,261 @@ tx_pb2 as injective_permissions_tx_pb, ) from pyinjective.proto.injective.stream.v1beta1 import query_pb2 as chain_stream_query +from pyinjective.proto.injective.stream.v2 import query_pb2 as chain_stream_v2_query from pyinjective.proto.injective.tokenfactory.v1beta1 import tx_pb2 as token_factory_tx_pb from pyinjective.proto.injective.wasmx.v1 import tx_pb2 as wasmx_tx_pb from pyinjective.utils.denom import Denom +# fmt: off REQUEST_TO_RESPONSE_TYPE_MAP = { - "MsgCreateSpotLimitOrder": injective_exchange_tx_pb.MsgCreateSpotLimitOrderResponse, - "MsgCreateSpotMarketOrder": injective_exchange_tx_pb.MsgCreateSpotMarketOrderResponse, - "MsgCreateDerivativeLimitOrder": injective_exchange_tx_pb.MsgCreateDerivativeLimitOrderResponse, - "MsgCreateDerivativeMarketOrder": injective_exchange_tx_pb.MsgCreateDerivativeMarketOrderResponse, - "MsgCancelSpotOrder": injective_exchange_tx_pb.MsgCancelSpotOrderResponse, - "MsgCancelDerivativeOrder": injective_exchange_tx_pb.MsgCancelDerivativeOrderResponse, - "MsgBatchCancelSpotOrders": injective_exchange_tx_pb.MsgBatchCancelSpotOrdersResponse, - "MsgBatchCancelDerivativeOrders": injective_exchange_tx_pb.MsgBatchCancelDerivativeOrdersResponse, - "MsgBatchCreateSpotLimitOrders": injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrdersResponse, - "MsgBatchCreateDerivativeLimitOrders": injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrdersResponse, - "MsgBatchUpdateOrders": injective_exchange_tx_pb.MsgBatchUpdateOrdersResponse, - "MsgDeposit": injective_exchange_tx_pb.MsgDepositResponse, - "MsgWithdraw": injective_exchange_tx_pb.MsgWithdrawResponse, - "MsgSubaccountTransfer": injective_exchange_tx_pb.MsgSubaccountTransferResponse, - "MsgLiquidatePosition": injective_exchange_tx_pb.MsgLiquidatePositionResponse, - "MsgIncreasePositionMargin": injective_exchange_tx_pb.MsgIncreasePositionMarginResponse, - "MsgCreateBinaryOptionsLimitOrder": injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrderResponse, - "MsgCreateBinaryOptionsMarketOrder": injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrderResponse, - "MsgCancelBinaryOptionsOrder": injective_exchange_tx_pb.MsgCancelBinaryOptionsOrderResponse, - "MsgAdminUpdateBinaryOptionsMarket": injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarketResponse, - "MsgInstantBinaryOptionsMarketLaunch": injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunchResponse, + "MsgCreateSpotLimitOrder": + injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrderResponse, + "MsgCreateSpotMarketOrder": + injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrderResponse, + "MsgCreateDerivativeLimitOrder": + injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrderResponse, + "MsgCreateDerivativeMarketOrder": + injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrderResponse, + "MsgCancelSpotOrder": + injective_exchange_tx_v2_pb.MsgCancelSpotOrderResponse, + "MsgCancelDerivativeOrder": + injective_exchange_tx_v2_pb.MsgCancelDerivativeOrderResponse, + "MsgBatchCancelSpotOrders": + injective_exchange_tx_v2_pb.MsgBatchCancelSpotOrdersResponse, + "MsgBatchCancelDerivativeOrders": + injective_exchange_tx_v2_pb.MsgBatchCancelDerivativeOrdersResponse, + "MsgBatchCreateSpotLimitOrders": + injective_exchange_tx_v2_pb.MsgBatchCreateSpotLimitOrdersResponse, + "MsgBatchCreateDerivativeLimitOrders": + injective_exchange_tx_v2_pb.MsgBatchCreateDerivativeLimitOrdersResponse, + "MsgBatchUpdateOrders": + injective_exchange_tx_v2_pb.MsgBatchUpdateOrdersResponse, + "MsgDeposit": + injective_exchange_tx_v2_pb.MsgDepositResponse, + "MsgWithdraw": + injective_exchange_tx_v2_pb.MsgWithdrawResponse, + "MsgSubaccountTransfer": + injective_exchange_tx_v2_pb.MsgSubaccountTransferResponse, + "MsgLiquidatePosition": + injective_exchange_tx_v2_pb.MsgLiquidatePositionResponse, + "MsgIncreasePositionMargin": + injective_exchange_tx_v2_pb.MsgIncreasePositionMarginResponse, + "MsgCreateBinaryOptionsLimitOrder": + injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsLimitOrderResponse, + "MsgCreateBinaryOptionsMarketOrder": + injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrderResponse, + "MsgCancelBinaryOptionsOrder": + injective_exchange_tx_v2_pb.MsgCancelBinaryOptionsOrderResponse, + "MsgAdminUpdateBinaryOptionsMarket": + injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarketResponse, + "MsgInstantBinaryOptionsMarketLaunch": + injective_exchange_tx_v2_pb.MsgInstantBinaryOptionsMarketLaunchResponse, } GRPC_MESSAGE_TYPE_TO_CLASS_MAP = { - "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder": injective_exchange_tx_pb.MsgCreateSpotLimitOrder, - "/injective.exchange.v1beta1.MsgCreateSpotMarketOrder": injective_exchange_tx_pb.MsgCreateSpotMarketOrder, - "/injective.exchange.v1beta1.MsgCreateDerivativeLimitOrder": injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder, - "/injective.exchange.v1beta1.MsgCreateDerivativeMarketOrder": injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder, # noqa: 121 - "/injective.exchange.v1beta1.MsgCancelSpotOrder": injective_exchange_tx_pb.MsgCancelSpotOrder, - "/injective.exchange.v1beta1.MsgCancelDerivativeOrder": injective_exchange_tx_pb.MsgCancelDerivativeOrder, - "/injective.exchange.v1beta1.MsgBatchCancelSpotOrders": injective_exchange_tx_pb.MsgBatchCancelSpotOrders, - "/injective.exchange.v1beta1.MsgBatchCancelDerivativeOrders": injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders, # noqa: 121 - "/injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrders": injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders, - "/injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrders": injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders, # noqa: 121 - "/injective.exchange.v1beta1.MsgBatchUpdateOrders": injective_exchange_tx_pb.MsgBatchUpdateOrders, - "/injective.exchange.v1beta1.MsgDeposit": injective_exchange_tx_pb.MsgDeposit, - "/injective.exchange.v1beta1.MsgWithdraw": injective_exchange_tx_pb.MsgWithdraw, - "/injective.exchange.v1beta1.MsgSubaccountTransfer": injective_exchange_tx_pb.MsgSubaccountTransfer, - "/injective.exchange.v1beta1.MsgLiquidatePosition": injective_exchange_tx_pb.MsgLiquidatePosition, - "/injective.exchange.v1beta1.MsgIncreasePositionMargin": injective_exchange_tx_pb.MsgIncreasePositionMargin, - "/injective.auction.v1beta1.MsgBid": injective_auction_tx_pb.MsgBid, - "/injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrder": injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrder, # noqa: 121 - "/injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrder": injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder, # noqa: 121 - "/injective.exchange.v1beta1.MsgCancelBinaryOptionsOrder": injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder, - "/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket": injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarket, # noqa: 121 - "/injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunch": injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch, # noqa: 121 - "/cosmos.bank.v1beta1.MsgSend": cosmos_bank_tx_pb.MsgSend, - "/cosmos.authz.v1beta1.MsgGrant": cosmos_authz_tx_pb.MsgGrant, - "/cosmos.authz.v1beta1.MsgExec": cosmos_authz_tx_pb.MsgExec, - "/cosmos.authz.v1beta1.MsgRevoke": cosmos_authz_tx_pb.MsgRevoke, - "/injective.oracle.v1beta1.MsgRelayPriceFeedPrice": injective_oracle_tx_pb.MsgRelayPriceFeedPrice, - "/injective.oracle.v1beta1.MsgRelayProviderPrices": injective_oracle_tx_pb.MsgRelayProviderPrices, + "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder": + injective_exchange_tx_pb.MsgCreateSpotLimitOrder, + "/injective.exchange.v1beta1.MsgCreateSpotMarketOrder": + injective_exchange_tx_pb.MsgCreateSpotMarketOrder, + "/injective.exchange.v1beta1.MsgCreateDerivativeLimitOrder": + injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder, + "/injective.exchange.v1beta1.MsgCreateDerivativeMarketOrder": + injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder, + "/injective.exchange.v1beta1.MsgCancelSpotOrder": + injective_exchange_tx_pb.MsgCancelSpotOrder, + "/injective.exchange.v1beta1.MsgCancelDerivativeOrder": + injective_exchange_tx_pb.MsgCancelDerivativeOrder, + "/injective.exchange.v1beta1.MsgBatchCancelSpotOrders": + injective_exchange_tx_pb.MsgBatchCancelSpotOrders, + "/injective.exchange.v1beta1.MsgBatchCancelDerivativeOrders": + injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders, + "/injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrders": + injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders, + "/injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrders": + injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders, # noqa: 121 + "/injective.exchange.v1beta1.MsgBatchUpdateOrders": + injective_exchange_tx_pb.MsgBatchUpdateOrders, + "/injective.exchange.v1beta1.MsgDeposit": + injective_exchange_tx_pb.MsgDeposit, + "/injective.exchange.v1beta1.MsgWithdraw": + injective_exchange_tx_pb.MsgWithdraw, + "/injective.exchange.v1beta1.MsgSubaccountTransfer": + injective_exchange_tx_pb.MsgSubaccountTransfer, + "/injective.exchange.v1beta1.MsgLiquidatePosition": + injective_exchange_tx_pb.MsgLiquidatePosition, + "/injective.exchange.v1beta1.MsgIncreasePositionMargin": + injective_exchange_tx_pb.MsgIncreasePositionMargin, + "/injective.auction.v1beta1.MsgBid": + injective_auction_tx_pb.MsgBid, + "/injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrder": + injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrder, + "/injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrder": + injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder, + "/injective.exchange.v1beta1.MsgCancelBinaryOptionsOrder": + injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder, + "/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket": + injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarket, + "/injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunch": + injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch, + "/cosmos.bank.v1beta1.MsgSend": + cosmos_bank_tx_pb.MsgSend, + "/cosmos.authz.v1beta1.MsgGrant": + cosmos_authz_tx_pb.MsgGrant, + "/cosmos.authz.v1beta1.MsgExec": + cosmos_authz_tx_pb.MsgExec, + "/cosmos.authz.v1beta1.MsgRevoke": + cosmos_authz_tx_pb.MsgRevoke, + "/injective.oracle.v1beta1.MsgRelayPriceFeedPrice": + injective_oracle_tx_pb.MsgRelayPriceFeedPrice, + "/injective.oracle.v1beta1.MsgRelayProviderPrices": + injective_oracle_tx_pb.MsgRelayProviderPrices, + "/injective.exchange.v2.MsgCreateSpotLimitOrder": + injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder, + "/injective.exchange.v2.MsgCreateSpotMarketOrder": + injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder, + "/injective.exchange.v2.MsgCreateDerivativeLimitOrder": + injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder, + "/injective.exchange.v2.MsgCreateDerivativeMarketOrder": + injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder, + "/injective.exchange.v2.MsgCancelSpotOrder": + injective_exchange_tx_v2_pb.MsgCancelSpotOrder, + "/injective.exchange.v2.MsgCancelDerivativeOrder": + injective_exchange_tx_v2_pb.MsgCancelDerivativeOrder, + "/injective.exchange.v2.MsgBatchCancelSpotOrders": + injective_exchange_tx_v2_pb.MsgBatchCancelSpotOrders, + "/injective.exchange.v2.MsgBatchCancelDerivativeOrders": + injective_exchange_tx_v2_pb.MsgBatchCancelDerivativeOrders, + "/injective.exchange.v2.MsgBatchCreateSpotLimitOrders": + injective_exchange_tx_v2_pb.MsgBatchCreateSpotLimitOrders, + "/injective.exchange.v2.MsgBatchCreateDerivativeLimitOrders": + injective_exchange_tx_v2_pb.MsgBatchCreateDerivativeLimitOrders, + "/injective.exchange.v2.MsgBatchUpdateOrders": + injective_exchange_tx_v2_pb.MsgBatchUpdateOrders, + "/injective.exchange.v2.MsgDeposit": + injective_exchange_tx_v2_pb.MsgDeposit, + "/injective.exchange.v2.MsgWithdraw": + injective_exchange_tx_v2_pb.MsgWithdraw, + "/injective.exchange.v2.MsgSubaccountTransfer": + injective_exchange_tx_v2_pb.MsgSubaccountTransfer, + "/injective.exchange.v2.MsgLiquidatePosition": + injective_exchange_tx_v2_pb.MsgLiquidatePosition, + "/injective.exchange.v2.MsgIncreasePositionMargin": + injective_exchange_tx_v2_pb.MsgIncreasePositionMargin, + "/injective.exchange.v2.MsgCreateBinaryOptionsLimitOrder": + injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsLimitOrder, + "/injective.exchange.v2.MsgCreateBinaryOptionsMarketOrder": + injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder, + "/injective.exchange.v2.MsgCancelBinaryOptionsOrder": + injective_exchange_tx_v2_pb.MsgCancelBinaryOptionsOrder, + "/injective.exchange.v2.MsgAdminUpdateBinaryOptionsMarket": + injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket, + "/injective.exchange.v2.MsgInstantBinaryOptionsMarketLaunch": + injective_exchange_tx_v2_pb.MsgInstantBinaryOptionsMarketLaunch, +} + +GRPC_RESPONSE_TYPE_TO_CLASS_MAP = { + "/injective.exchange.v1beta1.MsgCreateSpotLimitOrderResponse": + injective_exchange_tx_pb.MsgCreateSpotLimitOrderResponse, + "/injective.exchange.v1beta1.MsgCreateSpotMarketOrderResponse": + injective_exchange_tx_pb.MsgCreateSpotMarketOrderResponse, + "/injective.exchange.v1beta1.MsgCreateDerivativeLimitOrderResponse": + injective_exchange_tx_pb.MsgCreateDerivativeLimitOrderResponse, + "/injective.exchange.v1beta1.MsgCreateDerivativeMarketOrderResponse": + injective_exchange_tx_pb.MsgCreateDerivativeMarketOrderResponse, + "/injective.exchange.v1beta1.MsgCancelSpotOrderResponse": + injective_exchange_tx_pb.MsgCancelSpotOrderResponse, + "/injective.exchange.v1beta1.MsgCancelDerivativeOrderResponse": + injective_exchange_tx_pb.MsgCancelDerivativeOrderResponse, + "/injective.exchange.v1beta1.MsgBatchCancelSpotOrdersResponse": + injective_exchange_tx_pb.MsgBatchCancelSpotOrdersResponse, + "/injective.exchange.v1beta1.MsgBatchCancelDerivativeOrdersResponse": + injective_exchange_tx_pb.MsgBatchCancelDerivativeOrdersResponse, + "/injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrdersResponse": + injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrdersResponse, + "/injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrdersResponse": + injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrdersResponse, + "/injective.exchange.v1beta1.MsgBatchUpdateOrdersResponse": + injective_exchange_tx_pb.MsgBatchUpdateOrdersResponse, + "/injective.exchange.v1beta1.MsgDepositResponse": + injective_exchange_tx_pb.MsgDepositResponse, + "/injective.exchange.v1beta1.MsgWithdrawResponse": + injective_exchange_tx_pb.MsgWithdrawResponse, + "/injective.exchange.v1beta1.MsgSubaccountTransferResponse": + injective_exchange_tx_pb.MsgSubaccountTransferResponse, + "/injective.exchange.v1beta1.MsgLiquidatePositionResponse": + injective_exchange_tx_pb.MsgLiquidatePositionResponse, + "/injective.exchange.v1beta1.MsgIncreasePositionMarginResponse": + injective_exchange_tx_pb.MsgIncreasePositionMarginResponse, + "/injective.auction.v1beta1.MsgBidResponse": + injective_auction_tx_pb.MsgBidResponse, + "/injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrderResponse": + injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrderResponse, + "/injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrderResponse": + injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrderResponse, + "/injective.exchange.v1beta1.MsgCancelBinaryOptionsOrderResponse": + injective_exchange_tx_pb.MsgCancelBinaryOptionsOrderResponse, + "/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarketResponse": + injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarketResponse, + "/injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunchResponse": + injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunchResponse, + "/cosmos.bank.v1beta1.MsgSendResponse": + cosmos_bank_tx_pb.MsgSendResponse, + "/cosmos.authz.v1beta1.MsgGrantResponse": + cosmos_authz_tx_pb.MsgGrantResponse, + "/cosmos.authz.v1beta1.MsgExecResponse": + cosmos_authz_tx_pb.MsgExecResponse, + "/cosmos.authz.v1beta1.MsgRevokeResponse": + cosmos_authz_tx_pb.MsgRevokeResponse, + "/injective.oracle.v1beta1.MsgRelayPriceFeedPriceResponse": + injective_oracle_tx_pb.MsgRelayPriceFeedPriceResponse, + "/injective.oracle.v1beta1.MsgRelayProviderPricesResponse": + injective_oracle_tx_pb.MsgRelayProviderPrices, + "/injective.exchange.v2.MsgCreateSpotLimitOrderResponse": + injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrderResponse, + "/injective.exchange.v2.MsgCreateSpotMarketOrderResponse": + injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrderResponse, + "/injective.exchange.v2.MsgCreateDerivativeLimitOrderResponse": + injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrderResponse, + "/injective.exchange.v2.MsgCreateDerivativeMarketOrderResponse": + injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrderResponse, + "/injective.exchange.v2.MsgCancelSpotOrderResponse": + injective_exchange_tx_v2_pb.MsgCancelSpotOrderResponse, + "/injective.exchange.v2.MsgCancelDerivativeOrderResponse": + injective_exchange_tx_v2_pb.MsgCancelDerivativeOrderResponse, + "/injective.exchange.v2.MsgBatchCancelSpotOrdersResponse": + injective_exchange_tx_v2_pb.MsgBatchCancelSpotOrdersResponse, + "/injective.exchange.v2.MsgBatchCancelDerivativeOrdersResponse": + injective_exchange_tx_v2_pb.MsgBatchCancelDerivativeOrdersResponse, + "/injective.exchange.v2.MsgBatchCreateSpotLimitOrdersResponse": + injective_exchange_tx_v2_pb.MsgBatchCreateSpotLimitOrdersResponse, + "/injective.exchange.v2.MsgBatchCreateDerivativeLimitOrdersResponse": + injective_exchange_tx_v2_pb.MsgBatchCreateDerivativeLimitOrdersResponse, + "/injective.exchange.v2.MsgBatchUpdateOrdersResponse": + injective_exchange_tx_v2_pb.MsgBatchUpdateOrdersResponse, + "/injective.exchange.v2.MsgDepositResponse": + injective_exchange_tx_v2_pb.MsgDepositResponse, + "/injective.exchange.v2.MsgWithdrawResponse": + injective_exchange_tx_v2_pb.MsgWithdrawResponse, + "/injective.exchange.v2.MsgSubaccountTransferResponse": + injective_exchange_tx_v2_pb.MsgSubaccountTransferResponse, + "/injective.exchange.v2.MsgLiquidatePositionResponse": + injective_exchange_tx_v2_pb.MsgLiquidatePositionResponse, + "/injective.exchange.v2.MsgIncreasePositionMarginResponse": + injective_exchange_tx_v2_pb.MsgIncreasePositionMarginResponse, + "/injective.exchange.v2.MsgCreateBinaryOptionsLimitOrderResponse": + injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsLimitOrderResponse, + "/injective.exchange.v2.MsgCreateBinaryOptionsMarketOrderResponse": + injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrderResponse, + "/injective.exchange.v2.MsgCancelBinaryOptionsOrderResponse": + injective_exchange_tx_v2_pb.MsgCancelBinaryOptionsOrderResponse, + "/injective.exchange.v2.MsgAdminUpdateBinaryOptionsMarketResponse": + injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarketResponse, + "/injective.exchange.v2.MsgInstantBinaryOptionsMarketLaunchResponse": + injective_exchange_tx_v2_pb.MsgInstantBinaryOptionsMarketLaunchResponse, } +# fmt: on + class Composer: DEFAULT_PERMISSIONS_EVERYONE_ROLE = "EVERYONE" @@ -142,13 +344,6 @@ def __init__( self._ofac_checker = OfacChecker() - def Coin(self, amount: int, denom: str): - """ - This method is deprecated and will be removed soon. Please use `coin` instead - """ - warn("This method is deprecated. Use coin instead", DeprecationWarning, stacklevel=2) - return base_coin_pb.Coin(amount=str(amount), denom=denom) - def coin(self, amount: int, denom: str) -> base_coin_pb.Coin: """ This method create an instance of Coin gRPC type, considering the amount is already expressed in chain format @@ -164,17 +359,21 @@ def create_coin_amount(self, amount: Decimal, token_name: str) -> base_coin_pb.C chain_amount = token.chain_formatted_value(human_readable_value=amount) return self.coin(amount=int(chain_amount), denom=token.denom) - def OrderData( - self, market_id: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, **kwargs - ): + def order_data( + self, + market_id: str, + subaccount_id: str, + order_hash: Optional[str] = None, + cid: Optional[str] = None, + is_conditional: Optional[bool] = False, + is_buy: Optional[bool] = False, + is_market_order: Optional[bool] = False, + ) -> injective_exchange_tx_pb.OrderData: """ - This method is deprecated and will be removed soon. Please use `order_data` instead + This method is deprecated and will be removed soon. Please use `create_order_data_v2` instead """ - warn("This method is deprecated. Use order_data instead", DeprecationWarning, stacklevel=2) + warn("This method is deprecated. Use create_order_data_v2 instead", DeprecationWarning, stacklevel=2) - is_conditional = kwargs.get("is_conditional", False) - is_buy = kwargs.get("order_direction", "buy") == "buy" - is_market_order = kwargs.get("order_type", "limit") == "market" order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) return injective_exchange_tx_pb.OrderData( @@ -185,19 +384,41 @@ def OrderData( cid=cid, ) - def order_data( + def order_data_without_mask( self, market_id: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, - is_conditional: Optional[bool] = False, - is_buy: Optional[bool] = False, - is_market_order: Optional[bool] = False, ) -> injective_exchange_tx_pb.OrderData: - order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) + """ + This method is deprecated and will be removed soon. Please use `create_order_data_without_mask_v2` instead + """ + warn( + "This method is deprecated. Use create_order_data_without_mask_v2 instead", DeprecationWarning, stacklevel=2 + ) return injective_exchange_tx_pb.OrderData( + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + order_mask=1, + cid=cid, + ) + + def create_order_data_v2( + self, + market_id: str, + subaccount_id: str, + is_buy: bool, + is_market_order: bool, + is_conditional: bool, + order_hash: Optional[str] = None, + cid: Optional[str] = None, + ) -> injective_exchange_tx_v2_pb.OrderData: + order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) + + return injective_exchange_tx_v2_pb.OrderData( market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash, @@ -205,14 +426,14 @@ def order_data( cid=cid, ) - def order_data_without_mask( + def create_order_data_without_mask_v2( self, market_id: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, - ) -> injective_exchange_tx_pb.OrderData: - return injective_exchange_tx_pb.OrderData( + ) -> injective_exchange_tx_v2_pb.OrderData: + return injective_exchange_tx_v2_pb.OrderData( market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash, @@ -220,54 +441,46 @@ def order_data_without_mask( cid=cid, ) - def SpotOrder( + def spot_order( self, market_id: str, subaccount_id: str, fee_recipient: str, - price: float, - quantity: float, + price: Decimal, + quantity: Decimal, + order_type: str, cid: Optional[str] = None, - **kwargs, - ): + trigger_price: Optional[Decimal] = None, + ) -> injective_exchange_pb.SpotOrder: """ - This method is deprecated and will be removed soon. Please use `spot_order` instead + This method is deprecated and will be removed soon. Please use `create_spot_order_v2` instead """ - warn("This method is deprecated. Use spot_order instead", DeprecationWarning, stacklevel=2) + warn("This method is deprecated. Use create_spot_order_v2 instead", DeprecationWarning, stacklevel=2) market = self.spot_markets[market_id] - # prepare values - quantity = market.quantity_to_chain_format(human_readable_value=Decimal(str(quantity))) - price = market.price_to_chain_format(human_readable_value=Decimal(str(price))) - trigger_price = market.price_to_chain_format(human_readable_value=Decimal(0)) - - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.BUY - - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.SELL + chain_quantity = f"{market.quantity_to_chain_format(human_readable_value=quantity).normalize():f}" + chain_price = f"{market.price_to_chain_format(human_readable_value=price).normalize():f}" - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.BUY_PO + trigger_price = trigger_price or Decimal(0) + chain_trigger_price = f"{market.price_to_chain_format(human_readable_value=trigger_price).normalize():f}" - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.SELL_PO + chain_order_type = injective_exchange_pb.OrderType.Value(order_type) return injective_exchange_pb.SpotOrder( market_id=market_id, order_info=injective_exchange_pb.OrderInfo( subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=str(int(price)), - quantity=str(int(quantity)), + price=chain_price, + quantity=chain_quantity, cid=cid, ), - order_type=order_type, - trigger_price=str(int(trigger_price)), + order_type=chain_order_type, + trigger_price=chain_trigger_price, ) - def spot_order( + def create_spot_order_v2( self, market_id: str, subaccount_id: str, @@ -277,20 +490,16 @@ def spot_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - ) -> injective_exchange_pb.SpotOrder: - market = self.spot_markets[market_id] - - chain_quantity = f"{market.quantity_to_chain_format(human_readable_value=quantity).normalize():f}" - chain_price = f"{market.price_to_chain_format(human_readable_value=price).normalize():f}" - + ) -> injective_order_v2_pb.SpotOrder: trigger_price = trigger_price or Decimal(0) - chain_trigger_price = f"{market.price_to_chain_format(human_readable_value=trigger_price).normalize():f}" - - chain_order_type = injective_exchange_pb.OrderType.Value(order_type) + chain_order_type = injective_order_v2_pb.OrderType.Value(order_type) + chain_quantity = f"{Token.convert_value_to_extended_decimal_format(value=quantity).normalize():f}" + chain_price = f"{Token.convert_value_to_extended_decimal_format(value=price).normalize():f}" + chain_trigger_price = f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}" - return injective_exchange_pb.SpotOrder( + return injective_order_v2_pb.SpotOrder( market_id=market_id, - order_info=injective_exchange_pb.OrderInfo( + order_info=injective_order_v2_pb.OrderInfo( subaccount_id=subaccount_id, fee_recipient=fee_recipient, price=chain_price, @@ -311,75 +520,6 @@ def calculate_margin( return margin - def DerivativeOrder( - self, - market_id: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - trigger_price: float = 0, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `derivative_order` instead - """ - warn("This method is deprecated. Use derivative_order instead", DeprecationWarning, stacklevel=2) - market = self.derivative_markets[market_id] - - if kwargs.get("is_reduce_only", False): - margin = 0 - else: - margin = market.calculate_margin_in_chain_format( - human_readable_quantity=Decimal(str(quantity)), - human_readable_price=Decimal(str(price)), - leverage=Decimal(str(kwargs["leverage"])), - ) - - # prepare values - quantity = market.quantity_to_chain_format(human_readable_value=Decimal(str(quantity))) - price = market.price_to_chain_format(human_readable_value=Decimal(str(price))) - trigger_price = market.price_to_chain_format(human_readable_value=Decimal(str(trigger_price))) - - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.BUY - - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.SELL - - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.BUY_PO - - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.SELL_PO - - elif kwargs.get("stop_buy"): - order_type = injective_exchange_pb.OrderType.STOP_BUY - - elif kwargs.get("stop_sell"): - order_type = injective_exchange_pb.OrderType.STOP_SEll - - elif kwargs.get("take_buy"): - order_type = injective_exchange_pb.OrderType.TAKE_BUY - - elif kwargs.get("take_sell"): - order_type = injective_exchange_pb.OrderType.TAKE_SELL - - return injective_exchange_pb.DerivativeOrder( - market_id=market_id, - order_info=injective_exchange_pb.OrderInfo( - subaccount_id=subaccount_id, - fee_recipient=fee_recipient, - price=str(int(price)), - quantity=str(int(quantity)), - cid=cid, - ), - margin=str(int(margin)), - order_type=order_type, - trigger_price=str(int(trigger_price)), - ) - def derivative_order( self, market_id: str, @@ -392,6 +532,11 @@ def derivative_order( cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.DerivativeOrder: + """ + This method is deprecated and will be removed soon. Please use `create_derivative_order_v2` instead + """ + warn("This method is deprecated. Use create_derivative_order_v2 instead", DeprecationWarning, stacklevel=2) + market = self.derivative_markets[market_id] chain_quantity = market.quantity_to_chain_format(human_readable_value=quantity) @@ -413,6 +558,32 @@ def derivative_order( chain_trigger_price=chain_trigger_price, ) + def create_derivative_order_v2( + self, + market_id: str, + subaccount_id: str, + fee_recipient: str, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + ) -> injective_order_v2_pb.DerivativeOrder: + trigger_price = trigger_price or Decimal(0) + + return self._basic_derivative_order_v2( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=margin, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + def binary_options_order( self, market_id: str, @@ -426,6 +597,11 @@ def binary_options_order( trigger_price: Optional[Decimal] = None, denom: Optional[Denom] = None, ) -> injective_exchange_pb.DerivativeOrder: + """ + This method is deprecated and will be removed soon. Please use `create_binary_options_order_v2` instead + """ + warn("This method is deprecated. Use create_binary_options_order_v2 instead", DeprecationWarning, stacklevel=2) + market = self.binary_option_markets[market_id] chain_quantity = market.quantity_to_chain_format(human_readable_value=quantity, special_denom=denom) @@ -447,13 +623,39 @@ def binary_options_order( chain_trigger_price=chain_trigger_price, ) - def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective_exchange_pb.GrantAuthorization: + def create_binary_options_order_v2( + self, + market_id: str, + subaccount_id: str, + fee_recipient: str, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + ) -> injective_order_v2_pb.DerivativeOrder: + trigger_price = trigger_price or Decimal(0) + + return self._basic_derivative_order_v2( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=margin, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + + def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective_exchange_v2_pb.GrantAuthorization: chain_formatted_amount = int(amount * Decimal(f"1e{INJ_DECIMALS}")) - return injective_exchange_pb.GrantAuthorization(grantee=grantee, amount=str(chain_formatted_amount)) + return injective_exchange_v2_pb.GrantAuthorization(grantee=grantee, amount=str(chain_formatted_amount)) # region Auction module def MsgBid(self, sender: str, bid_amount: float, round: float): - be_amount = Decimal(str(bid_amount)) * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + be_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(bid_amount))) return injective_auction_tx_pb.MsgBid( sender=sender, @@ -502,6 +704,11 @@ def msg_execute_contract_compat(self, sender: str, contract: str, msg: str, fund # region Bank module def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str): + """ + This method is deprecated and will be removed soon. Please use `msg_send` instead + """ + warn("This method is deprecated. Use msg_send instead", DeprecationWarning, stacklevel=2) + coin = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) return cosmos_bank_tx_pb.MsgSend( @@ -510,15 +717,27 @@ def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str) amount=[coin], ) + def msg_send(self, from_address: str, to_address: str, amount: int, denom: str): + coin = self.coin(amount=int(amount), denom=denom) + + return cosmos_bank_tx_pb.MsgSend( + from_address=from_address, + to_address=to_address, + amount=[coin], + ) + # endregion # region Chain Exchange module - def MsgDeposit(self, sender: str, subaccount_id: str, amount: float, denom: str): + def msg_deposit( + self, sender: str, subaccount_id: str, amount: Decimal, denom: str + ) -> injective_exchange_tx_pb.MsgDeposit: """ - This method is deprecated and will be removed soon. Please use `msg_deposit` instead + This method is deprecated and will be removed soon. Please use `msg_deposit_v2` instead """ - warn("This method is deprecated. Use msg_deposit instead", DeprecationWarning, stacklevel=2) - coin = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) + warn("This method is deprecated. Use msg_deposit_v2 instead", DeprecationWarning, stacklevel=2) + + coin = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgDeposit( sender=sender, @@ -526,21 +745,26 @@ def MsgDeposit(self, sender: str, subaccount_id: str, amount: float, denom: str) amount=coin, ) - def msg_deposit(self, sender: str, subaccount_id: str, amount: Decimal, denom: str): - coin = self.create_coin_amount(amount=amount, token_name=denom) + def msg_deposit_v2( + self, sender: str, subaccount_id: str, amount: int, denom: str + ) -> injective_exchange_tx_v2_pb.MsgDeposit: + coin = self.coin(amount=int(amount), denom=denom) - return injective_exchange_tx_pb.MsgDeposit( + return injective_exchange_tx_v2_pb.MsgDeposit( sender=sender, subaccount_id=subaccount_id, amount=coin, ) - def MsgWithdraw(self, sender: str, subaccount_id: str, amount: float, denom: str): + def msg_withdraw( + self, sender: str, subaccount_id: str, amount: Decimal, denom: str + ) -> injective_exchange_tx_pb.MsgWithdraw: """ - This method is deprecated and will be removed soon. Please use `msg_withdraw` instead + This method is deprecated and will be removed soon. Please use `msg_withdraw_v2` instead """ - warn("This method is deprecated. Use msg_withdraw instead", DeprecationWarning, stacklevel=2) - be_amount = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) + warn("This method is deprecated. Use msg_withdraw_v2 instead", DeprecationWarning, stacklevel=2) + + be_amount = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgWithdraw( sender=sender, @@ -548,13 +772,19 @@ def MsgWithdraw(self, sender: str, subaccount_id: str, amount: float, denom: str amount=be_amount, ) - def msg_withdraw(self, sender: str, subaccount_id: str, amount: Decimal, denom: str): - be_amount = self.create_coin_amount(amount=amount, token_name=denom) + def msg_withdraw_v2( + self, + sender: str, + subaccount_id: str, + amount: int, + denom: str, + ) -> injective_exchange_tx_v2_pb.MsgWithdraw: + coin = self.coin(amount=int(amount), denom=denom) - return injective_exchange_tx_pb.MsgWithdraw( + return injective_exchange_tx_v2_pb.MsgWithdraw( sender=sender, subaccount_id=subaccount_id, - amount=be_amount, + amount=coin, ) def msg_instant_spot_market_launch( @@ -566,7 +796,16 @@ def msg_instant_spot_market_launch( min_price_tick_size: Decimal, min_quantity_tick_size: Decimal, min_notional: Decimal, + base_decimals: int, + quote_decimals: int, ) -> injective_exchange_tx_pb.MsgInstantSpotMarketLaunch: + """ + This method is deprecated and will be removed soon. Please use `msg_instant_spot_market_launch_v2` instead + """ + warn( + "This method is deprecated. Use msg_instant_spot_market_launch_v2 instead", DeprecationWarning, stacklevel=2 + ) + base_token = self.tokens[base_denom] quote_token = self.tokens[quote_denom] @@ -588,6 +827,40 @@ def msg_instant_spot_market_launch( min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", min_notional=f"{chain_min_notional.normalize():f}", + base_decimals=base_decimals, + quote_decimals=quote_decimals, + ) + + def msg_instant_spot_market_launch_v2( + self, + sender: str, + ticker: str, + base_denom: str, + quote_denom: str, + min_price_tick_size: Decimal, + min_quantity_tick_size: Decimal, + min_notional: Decimal, + base_decimals: int, + quote_decimals: int, + ) -> injective_exchange_tx_v2_pb.MsgInstantSpotMarketLaunch: + chain_min_price_tick_size = ( + f"{Token.convert_value_to_extended_decimal_format(value=min_price_tick_size).normalize():f}" + ) + chain_min_quantity_tick_size = ( + f"{Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size).normalize():f}" + ) + chain_min_notional = f"{Token.convert_value_to_extended_decimal_format(value=min_notional).normalize():f}" + + return injective_exchange_tx_v2_pb.MsgInstantSpotMarketLaunch( + sender=sender, + ticker=ticker, + base_denom=base_denom, + quote_denom=quote_denom, + min_price_tick_size=chain_min_price_tick_size, + min_quantity_tick_size=chain_min_quantity_tick_size, + min_notional=chain_min_notional, + base_decimals=base_decimals, + quote_decimals=quote_decimals, ) def msg_instant_perpetual_market_launch( @@ -607,6 +880,15 @@ def msg_instant_perpetual_market_launch( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_pb.MsgInstantPerpetualMarketLaunch: + """ + This method is deprecated and will be removed soon. Please use `msg_instant_perpetual_market_launch_v2` instead + """ + warn( + "This method is deprecated. Use msg_instant_perpetual_market_launch_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + quote_token = self.tokens[quote_denom] chain_min_price_tick_size = quote_token.chain_formatted_value(min_price_tick_size) * Decimal( @@ -638,6 +920,48 @@ def msg_instant_perpetual_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) + def msg_instant_perpetual_market_launch_v2( + self, + sender: str, + ticker: str, + quote_denom: str, + oracle_base: str, + oracle_quote: str, + oracle_scale_factor: int, + oracle_type: str, + maker_fee_rate: Decimal, + taker_fee_rate: Decimal, + initial_margin_ratio: Decimal, + maintenance_margin_ratio: Decimal, + min_price_tick_size: Decimal, + min_quantity_tick_size: Decimal, + min_notional: Decimal, + ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + chain_maker_fee_rate = Token.convert_value_to_extended_decimal_format(value=maker_fee_rate) + chain_taker_fee_rate = Token.convert_value_to_extended_decimal_format(value=taker_fee_rate) + chain_initial_margin_ratio = Token.convert_value_to_extended_decimal_format(value=initial_margin_ratio) + chain_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format(value=maintenance_margin_ratio) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + + return injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch( + sender=sender, + ticker=ticker, + quote_denom=quote_denom, + oracle_base=oracle_base, + oracle_quote=oracle_quote, + oracle_scale_factor=oracle_scale_factor, + oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), + maker_fee_rate=f"{chain_maker_fee_rate.normalize():f}", + taker_fee_rate=f"{chain_taker_fee_rate.normalize():f}", + initial_margin_ratio=f"{chain_initial_margin_ratio.normalize():f}", + maintenance_margin_ratio=f"{chain_maintenance_margin_ratio.normalize():f}", + min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", + min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", + min_notional=f"{chain_min_notional.normalize():f}", + ) + def msg_instant_expiry_futures_market_launch( self, sender: str, @@ -656,6 +980,16 @@ def msg_instant_expiry_futures_market_launch( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_pb.MsgInstantPerpetualMarketLaunch: + """ + This method is deprecated and will be removed soon. + Please use `msg_instant_expiry_futures_market_launch_v2` instead + """ + warn( + "This method is deprecated. Use msg_instant_expiry_futures_market_launch_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + quote_token = self.tokens[quote_denom] chain_min_price_tick_size = quote_token.chain_formatted_value(min_price_tick_size) * Decimal( @@ -688,34 +1022,66 @@ def msg_instant_expiry_futures_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) - def MsgCreateSpotLimitOrder( + def msg_instant_expiry_futures_market_launch_v2( self, - market_id: str, sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): + ticker: str, + quote_denom: str, + oracle_base: str, + oracle_quote: str, + oracle_scale_factor: int, + oracle_type: str, + expiry: int, + maker_fee_rate: Decimal, + taker_fee_rate: Decimal, + initial_margin_ratio: Decimal, + maintenance_margin_ratio: Decimal, + min_price_tick_size: Decimal, + min_quantity_tick_size: Decimal, + min_notional: Decimal, + ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + chain_maker_fee_rate = Token.convert_value_to_extended_decimal_format(value=maker_fee_rate) + chain_taker_fee_rate = Token.convert_value_to_extended_decimal_format(value=taker_fee_rate) + chain_initial_margin_ratio = Token.convert_value_to_extended_decimal_format(value=initial_margin_ratio) + chain_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format(value=maintenance_margin_ratio) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + + return injective_exchange_tx_v2_pb.MsgInstantExpiryFuturesMarketLaunch( + sender=sender, + ticker=ticker, + quote_denom=quote_denom, + oracle_base=oracle_base, + oracle_quote=oracle_quote, + oracle_scale_factor=oracle_scale_factor, + oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), + expiry=expiry, + maker_fee_rate=f"{chain_maker_fee_rate.normalize():f}", + taker_fee_rate=f"{chain_taker_fee_rate.normalize():f}", + initial_margin_ratio=f"{chain_initial_margin_ratio.normalize():f}", + maintenance_margin_ratio=f"{chain_maintenance_margin_ratio.normalize():f}", + min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", + min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", + min_notional=f"{chain_min_notional.normalize():f}", + ) + + def msg_create_spot_limit_order( + self, + market_id: str, + sender: str, + subaccount_id: str, + fee_recipient: str, + price: Decimal, + quantity: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + ) -> injective_exchange_tx_pb.MsgCreateSpotLimitOrder: """ - This method is deprecated and will be removed soon. Please use `msg_create_spot_limit_order` instead + This method is deprecated and will be removed soon. Please use `msg_create_spot_limit_order_v2` instead """ - warn("This method is deprecated. Use msg_create_spot_limit_order instead", DeprecationWarning, stacklevel=2) - - order_type_name = "BUY" - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type_name = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY) - - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type_name = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL) - - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type_name = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY_PO) - - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type_name = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL_PO) + warn("This method is deprecated. Use msg_create_spot_limit_order_v2 instead", DeprecationWarning, stacklevel=2) return injective_exchange_tx_pb.MsgCreateSpotLimitOrder( sender=sender, @@ -723,14 +1089,15 @@ def MsgCreateSpotLimitOrder( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=Decimal(str(price)), - quantity=Decimal(str(quantity)), - order_type=order_type_name, + price=price, + quantity=quantity, + order_type=order_type, cid=cid, + trigger_price=trigger_price, ), ) - def msg_create_spot_limit_order( + def msg_create_spot_limit_order_v2( self, market_id: str, sender: str, @@ -741,10 +1108,10 @@ def msg_create_spot_limit_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - ) -> injective_exchange_tx_pb.MsgCreateSpotLimitOrder: - return injective_exchange_tx_pb.MsgCreateSpotLimitOrder( + ) -> injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder( sender=sender, - order=self.spot_order( + order=self.create_spot_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -756,41 +1123,41 @@ def msg_create_spot_limit_order( ), ) - def MsgBatchCreateSpotLimitOrders(self, sender: str, orders: List): + def msg_batch_create_spot_limit_orders( + self, sender: str, orders: List[injective_exchange_pb.SpotOrder] + ) -> injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders: """ - This method is deprecated and will be removed soon. Please use `msg_batch_create_spot_limit_orders` instead + This method is deprecated and will be removed soon. Please use `msg_batch_create_spot_limit_orders_v2` instead """ warn( - "This method is deprecated. Use msg_batch_create_spot_limit_orders instead", + "This method is deprecated. Use msg_batch_create_spot_limit_orders_v2 instead", DeprecationWarning, stacklevel=2, ) - return injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders(sender=sender, orders=orders) - def msg_batch_create_spot_limit_orders( - self, sender: str, orders: List[injective_exchange_pb.SpotOrder] - ) -> injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders: return injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders(sender=sender, orders=orders) - def MsgCreateSpotMarketOrder( + def msg_batch_create_spot_limit_orders_v2( + self, sender: str, orders: List[injective_order_v2_pb.SpotOrder] + ) -> injective_exchange_tx_v2_pb.MsgBatchCreateSpotLimitOrders: + return injective_exchange_tx_v2_pb.MsgBatchCreateSpotLimitOrders(sender=sender, orders=orders) + + def msg_create_spot_market_order( self, market_id: str, sender: str, subaccount_id: str, fee_recipient: str, - price: float, - quantity: float, - is_buy: bool, + price: Decimal, + quantity: Decimal, + order_type: str, cid: Optional[str] = None, - ): + trigger_price: Optional[Decimal] = None, + ) -> injective_exchange_tx_pb.MsgCreateSpotMarketOrder: """ - This method is deprecated and will be removed soon. Please use `msg_create_spot_market_order` instead + This method is deprecated and will be removed soon. Please use `msg_create_spot_market_order_v2` instead """ - warn("This method is deprecated. Use msg_create_spot_market_order instead", DeprecationWarning, stacklevel=2) - - order_type_name = "BUY" - if not is_buy: - order_type_name = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL) + warn("This method is deprecated. Use msg_create_spot_market_order_v2 instead", DeprecationWarning, stacklevel=2) return injective_exchange_tx_pb.MsgCreateSpotMarketOrder( sender=sender, @@ -798,14 +1165,15 @@ def MsgCreateSpotMarketOrder( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=Decimal(str(price)), - quantity=Decimal(str(quantity)), - order_type=order_type_name, + price=price, + quantity=quantity, + order_type=order_type, cid=cid, + trigger_price=trigger_price, ), ) - def msg_create_spot_market_order( + def msg_create_spot_market_order_v2( self, market_id: str, sender: str, @@ -816,10 +1184,10 @@ def msg_create_spot_market_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - ) -> injective_exchange_tx_pb.MsgCreateSpotMarketOrder: - return injective_exchange_tx_pb.MsgCreateSpotMarketOrder( + ) -> injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder( sender=sender, - order=self.spot_order( + order=self.create_spot_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -831,18 +1199,19 @@ def msg_create_spot_market_order( ), ) - def MsgCancelSpotOrder( + def msg_cancel_spot_order( self, market_id: str, sender: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, - ): + ) -> injective_exchange_tx_pb.MsgCancelSpotOrder: """ - This method is deprecated and will be removed soon. Please use `msg_cancel_spot_order` instead + This method is deprecated and will be removed soon. Please use `msg_cancel_spot_order_v2` instead """ - warn("This method is deprecated. Use msg_cancel_spot_order instead", DeprecationWarning, stacklevel=2) + warn("This method is deprecated. Use msg_cancel_spot_order_v2 instead", DeprecationWarning, stacklevel=2) + return injective_exchange_tx_pb.MsgCancelSpotOrder( sender=sender, market_id=market_id, @@ -851,15 +1220,15 @@ def MsgCancelSpotOrder( cid=cid, ) - def msg_cancel_spot_order( + def msg_cancel_spot_order_v2( self, market_id: str, sender: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, - ) -> injective_exchange_tx_pb.MsgCancelSpotOrder: - return injective_exchange_tx_pb.MsgCancelSpotOrder( + ) -> injective_exchange_tx_v2_pb.MsgCancelSpotOrder: + return injective_exchange_tx_v2_pb.MsgCancelSpotOrder( sender=sender, market_id=market_id, subaccount_id=subaccount_id, @@ -867,36 +1236,20 @@ def msg_cancel_spot_order( cid=cid, ) - def MsgBatchCancelSpotOrders(self, sender: str, data: List): - """ - This method is deprecated and will be removed soon. Please use `msg_batch_cancel_spot_orders` instead - """ - warn("This method is deprecated. Use msg_batch_cancel_spot_orders instead", DeprecationWarning, stacklevel=2) - return injective_exchange_tx_pb.MsgBatchCancelSpotOrders(sender=sender, data=data) - def msg_batch_cancel_spot_orders( self, sender: str, orders_data: List[injective_exchange_tx_pb.OrderData] ) -> injective_exchange_tx_pb.MsgBatchCancelSpotOrders: - return injective_exchange_tx_pb.MsgBatchCancelSpotOrders(sender=sender, data=orders_data) - - def MsgBatchUpdateOrders(self, sender: str, **kwargs): """ - This method is deprecated and will be removed soon. Please use `msg_batch_update_orders` instead + This method is deprecated and will be removed soon. Please use `msg_batch_cancel_spot_orders_v2` instead """ - warn("This method is deprecated. Use msg_batch_update_orders instead", DeprecationWarning, stacklevel=2) - return injective_exchange_tx_pb.MsgBatchUpdateOrders( - sender=sender, - subaccount_id=kwargs.get("subaccount_id"), - spot_market_ids_to_cancel_all=kwargs.get("spot_market_ids_to_cancel_all"), - derivative_market_ids_to_cancel_all=kwargs.get("derivative_market_ids_to_cancel_all"), - spot_orders_to_cancel=kwargs.get("spot_orders_to_cancel"), - derivative_orders_to_cancel=kwargs.get("derivative_orders_to_cancel"), - spot_orders_to_create=kwargs.get("spot_orders_to_create"), - derivative_orders_to_create=kwargs.get("derivative_orders_to_create"), - binary_options_orders_to_cancel=kwargs.get("binary_options_orders_to_cancel"), - binary_options_market_ids_to_cancel_all=kwargs.get("binary_options_market_ids_to_cancel_all"), - binary_options_orders_to_create=kwargs.get("binary_options_orders_to_create"), - ) + warn("This method is deprecated. Use msg_batch_cancel_spot_orders_v2 instead", DeprecationWarning, stacklevel=2) + + return injective_exchange_tx_pb.MsgBatchCancelSpotOrders(sender=sender, data=orders_data) + + def msg_batch_cancel_spot_orders_v2( + self, sender: str, orders_data: List[injective_exchange_tx_v2_pb.OrderData] + ) -> injective_exchange_tx_v2_pb.MsgBatchCancelSpotOrders: + return injective_exchange_tx_v2_pb.MsgBatchCancelSpotOrders(sender=sender, data=orders_data) def msg_batch_update_orders( self, @@ -912,6 +1265,11 @@ def msg_batch_update_orders( binary_options_market_ids_to_cancel_all: Optional[List[str]] = None, binary_options_orders_to_create: Optional[List[injective_exchange_pb.DerivativeOrder]] = None, ) -> injective_exchange_tx_pb.MsgBatchUpdateOrders: + """ + This method is deprecated and will be removed soon. Please use `msg_batch_update_orders_v2` instead + """ + warn("This method is deprecated. Use msg_batch_update_orders_v2 instead", DeprecationWarning, stacklevel=2) + return injective_exchange_tx_pb.MsgBatchUpdateOrders( sender=sender, subaccount_id=subaccount_id, @@ -926,100 +1284,110 @@ def msg_batch_update_orders( binary_options_orders_to_create=binary_options_orders_to_create, ) - def MsgPrivilegedExecuteContract( - self, sender: str, contract: str, msg: str, **kwargs + def msg_batch_update_orders_v2( + self, + sender: str, + subaccount_id: Optional[str] = None, + spot_market_ids_to_cancel_all: Optional[List[str]] = None, + derivative_market_ids_to_cancel_all: Optional[List[str]] = None, + spot_orders_to_cancel: Optional[List[injective_exchange_tx_v2_pb.OrderData]] = None, + derivative_orders_to_cancel: Optional[List[injective_exchange_tx_v2_pb.OrderData]] = None, + spot_orders_to_create: Optional[List[injective_order_v2_pb.SpotOrder]] = None, + derivative_orders_to_create: Optional[List[injective_order_v2_pb.DerivativeOrder]] = None, + binary_options_orders_to_cancel: Optional[List[injective_exchange_tx_v2_pb.OrderData]] = None, + binary_options_market_ids_to_cancel_all: Optional[List[str]] = None, + binary_options_orders_to_create: Optional[List[injective_order_v2_pb.DerivativeOrder]] = None, + ) -> injective_exchange_tx_v2_pb.MsgBatchUpdateOrders: + return injective_exchange_tx_v2_pb.MsgBatchUpdateOrders( + sender=sender, + subaccount_id=subaccount_id, + spot_market_ids_to_cancel_all=spot_market_ids_to_cancel_all, + derivative_market_ids_to_cancel_all=derivative_market_ids_to_cancel_all, + spot_orders_to_cancel=spot_orders_to_cancel, + derivative_orders_to_cancel=derivative_orders_to_cancel, + spot_orders_to_create=spot_orders_to_create, + derivative_orders_to_create=derivative_orders_to_create, + binary_options_orders_to_cancel=binary_options_orders_to_cancel, + binary_options_market_ids_to_cancel_all=binary_options_market_ids_to_cancel_all, + binary_options_orders_to_create=binary_options_orders_to_create, + ) + + def msg_privileged_execute_contract( + self, + sender: str, + contract_address: str, + data: str, + funds: Optional[str] = None, ) -> injective_exchange_tx_pb.MsgPrivilegedExecuteContract: """ - This method is deprecated and will be removed soon. Please use `msg_privileged_execute_contract` instead + This method is deprecated and will be removed soon. Please use `msg_privileged_execute_contract_v2` instead """ - warn("This method is deprecated. Use msg_privileged_execute_contract instead", DeprecationWarning, stacklevel=2) + warn( + "This method is deprecated. Use msg_privileged_execute_contract_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + # funds is a string of Coin strings, comma separated, e.g. 100000inj,20000000000usdt return injective_exchange_tx_pb.MsgPrivilegedExecuteContract( sender=sender, - contract_address=contract, - data=msg, - funds=kwargs.get("funds") # funds is a string of Coin strings, comma separated, - # e.g. 100000inj,20000000000usdt + contract_address=contract_address, + data=data, + funds=funds, ) - def msg_privileged_execute_contract( + def msg_privileged_execute_contract_v2( self, sender: str, contract_address: str, data: str, funds: Optional[str] = None, - ) -> injective_exchange_tx_pb.MsgPrivilegedExecuteContract: - # funds is a string of Coin strings, comma separated, e.g. 100000inj,20000000000usdt - return injective_exchange_tx_pb.MsgPrivilegedExecuteContract( + ) -> injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract: + return injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract( sender=sender, contract_address=contract_address, data=data, funds=funds, ) - def MsgCreateDerivativeLimitOrder( + def msg_create_derivative_limit_order( self, market_id: str, sender: str, subaccount_id: str, fee_recipient: str, - price: float, - quantity: float, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, cid: Optional[str] = None, - **kwargs, - ): + trigger_price: Optional[Decimal] = None, + ) -> injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder: """ - This method is deprecated and will be removed soon. Please use `msg_create_derivative_limit_order` instead + This method is deprecated and will be removed soon. Please use `msg_create_derivative_limit_order_v2` instead """ warn( - "This method is deprecated. Use msg_create_derivative_limit_order instead", DeprecationWarning, stacklevel=2 + "This method is deprecated. Use msg_create_derivative_limit_order_v2 instead", + DeprecationWarning, + stacklevel=2, ) - if kwargs.get("is_reduce_only", False): - margin = Decimal(0) - else: - margin = Decimal(str(price)) * Decimal(str(quantity)) / Decimal(str(kwargs["leverage"])) - - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY) - - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL) - - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY_PO) - - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL_PO) - - elif kwargs.get("stop_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_BUY) - - elif kwargs.get("stop_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_SEll) - - elif kwargs.get("take_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_BUY) - - elif kwargs.get("take_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_SELL) - return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( sender=sender, order=self.derivative_order( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=Decimal(str(price)), - quantity=Decimal(str(quantity)), + price=price, + quantity=quantity, margin=margin, order_type=order_type, cid=cid, - trigger_price=Decimal(str(kwargs["trigger_price"])) if "trigger_price" in kwargs else None, + trigger_price=trigger_price, ), ) - def msg_create_derivative_limit_order( + def msg_create_derivative_limit_order_v2( self, market_id: str, sender: str, @@ -1031,10 +1399,10 @@ def msg_create_derivative_limit_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - ) -> injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder: - return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( + ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( sender=sender, - order=self.derivative_order( + order=self.create_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1047,90 +1415,68 @@ def msg_create_derivative_limit_order( ), ) - def MsgBatchCreateDerivativeLimitOrders(self, sender: str, orders: List): + def msg_batch_create_derivative_limit_orders( + self, + sender: str, + orders: List[injective_exchange_pb.DerivativeOrder], + ) -> injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders: """ This method is deprecated and will be removed soon. - Please use `msg_batch_create_derivative_limit_orders` instead + Please use `msg_batch_create_derivative_limit_orders_v2` instead """ warn( - "This method is deprecated. Use msg_batch_create_derivative_limit_orders instead", + "This method is deprecated. Use msg_batch_create_derivative_limit_orders_v2 instead", DeprecationWarning, stacklevel=2, ) + return injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders(sender=sender, orders=orders) - def msg_batch_create_derivative_limit_orders( + def msg_batch_create_derivative_limit_orders_v2( self, sender: str, - orders: List[injective_exchange_pb.DerivativeOrder], - ) -> injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders: - return injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders(sender=sender, orders=orders) + orders: List[injective_order_v2_pb.DerivativeOrder], + ) -> injective_exchange_tx_v2_pb.MsgBatchCreateDerivativeLimitOrders: + return injective_exchange_tx_v2_pb.MsgBatchCreateDerivativeLimitOrders(sender=sender, orders=orders) - def MsgCreateDerivativeMarketOrder( + def msg_create_derivative_market_order( self, market_id: str, sender: str, subaccount_id: str, fee_recipient: str, - price: float, - quantity: float, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, cid: Optional[str] = None, - **kwargs, - ): + trigger_price: Optional[Decimal] = None, + ) -> injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder: """ - This method is deprecated and will be removed soon. Please use `msg_create_derivative_market_order` instead + This method is deprecated and will be removed soon. Please use `msg_create_derivative_market_order_v2` instead """ warn( - "This method is deprecated. Use msg_create_derivative_market_order instead", + "This method is deprecated. Use msg_create_derivative_market_order_v2 instead", DeprecationWarning, stacklevel=2, ) - if kwargs.get("is_reduce_only", False): - margin = Decimal(0) - else: - margin = Decimal(str(price)) * Decimal(str(quantity)) / Decimal(str(kwargs["leverage"])) - - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY) - - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL) - - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY_PO) - - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL_PO) - - elif kwargs.get("stop_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_BUY) - - elif kwargs.get("stop_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_SEll) - - elif kwargs.get("take_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_BUY) - - elif kwargs.get("take_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_SELL) - return injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder( sender=sender, order=self.derivative_order( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=Decimal(str(price)), - quantity=Decimal(str(quantity)), + price=price, + quantity=quantity, margin=margin, order_type=order_type, cid=cid, - trigger_price=Decimal(str(kwargs["trigger_price"])) if "trigger_price" in kwargs else None, + trigger_price=trigger_price, ), ) - def msg_create_derivative_market_order( + def msg_create_derivative_market_order_v2( self, market_id: str, sender: str, @@ -1142,10 +1488,10 @@ def msg_create_derivative_market_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - ) -> injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder: - return injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder( + ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder( sender=sender, - order=self.derivative_order( + order=self.create_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1158,27 +1504,22 @@ def msg_create_derivative_market_order( ), ) - def MsgCancelDerivativeOrder( + def msg_cancel_derivative_order( self, market_id: str, sender: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, - **kwargs, - ): + is_conditional: Optional[bool] = False, + is_buy: Optional[bool] = False, + is_market_order: Optional[bool] = False, + ) -> injective_exchange_tx_pb.MsgCancelDerivativeOrder: """ - This method is deprecated and will be removed soon. Please use `msg_cancel_derivative_order` instead + This method is deprecated and will be removed soon. Please use `msg_cancel_derivative_order_v2` instead """ - warn( - "This method is deprecated. Use msg_cancel_derivative_order instead", - DeprecationWarning, - stacklevel=2, - ) + warn("This method is deprecated. Use msg_cancel_derivative_order_v2 instead", DeprecationWarning, stacklevel=2) - is_conditional = kwargs.get("is_conditional", False) - is_buy = kwargs.get("order_direction", "buy") == "buy" - is_market_order = kwargs.get("order_type", "limit") == "market" order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) return injective_exchange_tx_pb.MsgCancelDerivativeOrder( @@ -1190,20 +1531,20 @@ def MsgCancelDerivativeOrder( cid=cid, ) - def msg_cancel_derivative_order( + def msg_cancel_derivative_order_v2( self, market_id: str, sender: str, subaccount_id: str, + is_buy: bool, + is_market_order: bool, + is_conditional: bool, order_hash: Optional[str] = None, cid: Optional[str] = None, - is_conditional: Optional[bool] = False, - is_buy: Optional[bool] = False, - is_market_order: Optional[bool] = False, - ) -> injective_exchange_tx_pb.MsgCancelDerivativeOrder: + ) -> injective_exchange_tx_v2_pb.MsgCancelDerivativeOrder: order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) - return injective_exchange_tx_pb.MsgCancelDerivativeOrder( + return injective_exchange_tx_v2_pb.MsgCancelDerivativeOrder( sender=sender, market_id=market_id, subaccount_id=subaccount_id, @@ -1212,23 +1553,27 @@ def msg_cancel_derivative_order( cid=cid, ) - def MsgBatchCancelDerivativeOrders(self, sender: str, data: List): + def msg_batch_cancel_derivative_orders( + self, sender: str, orders_data: List[injective_exchange_tx_pb.OrderData] + ) -> injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders: """ - This method is deprecated and will be removed soon. Please use `msg_batch_cancel_derivative_orders` instead + This method is deprecated and will be removed soon. + Please use `msg_batch_cancel_derivative_orders_v2` instead """ warn( - "This method is deprecated. Use msg_batch_cancel_derivative_orders instead", + "This method is deprecated. Use msg_batch_cancel_derivative_orders_v2 instead", DeprecationWarning, stacklevel=2, ) - return injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders(sender=sender, data=data) - def msg_batch_cancel_derivative_orders( - self, sender: str, orders_data: List[injective_exchange_tx_pb.OrderData] - ) -> injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders: return injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders(sender=sender, data=orders_data) - def MsgInstantBinaryOptionsMarketLaunch( + def msg_batch_cancel_derivative_orders_v2( + self, sender: str, orders_data: List[injective_exchange_tx_v2_pb.OrderData] + ) -> injective_exchange_tx_v2_pb.MsgBatchCancelDerivativeOrders: + return injective_exchange_tx_v2_pb.MsgBatchCancelDerivativeOrders(sender=sender, data=orders_data) + + def msg_instant_binary_options_market_launch( self, sender: str, ticker: str, @@ -1236,55 +1581,57 @@ def MsgInstantBinaryOptionsMarketLaunch( oracle_provider: str, oracle_type: str, oracle_scale_factor: int, - maker_fee_rate: float, - taker_fee_rate: float, + maker_fee_rate: Decimal, + taker_fee_rate: Decimal, expiration_timestamp: int, settlement_timestamp: int, + admin: str, quote_denom: str, - quote_decimals: int, - min_price_tick_size: float, - min_quantity_tick_size: float, - **kwargs, - ): + min_price_tick_size: Decimal, + min_quantity_tick_size: Decimal, + min_notional: Decimal, + ) -> injective_exchange_tx_pb.MsgInstantPerpetualMarketLaunch: """ This method is deprecated and will be removed soon. - Please use `msg_instant_binary_options_market_launch` instead + Please use `msg_instant_binary_options_market_launch_v2` instead """ warn( - "This method is deprecated. Use msg_instant_binary_options_market_launch instead", + "This method is deprecated. Use msg_instant_binary_options_market_launch_v2 instead", DeprecationWarning, stacklevel=2, ) - scaled_maker_fee_rate = Decimal((maker_fee_rate * pow(10, 18))) - maker_fee_to_bytes = bytes(str(scaled_maker_fee_rate), "utf-8") - scaled_taker_fee_rate = Decimal((taker_fee_rate * pow(10, 18))) - taker_fee_to_bytes = bytes(str(scaled_taker_fee_rate), "utf-8") - - scaled_min_price_tick_size = Decimal((min_price_tick_size * pow(10, quote_decimals + 18))) - min_price_to_bytes = bytes(str(scaled_min_price_tick_size), "utf-8") + quote_token = self.tokens[quote_denom] - scaled_min_quantity_tick_size = Decimal((min_quantity_tick_size * pow(10, 18))) - min_quantity_to_bytes = bytes(str(scaled_min_quantity_tick_size), "utf-8") + chain_min_price_tick_size = min_price_tick_size * Decimal( + f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" + ) + chain_min_quantity_tick_size = min_quantity_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_maker_fee_rate = maker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_taker_fee_rate = taker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_min_notional = quote_token.chain_formatted_value(min_notional) * Decimal( + f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}" + ) return injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch( sender=sender, ticker=ticker, oracle_symbol=oracle_symbol, oracle_provider=oracle_provider, - oracle_type=oracle_type, + oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), oracle_scale_factor=oracle_scale_factor, - maker_fee_rate=maker_fee_to_bytes, - taker_fee_rate=taker_fee_to_bytes, + maker_fee_rate=f"{chain_maker_fee_rate.normalize():f}", + taker_fee_rate=f"{chain_taker_fee_rate.normalize():f}", expiration_timestamp=expiration_timestamp, settlement_timestamp=settlement_timestamp, - quote_denom=quote_denom, - min_price_tick_size=min_price_to_bytes, - min_quantity_tick_size=min_quantity_to_bytes, - admin=kwargs.get("admin"), + admin=admin, + quote_denom=quote_token.denom, + min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", + min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", + min_notional=f"{chain_min_notional.normalize():f}", ) - def msg_instant_binary_options_market_launch( + def msg_instant_binary_options_market_launch_v2( self, sender: str, ticker: str, @@ -1301,20 +1648,14 @@ def msg_instant_binary_options_market_launch( min_price_tick_size: Decimal, min_quantity_tick_size: Decimal, min_notional: Decimal, - ) -> injective_exchange_tx_pb.MsgInstantPerpetualMarketLaunch: - quote_token = self.tokens[quote_denom] - - chain_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - chain_min_quantity_tick_size = min_quantity_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - chain_maker_fee_rate = maker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - chain_taker_fee_rate = taker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - chain_min_notional = quote_token.chain_formatted_value(min_notional) * Decimal( - f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - - return injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch( + ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + chain_maker_fee_rate = Token.convert_value_to_extended_decimal_format(value=maker_fee_rate) + chain_taker_fee_rate = Token.convert_value_to_extended_decimal_format(value=taker_fee_rate) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + + return injective_exchange_tx_v2_pb.MsgInstantBinaryOptionsMarketLaunch( sender=sender, ticker=ticker, oracle_symbol=oracle_symbol, @@ -1326,77 +1667,53 @@ def msg_instant_binary_options_market_launch( expiration_timestamp=expiration_timestamp, settlement_timestamp=settlement_timestamp, admin=admin, - quote_denom=quote_token.denom, + quote_denom=quote_denom, min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", min_notional=f"{chain_min_notional.normalize():f}", ) - def MsgCreateBinaryOptionsLimitOrder( + def msg_create_binary_options_limit_order( self, market_id: str, sender: str, subaccount_id: str, fee_recipient: str, - price: float, - quantity: float, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, cid: Optional[str] = None, - **kwargs, - ): + trigger_price: Optional[Decimal] = None, + denom: Optional[Denom] = None, + ) -> injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder: """ - This method is deprecated and will be removed soon. Please use `msg_create_binary_options_limit_order` instead + This method is deprecated and will be removed soon. + Please use `msg_create_binary_options_limit_order_v2` instead """ warn( - "This method is deprecated. Use msg_create_binary_options_limit_order instead", + "This method is deprecated. Use msg_create_binary_options_limit_order_v2 instead", DeprecationWarning, stacklevel=2, ) - if kwargs.get("is_reduce_only", False): - margin = Decimal(0) - else: - margin = Decimal(str(price)) * Decimal(str(quantity)) - - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY) - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL) - - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY_PO) - - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL_PO) - - elif kwargs.get("stop_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_BUY) - - elif kwargs.get("stop_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_SEll) - - elif kwargs.get("take_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_BUY) - - elif kwargs.get("take_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_SELL) - - return injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrder( + return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( sender=sender, order=self.binary_options_order( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=Decimal(str(price)), - quantity=Decimal(str(quantity)), + price=price, + quantity=quantity, margin=margin, order_type=order_type, cid=cid, - trigger_price=Decimal(str(kwargs["trigger_price"])) if "trigger_price" in kwargs else None, - denom=kwargs.get("denom"), + trigger_price=trigger_price, + denom=denom, ), ) - def msg_create_binary_options_limit_order( + def msg_create_binary_options_limit_order_v2( self, market_id: str, sender: str, @@ -1408,11 +1725,10 @@ def msg_create_binary_options_limit_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - denom: Optional[Denom] = None, - ) -> injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder: - return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( + ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( sender=sender, - order=self.binary_options_order( + order=self.create_binary_options_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1422,57 +1738,32 @@ def msg_create_binary_options_limit_order( order_type=order_type, cid=cid, trigger_price=trigger_price, - denom=denom, ), ) - def MsgCreateBinaryOptionsMarketOrder( + def msg_create_binary_options_market_order( self, market_id: str, sender: str, subaccount_id: str, fee_recipient: str, - price: float, - quantity: float, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, cid: Optional[str] = None, - **kwargs, - ): + trigger_price: Optional[Decimal] = None, + denom: Optional[Denom] = None, + ) -> injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder: """ - This method is deprecated and will be removed soon. Please use `msg_create_binary_options_market_order` instead + This method is deprecated and will be removed soon. + Please use `msg_create_binary_options_market_order_v2` instead """ warn( - "This method is deprecated. Use msg_create_binary_options_market_order instead", + "This method is deprecated. Use msg_create_binary_options_market_order_v2 instead", DeprecationWarning, stacklevel=2, ) - if kwargs.get("is_reduce_only", False): - margin = Decimal(0) - else: - margin = Decimal(str(price)) * Decimal(str(quantity)) - - if kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY) - - elif not kwargs.get("is_buy") and not kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL) - - elif kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.BUY_PO) - - elif not kwargs.get("is_buy") and kwargs.get("is_po"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.SELL_PO) - - elif kwargs.get("stop_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_BUY) - - elif kwargs.get("stop_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.STOP_SEll) - - elif kwargs.get("take_buy"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_BUY) - - elif kwargs.get("take_sell"): - order_type = injective_exchange_pb.OrderType.Name(injective_exchange_pb.OrderType.TAKE_SELL) return injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder( sender=sender, @@ -1480,17 +1771,17 @@ def MsgCreateBinaryOptionsMarketOrder( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, - price=Decimal(str(price)), - quantity=Decimal(str(quantity)), + price=price, + quantity=quantity, margin=margin, order_type=order_type, cid=cid, - trigger_price=Decimal(str(kwargs["trigger_price"])) if "trigger_price" in kwargs else None, - denom=kwargs.get("denom"), + trigger_price=trigger_price, + denom=denom, ), ) - def msg_create_binary_options_market_order( + def msg_create_binary_options_market_order_v2( self, market_id: str, sender: str, @@ -1502,11 +1793,10 @@ def msg_create_binary_options_market_order( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - denom: Optional[Denom] = None, - ): - return injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder( + ) -> injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder( sender=sender, - order=self.binary_options_order( + order=self.create_binary_options_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1516,48 +1806,54 @@ def msg_create_binary_options_market_order( order_type=order_type, cid=cid, trigger_price=trigger_price, - denom=denom, ), ) - def MsgCancelBinaryOptionsOrder( + def msg_cancel_binary_options_order( self, - sender: str, market_id: str, + sender: str, subaccount_id: str, order_hash: Optional[str] = None, cid: Optional[str] = None, - ): + is_conditional: Optional[bool] = False, + is_buy: Optional[bool] = False, + is_market_order: Optional[bool] = False, + ) -> injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder: """ - This method is deprecated and will be removed soon. Please use `msg_cancel_binary_options_order` instead + This method is deprecated and will be removed soon. Please use `msg_cancel_binary_options_order_v2` instead """ warn( - "This method is deprecated. Use msg_cancel_binary_options_order instead", + "This method is deprecated. Use msg_cancel_binary_options_order_v2 instead", DeprecationWarning, stacklevel=2, ) + + order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) + return injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder( sender=sender, market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash, + order_mask=order_mask, cid=cid, ) - def msg_cancel_binary_options_order( + def msg_cancel_binary_options_order_v2( self, market_id: str, sender: str, subaccount_id: str, + is_buy: bool, + is_market_order: bool, + is_conditional: bool, order_hash: Optional[str] = None, cid: Optional[str] = None, - is_conditional: Optional[bool] = False, - is_buy: Optional[bool] = False, - is_market_order: Optional[bool] = False, - ) -> injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder: + ) -> injective_exchange_tx_v2_pb.MsgCancelBinaryOptionsOrder: order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) - return injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder( + return injective_exchange_tx_v2_pb.MsgCancelBinaryOptionsOrder( sender=sender, market_id=market_id, subaccount_id=subaccount_id, @@ -1566,23 +1862,20 @@ def msg_cancel_binary_options_order( cid=cid, ) - def MsgSubaccountTransfer( + def msg_subaccount_transfer( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, - amount: int, + amount: Decimal, denom: str, - ): + ) -> injective_exchange_tx_pb.MsgSubaccountTransfer: """ - This method is deprecated and will be removed soon. Please use `msg_subaccount_transfer` instead + This method is deprecated and will be removed soon. Please use `msg_subaccount_transfer_v2` instead """ - warn( - "This method is deprecated. Use msg_subaccount_transfer instead", - DeprecationWarning, - stacklevel=2, - ) - be_amount = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) + warn("This method is deprecated. Use msg_subaccount_transfer_v2 instead", DeprecationWarning, stacklevel=2) + + be_amount = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgSubaccountTransfer( sender=sender, @@ -1591,40 +1884,37 @@ def MsgSubaccountTransfer( amount=be_amount, ) - def msg_subaccount_transfer( + def msg_subaccount_transfer_v2( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, - amount: Decimal, + amount: int, denom: str, - ) -> injective_exchange_tx_pb.MsgSubaccountTransfer: - be_amount = self.create_coin_amount(amount=amount, token_name=denom) + ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: + amount_coin = self.coin(amount=int(amount), denom=denom) - return injective_exchange_tx_pb.MsgSubaccountTransfer( + return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, - amount=be_amount, + amount=amount_coin, ) - def MsgExternalTransfer( + def msg_external_transfer( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, - amount: int, + amount: Decimal, denom: str, - ): + ) -> injective_exchange_tx_pb.MsgExternalTransfer: """ - This method is deprecated and will be removed soon. Please use `msg_external_transfer` instead + This method is deprecated and will be removed soon. Please use `msg_external_transfer_v2` instead """ - warn( - "This method is deprecated. Use msg_external_transfer instead", - DeprecationWarning, - stacklevel=2, - ) - coin = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) + warn("This method is deprecated. Use msg_external_transfer_v2 instead", DeprecationWarning, stacklevel=2) + + coin = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgExternalTransfer( sender=sender, @@ -1633,50 +1923,47 @@ def MsgExternalTransfer( amount=coin, ) - def msg_external_transfer( + def msg_external_transfer_v2( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, - amount: Decimal, + amount: int, denom: str, - ) -> injective_exchange_tx_pb.MsgExternalTransfer: - coin = self.create_coin_amount(amount=amount, token_name=denom) + ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: + coin = self.coin(amount=int(amount), denom=denom) - return injective_exchange_tx_pb.MsgExternalTransfer( + return injective_exchange_tx_v2_pb.MsgExternalTransfer( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, amount=coin, ) - def MsgLiquidatePosition( + def msg_liquidate_position( self, sender: str, subaccount_id: str, market_id: str, order: Optional[injective_exchange_pb.DerivativeOrder] = None, - ): + ) -> injective_exchange_tx_pb.MsgLiquidatePosition: """ - This method is deprecated and will be removed soon. Please use `msg_liquidate_position` instead + This method is deprecated and will be removed soon. Please use `msg_liquidate_position_v2` instead """ - warn( - "This method is deprecated. Use msg_liquidate_position instead", - DeprecationWarning, - stacklevel=2, - ) + warn("This method is deprecated. Use msg_liquidate_position_v2 instead", DeprecationWarning, stacklevel=2) + return injective_exchange_tx_pb.MsgLiquidatePosition( sender=sender, subaccount_id=subaccount_id, market_id=market_id, order=order ) - def msg_liquidate_position( + def msg_liquidate_position_v2( self, sender: str, subaccount_id: str, market_id: str, - order: Optional[injective_exchange_pb.DerivativeOrder] = None, - ) -> injective_exchange_tx_pb.MsgLiquidatePosition: - return injective_exchange_tx_pb.MsgLiquidatePosition( + order: Optional[injective_order_v2_pb.DerivativeOrder] = None, + ) -> injective_exchange_tx_v2_pb.MsgLiquidatePosition: + return injective_exchange_tx_v2_pb.MsgLiquidatePosition( sender=sender, subaccount_id=subaccount_id, market_id=market_id, order=order ) @@ -1686,29 +1973,41 @@ def msg_emergency_settle_market( subaccount_id: str, market_id: str, ) -> injective_exchange_tx_pb.MsgEmergencySettleMarket: + """ + This method is deprecated and will be removed soon. Please use `msg_emergency_settle_market_v2` instead + """ + warn("This method is deprecated. Use msg_emergency_settle_market_v2 instead", DeprecationWarning, stacklevel=2) + return injective_exchange_tx_pb.MsgEmergencySettleMarket( sender=sender, subaccount_id=subaccount_id, market_id=market_id ) - def MsgIncreasePositionMargin( + def msg_emergency_settle_market_v2( + self, + sender: str, + subaccount_id: str, + market_id: str, + ) -> injective_exchange_tx_v2_pb.MsgEmergencySettleMarket: + return injective_exchange_tx_v2_pb.MsgEmergencySettleMarket( + sender=sender, subaccount_id=subaccount_id, market_id=market_id + ) + + def msg_increase_position_margin( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, market_id: str, - amount: float, - ): + amount: Decimal, + ) -> injective_exchange_tx_pb.MsgIncreasePositionMargin: """ - This method is deprecated and will be removed soon. Please use `msg_increase_position_margin` instead + This method is deprecated and will be removed soon. Please use `msg_increase_position_margin_v2` instead """ - warn( - "This method is deprecated. Use msg_increase_position_margin instead", - DeprecationWarning, - stacklevel=2, - ) + warn("This method is deprecated. Use msg_increase_position_margin_v2 instead", DeprecationWarning, stacklevel=2) + market = self.derivative_markets[market_id] - additional_margin = market.margin_to_chain_format(human_readable_value=Decimal(str(amount))) + additional_margin = market.margin_to_chain_format(human_readable_value=amount) return injective_exchange_tx_pb.MsgIncreasePositionMargin( sender=sender, source_subaccount_id=source_subaccount_id, @@ -1717,72 +2016,63 @@ def MsgIncreasePositionMargin( amount=str(int(additional_margin)), ) - def msg_increase_position_margin( + def msg_increase_position_margin_v2( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, market_id: str, amount: Decimal, - ): - market = self.derivative_markets[market_id] - - additional_margin = market.margin_to_chain_format(human_readable_value=amount) - return injective_exchange_tx_pb.MsgIncreasePositionMargin( + ) -> injective_exchange_tx_v2_pb.MsgIncreasePositionMargin: + additional_margin = Token.convert_value_to_extended_decimal_format(value=amount) + return injective_exchange_tx_v2_pb.MsgIncreasePositionMargin( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, market_id=market_id, - amount=str(int(additional_margin)), - ) - - def MsgRewardsOptOut(self, sender: str): - """ - This method is deprecated and will be removed soon. Please use `msg_rewards_opt_out` instead - """ - warn( - "This method is deprecated. Use msg_rewards_opt_out instead", - DeprecationWarning, - stacklevel=2, + amount=f"{additional_margin.normalize():f}", ) - return injective_exchange_tx_pb.MsgRewardsOptOut(sender=sender) - def msg_rewards_opt_out(self, sender: str) -> injective_exchange_tx_pb.MsgRewardsOptOut: - return injective_exchange_tx_pb.MsgRewardsOptOut(sender=sender) + def msg_rewards_opt_out(self, sender: str) -> injective_exchange_tx_v2_pb.MsgRewardsOptOut: + return injective_exchange_tx_v2_pb.MsgRewardsOptOut(sender=sender) - def MsgAdminUpdateBinaryOptionsMarket( + def msg_admin_update_binary_options_market( self, sender: str, market_id: str, status: str, - **kwargs, - ): + settlement_price: Optional[Decimal] = None, + expiration_timestamp: Optional[int] = None, + settlement_timestamp: Optional[int] = None, + ) -> injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarket: """ - This method is deprecated and will be removed soon. Please use `msg_admin_update_binary_options_market` instead + This method is deprecated and will be removed soon. + Please use `msg_admin_update_binary_options_market_v2` instead """ warn( - "This method is deprecated. Use msg_admin_update_binary_options_market instead", + "This method is deprecated. Use msg_admin_update_binary_options_market_v2 instead", DeprecationWarning, stacklevel=2, ) - if kwargs.get("settlement_price") is not None: - scale_price = Decimal((kwargs.get("settlement_price") * pow(10, 18))) - price_to_bytes = bytes(str(scale_price), "utf-8") + market = self.binary_option_markets[market_id] + if settlement_price is not None: + chain_settlement_price = market.price_to_chain_format(human_readable_value=settlement_price) + price_parameter = f"{chain_settlement_price.normalize():f}" else: - price_to_bytes = "" + price_parameter = None return injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarket( sender=sender, market_id=market_id, - settlement_price=price_to_bytes, - expiration_timestamp=kwargs.get("expiration_timestamp"), - settlement_timestamp=kwargs.get("settlement_timestamp"), + settlement_price=price_parameter, + expiration_timestamp=expiration_timestamp, + settlement_timestamp=settlement_timestamp, status=status, ) - def msg_admin_update_binary_options_market( + def msg_admin_update_binary_options_market_v2( self, sender: str, market_id: str, @@ -1790,41 +2080,60 @@ def msg_admin_update_binary_options_market( settlement_price: Optional[Decimal] = None, expiration_timestamp: Optional[int] = None, settlement_timestamp: Optional[int] = None, - ) -> injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarket: - market = self.binary_option_markets[market_id] - - if settlement_price is not None: - chain_settlement_price = market.price_to_chain_format(human_readable_value=settlement_price) - price_parameter = f"{chain_settlement_price.normalize():f}" - else: - price_parameter = None - - return injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarket( + ) -> injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket: + message = injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket( sender=sender, market_id=market_id, - settlement_price=price_parameter, expiration_timestamp=expiration_timestamp, settlement_timestamp=settlement_timestamp, status=status, ) - def msg_decrease_position_margin( + if settlement_price is not None: + chain_settlement_price = Token.convert_value_to_extended_decimal_format(value=settlement_price) + message.settlement_price = f"{chain_settlement_price.normalize():f}" + + return message + + def msg_decrease_position_margin( + self, + sender: str, + source_subaccount_id: str, + destination_subaccount_id: str, + market_id: str, + amount: Decimal, + ) -> injective_exchange_tx_pb.MsgDecreasePositionMargin: + """ + This method is deprecated and will be removed soon. Please use `msg_decrease_position_margin_v2` instead + """ + warn("This method is deprecated. Use msg_decrease_position_margin_v2 instead", DeprecationWarning, stacklevel=2) + + market = self.derivative_markets[market_id] + + additional_margin = market.margin_to_chain_format(human_readable_value=amount) + return injective_exchange_tx_pb.MsgDecreasePositionMargin( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + market_id=market_id, + amount=str(int(additional_margin)), + ) + + def msg_decrease_position_margin_v2( self, sender: str, source_subaccount_id: str, destination_subaccount_id: str, market_id: str, amount: Decimal, - ) -> injective_exchange_tx_pb.MsgDecreasePositionMargin: - market = self.derivative_markets[market_id] - - additional_margin = market.margin_to_chain_format(human_readable_value=amount) - return injective_exchange_tx_pb.MsgDecreasePositionMargin( + ) -> injective_exchange_tx_v2_pb.MsgDecreasePositionMargin: + margin_to_remove = Token.convert_value_to_extended_decimal_format(value=amount) + return injective_exchange_tx_v2_pb.MsgDecreasePositionMargin( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, market_id=market_id, - amount=str(int(additional_margin)), + amount=f"{margin_to_remove.normalize():f}", ) def msg_update_spot_market( @@ -1836,6 +2145,11 @@ def msg_update_spot_market( new_min_quantity_tick_size: Decimal, new_min_notional: Decimal, ) -> injective_exchange_tx_pb.MsgUpdateSpotMarket: + """ + This method is deprecated and will be removed soon. Please use `msg_update_spot_market_v2` instead + """ + warn("This method is deprecated. Use msg_update_spot_market_v2 instead", DeprecationWarning, stacklevel=2) + market = self.spot_markets[market_id] chain_min_price_tick_size = new_min_price_tick_size * Decimal( @@ -1857,6 +2171,28 @@ def msg_update_spot_market( new_min_notional=f"{chain_min_notional.normalize():f}", ) + def msg_update_spot_market_v2( + self, + admin: str, + market_id: str, + new_ticker: str, + new_min_price_tick_size: Decimal, + new_min_quantity_tick_size: Decimal, + new_min_notional: Decimal, + ) -> injective_exchange_tx_v2_pb.MsgUpdateSpotMarket: + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=new_min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=new_min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=new_min_notional) + + return injective_exchange_tx_v2_pb.MsgUpdateSpotMarket( + admin=admin, + market_id=market_id, + new_ticker=new_ticker, + new_min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", + new_min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", + new_min_notional=f"{chain_min_notional.normalize():f}", + ) + def msg_update_derivative_market( self, admin: str, @@ -1868,6 +2204,11 @@ def msg_update_derivative_market( new_initial_margin_ratio: Decimal, new_maintenance_margin_ratio: Decimal, ) -> injective_exchange_tx_pb.MsgUpdateDerivativeMarket: + """ + This method is deprecated and will be removed soon. Please use `msg_update_derivative_market_v2` instead + """ + warn("This method is deprecated. Use msg_update_derivative_market_v2 instead", DeprecationWarning, stacklevel=2) + market = self.derivative_markets[market_id] chain_min_price_tick_size = new_min_price_tick_size * Decimal( @@ -1891,16 +2232,46 @@ def msg_update_derivative_market( new_maintenance_margin_ratio=f"{chain_maintenance_margin_ratio.normalize():f}", ) + def msg_update_derivative_market_v2( + self, + admin: str, + market_id: str, + new_ticker: str, + new_min_price_tick_size: Decimal, + new_min_quantity_tick_size: Decimal, + new_min_notional: Decimal, + new_initial_margin_ratio: Decimal, + new_maintenance_margin_ratio: Decimal, + ) -> injective_exchange_tx_v2_pb.MsgUpdateDerivativeMarket: + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=new_min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=new_min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=new_min_notional) + chain_initial_margin_ratio = Token.convert_value_to_extended_decimal_format(value=new_initial_margin_ratio) + chain_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format( + value=new_maintenance_margin_ratio + ) + + return injective_exchange_tx_v2_pb.MsgUpdateDerivativeMarket( + admin=admin, + market_id=market_id, + new_ticker=new_ticker, + new_min_price_tick_size=f"{chain_min_price_tick_size.normalize():f}", + new_min_quantity_tick_size=f"{chain_min_quantity_tick_size.normalize():f}", + new_min_notional=f"{chain_min_notional.normalize():f}", + new_initial_margin_ratio=f"{chain_initial_margin_ratio.normalize():f}", + new_maintenance_margin_ratio=f"{chain_maintenance_margin_ratio.normalize():f}", + ) + def msg_authorize_stake_grants( - self, sender: str, grants: List[injective_exchange_pb.GrantAuthorization] - ) -> injective_exchange_tx_pb.MsgAuthorizeStakeGrants: - return injective_exchange_tx_pb.MsgAuthorizeStakeGrants( + self, sender: str, grants: List[injective_exchange_v2_pb.GrantAuthorization] + ) -> injective_exchange_tx_v2_pb.MsgAuthorizeStakeGrants: + return injective_exchange_tx_v2_pb.MsgAuthorizeStakeGrants( sender=sender, grants=grants, ) - def msg_activate_stake_grant(self, sender: str, granter: str) -> injective_exchange_tx_pb.MsgActivateStakeGrant: - return injective_exchange_tx_pb.MsgActivateStakeGrant( + def msg_activate_stake_grant(self, sender: str, granter: str) -> injective_exchange_tx_v2_pb.MsgActivateStakeGrant: + return injective_exchange_tx_v2_pb.MsgActivateStakeGrant( sender=sender, granter=granter, ) @@ -1919,6 +2290,11 @@ def MsgCreateInsuranceFund( expiry: int, initial_deposit: int, ): + """ + This method is deprecated and will be removed soon. Please use `msg_create_insurance_fund` instead + """ + warn("This method is deprecated. Use msg_create_insurance_fund instead", DeprecationWarning, stacklevel=2) + token = self.tokens[quote_denom] deposit = self.create_coin_amount(Decimal(str(initial_deposit)), quote_denom) @@ -1933,6 +2309,30 @@ def MsgCreateInsuranceFund( initial_deposit=deposit, ) + def msg_create_insurance_fund( + self, + sender: str, + ticker: str, + quote_denom: str, + oracle_base: str, + oracle_quote: str, + oracle_type: str, + expiry: int, + initial_deposit: int, + ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: + deposit = self.coin(amount=int(initial_deposit), denom=quote_denom) + + return injective_insurance_tx_pb.MsgCreateInsuranceFund( + sender=sender, + ticker=ticker, + quote_denom=quote_denom, + oracle_base=oracle_base, + oracle_quote=oracle_quote, + oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), + expiry=expiry, + initial_deposit=deposit, + ) + def MsgUnderwrite( self, sender: str, @@ -1940,6 +2340,11 @@ def MsgUnderwrite( quote_denom: str, amount: int, ): + """ + This method is deprecated and will be removed soon. Please use `msg_underwrite` instead + """ + warn("This method is deprecated. Use msg_underwrite instead", DeprecationWarning, stacklevel=2) + be_amount = self.create_coin_amount(amount=Decimal(str(amount)), token_name=quote_denom) return injective_insurance_tx_pb.MsgUnderwrite( @@ -1948,6 +2353,21 @@ def MsgUnderwrite( deposit=be_amount, ) + def msg_underwrite( + self, + sender: str, + market_id: str, + quote_denom: str, + amount: int, + ): + coin = self.coin(amount=int(amount), denom=quote_denom) + + return injective_insurance_tx_pb.MsgUnderwrite( + sender=sender, + market_id=market_id, + deposit=coin, + ) + def MsgRequestRedemption( self, sender: str, @@ -1955,10 +2375,11 @@ def MsgRequestRedemption( share_denom: str, amount: int, ): + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) return injective_insurance_tx_pb.MsgRequestRedemption( sender=sender, market_id=market_id, - amount=self.coin(amount=amount, denom=share_denom), + amount=self.coin(amount=int(chain_amount), denom=share_denom), ) # endregion @@ -1968,7 +2389,7 @@ def MsgRelayProviderPrices(self, sender: str, provider: str, symbols: list, pric oracle_prices = [] for price in prices: - scale_price = Decimal((price) * pow(10, 18)) + scale_price = Decimal(price * pow(10, 18)) price_to_bytes = bytes(str(scale_price), "utf-8") oracle_prices.append(price_to_bytes) @@ -1983,6 +2404,11 @@ def MsgRelayPriceFeedPrice(self, sender: list, base: list, quote: list, price: l # region Peggy module def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, bridge_fee: float): + """ + This method is deprecated and will be removed soon. Please use `msg_send_to_eth` instead + """ + warn("This method is deprecated. Use msg_send_to_eth instead", DeprecationWarning, stacklevel=2) + be_amount = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) be_bridge_fee = self.create_coin_amount(amount=Decimal(str(bridge_fee)), token_name=denom) @@ -1993,11 +2419,22 @@ def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, br bridge_fee=be_bridge_fee, ) + def msg_send_to_eth(self, denom: str, sender: str, eth_dest: str, amount: int, bridge_fee: int): + amount_coin = self.coin(amount=int(amount), denom=denom) + bridge_fee_coin = self.coin(amount=int(bridge_fee), denom=denom) + + return injective_peggy_tx_pb.MsgSendToEth( + sender=sender, + eth_dest=eth_dest, + amount=amount_coin, + bridge_fee=bridge_fee_coin, + ) + # endregion # region Staking module def MsgDelegate(self, delegator_address: str, validator_address: str, amount: float): - be_amount = Decimal(str(amount)) * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + be_amount = Token.convert_value_to_extended_decimal_format(Decimal(str(amount))) return cosmos_staking_tx_pb.MsgDelegate( delegator_address=delegator_address, @@ -2121,6 +2558,11 @@ def MsgGrantTyped( subaccount_id: str, **kwargs, ): + """ + This method is deprecated and will be removed soon. Please use `create_typed_msg_grant` instead + """ + warn("This method is deprecated. Use create_typed_msg_grant instead", DeprecationWarning, stacklevel=2) + if self._ofac_checker.is_blacklisted(granter): raise Exception(f"Address {granter} is in the OFAC list") @@ -2182,6 +2624,72 @@ def MsgGrantTyped( return cosmos_authz_tx_pb.MsgGrant(granter=granter, grantee=grantee, grant=grant) + def create_typed_msg_grant( + self, + granter: str, + grantee: str, + msg_type: str, + expiration_time_seconds: int, + subaccount_id: str, + market_ids: Optional[List[str]] = None, + spot_markets: Optional[List[str]] = None, + derivative_markets: Optional[List[str]] = None, + ) -> cosmos_authz_tx_pb.MsgGrant: + if self._ofac_checker.is_blacklisted(granter): + raise Exception(f"Address {granter} is in the OFAC list") + + market_ids = market_ids or [] + auth = None + if msg_type == "CreateSpotLimitOrderAuthz": + auth = injective_authz_v2_pb.CreateSpotLimitOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) + elif msg_type == "CreateSpotMarketOrderAuthz": + auth = injective_authz_v2_pb.CreateSpotMarketOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) + elif msg_type == "BatchCreateSpotLimitOrdersAuthz": + auth = injective_authz_v2_pb.BatchCreateSpotLimitOrdersAuthz( + subaccount_id=subaccount_id, market_ids=market_ids + ) + elif msg_type == "CancelSpotOrderAuthz": + auth = injective_authz_v2_pb.CancelSpotOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) + elif msg_type == "BatchCancelSpotOrdersAuthz": + auth = injective_authz_v2_pb.BatchCancelSpotOrdersAuthz(subaccount_id=subaccount_id, market_ids=market_ids) + elif msg_type == "CreateDerivativeLimitOrderAuthz": + auth = injective_authz_v2_pb.CreateDerivativeLimitOrderAuthz( + subaccount_id=subaccount_id, market_ids=market_ids + ) + elif msg_type == "CreateDerivativeMarketOrderAuthz": + auth = injective_authz_v2_pb.CreateDerivativeMarketOrderAuthz( + subaccount_id=subaccount_id, market_ids=market_ids + ) + elif msg_type == "BatchCreateDerivativeLimitOrdersAuthz": + auth = injective_authz_v2_pb.BatchCreateDerivativeLimitOrdersAuthz( + subaccount_id=subaccount_id, market_ids=market_ids + ) + elif msg_type == "CancelDerivativeOrderAuthz": + auth = injective_authz_v2_pb.CancelDerivativeOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) + elif msg_type == "BatchCancelDerivativeOrdersAuthz": + auth = injective_authz_v2_pb.BatchCancelDerivativeOrdersAuthz( + subaccount_id=subaccount_id, market_ids=market_ids + ) + elif msg_type == "BatchUpdateOrdersAuthz": + spot_markets_ids = spot_markets or [] + derivative_markets_ids = derivative_markets or [] + + auth = injective_authz_v2_pb.BatchUpdateOrdersAuthz( + subaccount_id=subaccount_id, + spot_markets=spot_markets_ids, + derivative_markets=derivative_markets_ids, + ) + + any_auth = any_pb2.Any() + any_auth.Pack(auth, type_url_prefix="") + + grant = cosmos_authz_pb.Grant( + authorization=any_auth, + expiration=timestamp_pb2.Timestamp(seconds=(int(time()) + expiration_time_seconds)), + ) + + return cosmos_authz_tx_pb.MsgGrant(granter=granter, grantee=grantee, grant=grant) + def MsgVote( self, proposal_id: str, @@ -2190,9 +2698,20 @@ def MsgVote( ): return cosmos_gov_tx_pb.MsgVote(proposal_id=proposal_id, voter=voter, option=option) + # ------------------------------------------------ + # region Chain stream module's messages + def chain_stream_bank_balances_filter( self, accounts: Optional[List[str]] = None ) -> chain_stream_query.BankBalancesFilter: + """ + This method is deprecated and will be removed soon. Please use `chain_stream_bank_balances_v2_filter` instead + """ + warn( + "This method is deprecated. Use chain_stream_bank_balances_v2_filter instead", + DeprecationWarning, + stacklevel=2, + ) accounts = accounts or ["*"] return chain_stream_query.BankBalancesFilter(accounts=accounts) @@ -2200,6 +2719,15 @@ def chain_stream_subaccount_deposits_filter( self, subaccount_ids: Optional[List[str]] = None, ) -> chain_stream_query.SubaccountDepositsFilter: + """ + This method is deprecated and will be removed soon. + Please use `chain_stream_subaccount_deposits_v2_filter` instead + """ + warn( + "This method is deprecated. Use chain_stream_subaccount_deposits_v2_filter instead", + DeprecationWarning, + stacklevel=2, + ) subaccount_ids = subaccount_ids or ["*"] return chain_stream_query.SubaccountDepositsFilter(subaccount_ids=subaccount_ids) @@ -2208,6 +2736,11 @@ def chain_stream_trades_filter( subaccount_ids: Optional[List[str]] = None, market_ids: Optional[List[str]] = None, ) -> chain_stream_query.TradesFilter: + """ + This method is deprecated and will be removed soon. Please use `chain_stream_trades_v2_filter` instead + """ + warn("This method is deprecated. Use chain_stream_trades_v2_filter instead", DeprecationWarning, stacklevel=2) + subaccount_ids = subaccount_ids or ["*"] market_ids = market_ids or ["*"] return chain_stream_query.TradesFilter(subaccount_ids=subaccount_ids, market_ids=market_ids) @@ -2217,6 +2750,11 @@ def chain_stream_orders_filter( subaccount_ids: Optional[List[str]] = None, market_ids: Optional[List[str]] = None, ) -> chain_stream_query.OrdersFilter: + """ + This method is deprecated and will be removed soon. Please use `chain_stream_orders_v2_filter` instead + """ + warn("This method is deprecated. Use chain_stream_orders_v2_filter instead", DeprecationWarning, stacklevel=2) + subaccount_ids = subaccount_ids or ["*"] market_ids = market_ids or ["*"] return chain_stream_query.OrdersFilter(subaccount_ids=subaccount_ids, market_ids=market_ids) @@ -2225,6 +2763,13 @@ def chain_stream_orderbooks_filter( self, market_ids: Optional[List[str]] = None, ) -> chain_stream_query.OrderbookFilter: + """ + This method is deprecated and will be removed soon. Please use `chain_stream_orderbooks_v2_filter` instead + """ + warn( + "This method is deprecated. Use chain_stream_orderbooks_v2_filter instead", DeprecationWarning, stacklevel=2 + ) + market_ids = market_ids or ["*"] return chain_stream_query.OrderbookFilter(market_ids=market_ids) @@ -2233,6 +2778,13 @@ def chain_stream_positions_filter( subaccount_ids: Optional[List[str]] = None, market_ids: Optional[List[str]] = None, ) -> chain_stream_query.PositionsFilter: + """ + This method is deprecated and will be removed soon. Please use `chain_stream_positions_v2_filter` instead + """ + warn( + "This method is deprecated. Use chain_stream_positions_v2_filter instead", DeprecationWarning, stacklevel=2 + ) + subaccount_ids = subaccount_ids or ["*"] market_ids = market_ids or ["*"] return chain_stream_query.PositionsFilter(subaccount_ids=subaccount_ids, market_ids=market_ids) @@ -2241,9 +2793,74 @@ def chain_stream_oracle_price_filter( self, symbols: Optional[List[str]] = None, ) -> chain_stream_query.PositionsFilter: + """ + This method is deprecated and will be removed soon. Please use `chain_stream_oracle_price_v2_filter` instead + """ + warn( + "This method is deprecated. Use chain_stream_oracle_price_v2_filter instead", + DeprecationWarning, + stacklevel=2, + ) + symbols = symbols or ["*"] return chain_stream_query.OraclePriceFilter(symbol=symbols) + def chain_stream_bank_balances_v2_filter( + self, accounts: Optional[List[str]] = None + ) -> chain_stream_v2_query.BankBalancesFilter: + accounts = accounts or ["*"] + return chain_stream_v2_query.BankBalancesFilter(accounts=accounts) + + def chain_stream_subaccount_deposits_v2_filter( + self, + subaccount_ids: Optional[List[str]] = None, + ) -> chain_stream_v2_query.SubaccountDepositsFilter: + subaccount_ids = subaccount_ids or ["*"] + return chain_stream_v2_query.SubaccountDepositsFilter(subaccount_ids=subaccount_ids) + + def chain_stream_trades_v2_filter( + self, + subaccount_ids: Optional[List[str]] = None, + market_ids: Optional[List[str]] = None, + ) -> chain_stream_v2_query.TradesFilter: + subaccount_ids = subaccount_ids or ["*"] + market_ids = market_ids or ["*"] + return chain_stream_v2_query.TradesFilter(subaccount_ids=subaccount_ids, market_ids=market_ids) + + def chain_stream_orders_v2_filter( + self, + subaccount_ids: Optional[List[str]] = None, + market_ids: Optional[List[str]] = None, + ) -> chain_stream_v2_query.OrdersFilter: + subaccount_ids = subaccount_ids or ["*"] + market_ids = market_ids or ["*"] + return chain_stream_v2_query.OrdersFilter(subaccount_ids=subaccount_ids, market_ids=market_ids) + + def chain_stream_orderbooks_v2_filter( + self, + market_ids: Optional[List[str]] = None, + ) -> chain_stream_v2_query.OrderbookFilter: + market_ids = market_ids or ["*"] + return chain_stream_v2_query.OrderbookFilter(market_ids=market_ids) + + def chain_stream_positions_v2_filter( + self, + subaccount_ids: Optional[List[str]] = None, + market_ids: Optional[List[str]] = None, + ) -> chain_stream_v2_query.PositionsFilter: + subaccount_ids = subaccount_ids or ["*"] + market_ids = market_ids or ["*"] + return chain_stream_v2_query.PositionsFilter(subaccount_ids=subaccount_ids, market_ids=market_ids) + + def chain_stream_oracle_price_v2_filter( + self, + symbols: Optional[List[str]] = None, + ) -> chain_stream_v2_query.PositionsFilter: + symbols = symbols or ["*"] + return chain_stream_v2_query.OraclePriceFilter(symbol=symbols) + + # endregion + # ------------------------------------------------ # region Distribution module's messages @@ -2252,30 +2869,11 @@ def msg_set_withdraw_address(self, delegator_address: str, withdraw_address: str delegator_address=delegator_address, withdraw_address=withdraw_address ) - # Deprecated - def MsgWithdrawDelegatorReward(self, delegator_address: str, validator_address: str): - """ - This method is deprecated and will be removed soon. Please use `msg_withdraw_delegator_reward` instead - """ - warn("This method is deprecated. Use msg_withdraw_delegator_reward instead", DeprecationWarning, stacklevel=2) - return cosmos_distribution_tx_pb.MsgWithdrawDelegatorReward( - delegator_address=delegator_address, validator_address=validator_address - ) - def msg_withdraw_delegator_reward(self, delegator_address: str, validator_address: str): return cosmos_distribution_tx_pb.MsgWithdrawDelegatorReward( delegator_address=delegator_address, validator_address=validator_address ) - def MsgWithdrawValidatorCommission(self, validator_address: str): - """ - This method is deprecated and will be removed soon. Please use `msg_withdraw_validator_commission` instead - """ - warn( - "This method is deprecated. Use msg_withdraw_validator_commission instead", DeprecationWarning, stacklevel=2 - ) - return cosmos_distribution_tx_pb.MsgWithdrawValidatorCommission(validator_address=validator_address) - def msg_withdraw_validator_commission(self, validator_address: str): return cosmos_distribution_tx_pb.MsgWithdrawValidatorCommission(validator_address=validator_address) @@ -2292,6 +2890,8 @@ def msg_update_distribution_params(self, authority: str, community_tax: str, wit def msg_community_pool_spend(self, authority: str, recipient: str, amount: List[base_coin_pb.Coin]): return cosmos_distribution_tx_pb.MsgCommunityPoolSpend(authority=authority, recipient=recipient, amount=amount) + # endregion + # region IBC Transfer module def msg_ibc_transfer( self, @@ -2428,69 +3028,10 @@ def MsgResponses(response, simulation=False): data = response.result if not simulation: data = bytes.fromhex(data) - # fmt: off - header_map = { - "/injective.exchange.v1beta1.MsgCreateSpotLimitOrderResponse": - injective_exchange_tx_pb.MsgCreateSpotLimitOrderResponse, - "/injective.exchange.v1beta1.MsgCreateSpotMarketOrderResponse": - injective_exchange_tx_pb.MsgCreateSpotMarketOrderResponse, - "/injective.exchange.v1beta1.MsgCreateDerivativeLimitOrderResponse": - injective_exchange_tx_pb.MsgCreateDerivativeLimitOrderResponse, - "/injective.exchange.v1beta1.MsgCreateDerivativeMarketOrderResponse": - injective_exchange_tx_pb.MsgCreateDerivativeMarketOrderResponse, - "/injective.exchange.v1beta1.MsgCancelSpotOrderResponse": - injective_exchange_tx_pb.MsgCancelSpotOrderResponse, - "/injective.exchange.v1beta1.MsgCancelDerivativeOrderResponse": - injective_exchange_tx_pb.MsgCancelDerivativeOrderResponse, - "/injective.exchange.v1beta1.MsgBatchCancelSpotOrdersResponse": - injective_exchange_tx_pb.MsgBatchCancelSpotOrdersResponse, - "/injective.exchange.v1beta1.MsgBatchCancelDerivativeOrdersResponse": - injective_exchange_tx_pb.MsgBatchCancelDerivativeOrdersResponse, - "/injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrdersResponse": - injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrdersResponse, - "/injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrdersResponse": - injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrdersResponse, - "/injective.exchange.v1beta1.MsgBatchUpdateOrdersResponse": - injective_exchange_tx_pb.MsgBatchUpdateOrdersResponse, - "/injective.exchange.v1beta1.MsgDepositResponse": - injective_exchange_tx_pb.MsgDepositResponse, - "/injective.exchange.v1beta1.MsgWithdrawResponse": - injective_exchange_tx_pb.MsgWithdrawResponse, - "/injective.exchange.v1beta1.MsgSubaccountTransferResponse": - injective_exchange_tx_pb.MsgSubaccountTransferResponse, - "/injective.exchange.v1beta1.MsgLiquidatePositionResponse": - injective_exchange_tx_pb.MsgLiquidatePositionResponse, - "/injective.exchange.v1beta1.MsgIncreasePositionMarginResponse": - injective_exchange_tx_pb.MsgIncreasePositionMarginResponse, - "/injective.auction.v1beta1.MsgBidResponse": - injective_auction_tx_pb.MsgBidResponse, - "/injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrderResponse": - injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrderResponse, - "/injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrderResponse": - injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrderResponse, - "/injective.exchange.v1beta1.MsgCancelBinaryOptionsOrderResponse": - injective_exchange_tx_pb.MsgCancelBinaryOptionsOrderResponse, - "/injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarketResponse": - injective_exchange_tx_pb.MsgAdminUpdateBinaryOptionsMarketResponse, - "/injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunchResponse": - injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunchResponse, - "/cosmos.bank.v1beta1.MsgSendResponse": - cosmos_bank_tx_pb.MsgSendResponse, - "/cosmos.authz.v1beta1.MsgGrantResponse": - cosmos_authz_tx_pb.MsgGrantResponse, - "/cosmos.authz.v1beta1.MsgExecResponse": - cosmos_authz_tx_pb.MsgExecResponse, - "/cosmos.authz.v1beta1.MsgRevokeResponse": - cosmos_authz_tx_pb.MsgRevokeResponse, - "/injective.oracle.v1beta1.MsgRelayPriceFeedPriceResponse": - injective_oracle_tx_pb.MsgRelayPriceFeedPriceResponse, - "/injective.oracle.v1beta1.MsgRelayProviderPricesResponse": - injective_oracle_tx_pb.MsgRelayProviderPrices, - } - # fmt: on + msgs = [] for msg in data.msg_responses: - msgs.append(header_map[msg.type_url].FromString(msg.value)) + msgs.append(GRPC_RESPONSE_TYPE_TO_CLASS_MAP[msg.type_url].FromString(msg.value)) return msgs @@ -2552,19 +3093,19 @@ def _order_mask(self, is_conditional: bool, is_buy: bool, is_market_order: bool) order_mask = 0 if is_conditional: - order_mask += injective_exchange_pb.OrderMask.CONDITIONAL + order_mask += injective_order_v2_pb.OrderMask.CONDITIONAL else: - order_mask += injective_exchange_pb.OrderMask.REGULAR + order_mask += injective_order_v2_pb.OrderMask.REGULAR if is_buy: - order_mask += injective_exchange_pb.OrderMask.DIRECTION_BUY_OR_HIGHER + order_mask += injective_order_v2_pb.OrderMask.DIRECTION_BUY_OR_HIGHER else: - order_mask += injective_exchange_pb.OrderMask.DIRECTION_SELL_OR_LOWER + order_mask += injective_order_v2_pb.OrderMask.DIRECTION_SELL_OR_LOWER if is_market_order: - order_mask += injective_exchange_pb.OrderMask.TYPE_MARKET + order_mask += injective_order_v2_pb.OrderMask.TYPE_MARKET else: - order_mask += injective_exchange_pb.OrderMask.TYPE_LIMIT + order_mask += injective_order_v2_pb.OrderMask.TYPE_LIMIT if order_mask == 0: order_mask = 1 @@ -2583,6 +3124,11 @@ def _basic_derivative_order( cid: Optional[str] = None, chain_trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.DerivativeOrder: + """ + This method is deprecated and will be removed soon. Please use `_basic_derivative_order_v2` instead + """ + warn("This method is deprecated. Use _basic_derivative_order_v2 instead", DeprecationWarning, stacklevel=2) + formatted_quantity = f"{chain_quantity.normalize():f}" formatted_price = f"{chain_price.normalize():f}" formatted_margin = f"{chain_margin.normalize():f}" @@ -2605,3 +3151,36 @@ def _basic_derivative_order( margin=formatted_margin, trigger_price=formatted_trigger_price, ) + + def _basic_derivative_order_v2( + self, + market_id: str, + subaccount_id: str, + fee_recipient: str, + price: Decimal, + quantity: Decimal, + margin: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + ) -> injective_order_v2_pb.DerivativeOrder: + trigger_price = trigger_price or Decimal(0) + chain_quantity = f"{Token.convert_value_to_extended_decimal_format(value=quantity).normalize():f}" + chain_price = f"{Token.convert_value_to_extended_decimal_format(value=price).normalize():f}" + chain_margin = f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}" + chain_trigger_price = f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}" + chain_order_type = injective_order_v2_pb.OrderType.Value(order_type) + + return injective_order_v2_pb.DerivativeOrder( + market_id=market_id, + order_info=injective_order_v2_pb.OrderInfo( + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=chain_price, + quantity=chain_quantity, + cid=cid, + ), + order_type=chain_order_type, + margin=chain_margin, + trigger_price=chain_trigger_price, + ) diff --git a/pyinjective/constant.py b/pyinjective/constant.py index 07916429..3ebc11ba 100644 --- a/pyinjective/constant.py +++ b/pyinjective/constant.py @@ -1,5 +1,5 @@ GAS_PRICE = 160_000_000 -GAS_FEE_BUFFER_AMOUNT = 25_000 +GAS_FEE_BUFFER_AMOUNT = 30_000 MAX_MEMO_CHARACTERS = 256 ADDITIONAL_CHAIN_FORMAT_DECIMALS = 18 TICKER_TOKENS_SEPARATOR = "/" diff --git a/pyinjective/core/market.py b/pyinjective/core/market.py index 3824232f..01dc3455 100644 --- a/pyinjective/core/market.py +++ b/pyinjective/core/market.py @@ -22,17 +22,17 @@ class SpotMarket: min_notional: Decimal def quantity_to_chain_format(self, human_readable_value: Decimal) -> Decimal: - chain_formatted_value = human_readable_value * Decimal(f"1e{self.base_token.decimals}") - quantized_value = chain_formatted_value // self.min_quantity_tick_size * self.min_quantity_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_value = human_readable_value // self.min_quantity_tick_size * self.min_quantity_tick_size + chain_formatted_value = quantized_value * Decimal(f"1e{self.base_token.decimals}") + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value def price_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + quantized_value = (human_readable_value // self.min_price_tick_size) * self.min_price_tick_size decimals = self.quote_token.decimals - self.base_token.decimals - chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - quantized_value = (chain_formatted_value // self.min_price_tick_size) * self.min_price_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_formatted_value = quantized_value * Decimal(f"1e{decimals}") + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value @@ -87,17 +87,17 @@ class DerivativeMarket: def quantity_to_chain_format(self, human_readable_value: Decimal) -> Decimal: # Derivative markets do not have a base market to provide the number of decimals - chain_formatted_value = human_readable_value - quantized_value = chain_formatted_value // self.min_quantity_tick_size * self.min_quantity_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_value = human_readable_value // self.min_quantity_tick_size * self.min_quantity_tick_size + chain_formatted_value = quantized_value + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value def price_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + quantized_value = (human_readable_value // self.min_price_tick_size) * self.min_price_tick_size decimals = self.quote_token.decimals - chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - quantized_value = (chain_formatted_value // self.min_price_tick_size) * self.min_price_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_formatted_value = quantized_value * Decimal(f"1e{decimals}") + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value @@ -107,15 +107,12 @@ def margin_to_chain_format(self, human_readable_value: Decimal) -> Decimal: def calculate_margin_in_chain_format( self, human_readable_quantity: Decimal, human_readable_price: Decimal, leverage: Decimal ) -> Decimal: - chain_formatted_quantity = human_readable_quantity - chain_formatted_price = human_readable_price * Decimal(f"1e{self.quote_token.decimals}") - margin = (chain_formatted_price * chain_formatted_quantity) / leverage + margin = (human_readable_price * human_readable_quantity) / leverage # We are using the min_quantity_tick_size to quantize the margin because that is the way margin is validated # in the chain (it might be changed to a min_notional in the future) quantized_margin = (margin // self.min_quantity_tick_size) * self.min_quantity_tick_size - extended_chain_formatted_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - return extended_chain_formatted_margin + return self.notional_to_chain_format(human_readable_value=quantized_margin) def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: decimals = self.quote_token.decimals @@ -178,18 +175,18 @@ def quantity_to_chain_format(self, human_readable_value: Decimal, special_denom: min_quantity_tick_size = ( self.min_quantity_tick_size if special_denom is None else special_denom.min_quantity_tick_size ) - chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - quantized_value = chain_formatted_value // min_quantity_tick_size * min_quantity_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_value = human_readable_value // min_quantity_tick_size * min_quantity_tick_size + chain_formatted_value = quantized_value * Decimal(f"1e{decimals}") + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value def price_to_chain_format(self, human_readable_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal: decimals = self.quote_token.decimals if special_denom is None else special_denom.quote min_price_tick_size = self.min_price_tick_size if special_denom is None else special_denom.min_price_tick_size - chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - quantized_value = (chain_formatted_value // min_price_tick_size) * min_price_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_value = (human_readable_value // min_price_tick_size) * min_price_tick_size + chain_formatted_value = quantized_value * Decimal(f"1e{decimals}") + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value @@ -198,9 +195,9 @@ def margin_to_chain_format(self, human_readable_value: Decimal, special_denom: O min_quantity_tick_size = ( self.min_quantity_tick_size if special_denom is None else special_denom.min_quantity_tick_size ) - chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - quantized_value = (chain_formatted_value // min_quantity_tick_size) * min_quantity_tick_size - extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_value = (human_readable_value // min_quantity_tick_size) * min_quantity_tick_size + chain_formatted_value = quantized_value * Decimal(f"1e{decimals}") + extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value @@ -211,19 +208,17 @@ def calculate_margin_in_chain_format( is_buy: bool, special_denom: Optional[Denom] = None, ) -> Decimal: - quantity_decimals = 0 if special_denom is None else special_denom.base - price_decimals = self.quote_token.decimals if special_denom is None else special_denom.quote + quote_decimals = self.quote_token.decimals if special_denom is None else special_denom.quote min_quantity_tick_size = ( self.min_quantity_tick_size if special_denom is None else special_denom.min_quantity_tick_size ) price = human_readable_price if is_buy else 1 - human_readable_price - chain_formatted_quantity = human_readable_quantity * Decimal(f"1e{quantity_decimals}") - chain_formatted_price = price * Decimal(f"1e{price_decimals}") - margin = chain_formatted_price * chain_formatted_quantity + margin = price * human_readable_quantity # We are using the min_quantity_tick_size to quantize the margin because that is the way margin is validated # in the chain (it might be changed to a min_notional in the future) quantized_margin = (margin // min_quantity_tick_size) * min_quantity_tick_size - extended_chain_formatted_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_formatted_margin = quantized_margin * Decimal(f"1e{quote_decimals}") + extended_chain_formatted_margin = chain_formatted_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_margin diff --git a/pyinjective/core/network.py b/pyinjective/core/network.py index 2fdf91fe..f83c3e4a 100644 --- a/pyinjective/core/network.py +++ b/pyinjective/core/network.py @@ -2,7 +2,6 @@ from abc import ABC, abstractmethod from http.cookies import SimpleCookie from typing import List, Optional -from warnings import warn import grpc from grpc import ChannelCredentials @@ -119,20 +118,11 @@ def __init__( exchange_cookie_assistant: CookieAssistant, explorer_cookie_assistant: CookieAssistant, official_tokens_list_url: str, - use_secure_connection: Optional[bool] = None, grpc_channel_credentials: Optional[ChannelCredentials] = None, grpc_exchange_channel_credentials: Optional[ChannelCredentials] = None, grpc_explorer_channel_credentials: Optional[ChannelCredentials] = None, chain_stream_channel_credentials: Optional[ChannelCredentials] = None, ): - # the `use_secure_connection` parameter is ignored and will be deprecated soon. - if use_secure_connection is not None: - warn( - "use_secure_connection parameter in Network is no longer used and will be deprecated", - DeprecationWarning, - stacklevel=2, - ) - self.lcd_endpoint = lcd_endpoint self.tm_websocket_endpoint = tm_websocket_endpoint self.grpc_endpoint = grpc_endpoint @@ -299,20 +289,11 @@ def custom( chain_cookie_assistant: Optional[CookieAssistant] = None, exchange_cookie_assistant: Optional[CookieAssistant] = None, explorer_cookie_assistant: Optional[CookieAssistant] = None, - use_secure_connection: Optional[bool] = None, grpc_channel_credentials: Optional[ChannelCredentials] = None, grpc_exchange_channel_credentials: Optional[ChannelCredentials] = None, grpc_explorer_channel_credentials: Optional[ChannelCredentials] = None, chain_stream_channel_credentials: Optional[ChannelCredentials] = None, ): - # the `use_secure_connection` parameter is ignored and will be deprecated soon. - if use_secure_connection is not None: - warn( - "use_secure_connection parameter in Network is no longer used and will be deprecated", - DeprecationWarning, - stacklevel=2, - ) - chain_assistant = chain_cookie_assistant or DisabledCookieAssistant() exchange_assistant = exchange_cookie_assistant or DisabledCookieAssistant() explorer_assistant = explorer_cookie_assistant or DisabledCookieAssistant() diff --git a/pyinjective/proto/cosmwasm/wasm/v1/ibc_pb2.py b/pyinjective/proto/cosmwasm/wasm/v1/ibc_pb2.py index a0548a24..3a33a9c2 100644 --- a/pyinjective/proto/cosmwasm/wasm/v1/ibc_pb2.py +++ b/pyinjective/proto/cosmwasm/wasm/v1/ibc_pb2.py @@ -15,7 +15,7 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63osmwasm/wasm/v1/ibc.proto\x12\x10\x63osmwasm.wasm.v1\x1a\x14gogoproto/gogo.proto\"\xe2\x01\n\nMsgIBCSend\x12\x33\n\x07\x63hannel\x18\x02 \x01(\tB\x19\xf2\xde\x1f\x15yaml:\"source_channel\"R\x07\x63hannel\x12@\n\x0etimeout_height\x18\x04 \x01(\x04\x42\x19\xf2\xde\x1f\x15yaml:\"timeout_height\"R\rtimeoutHeight\x12I\n\x11timeout_timestamp\x18\x05 \x01(\x04\x42\x1c\xf2\xde\x1f\x18yaml:\"timeout_timestamp\"R\x10timeoutTimestamp\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\"0\n\x12MsgIBCSendResponse\x12\x1a\n\x08sequence\x18\x01 \x01(\x04R\x08sequence\"I\n\x12MsgIBCCloseChannel\x12\x33\n\x07\x63hannel\x18\x02 \x01(\tB\x19\xf2\xde\x1f\x15yaml:\"source_channel\"R\x07\x63hannelB\xae\x01\n\x14\x63om.cosmwasm.wasm.v1B\x08IbcProtoP\x01Z&github.com/CosmWasm/wasmd/x/wasm/types\xa2\x02\x03\x43WX\xaa\x02\x10\x43osmwasm.Wasm.V1\xca\x02\x10\x43osmwasm\\Wasm\\V1\xe2\x02\x1c\x43osmwasm\\Wasm\\V1\\GPBMetadata\xea\x02\x12\x43osmwasm::Wasm::V1\xc8\xe1\x1e\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63osmwasm/wasm/v1/ibc.proto\x12\x10\x63osmwasm.wasm.v1\x1a\x14gogoproto/gogo.proto\"\xe2\x01\n\nMsgIBCSend\x12\x33\n\x07\x63hannel\x18\x02 \x01(\tB\x19\xf2\xde\x1f\x15yaml:\"source_channel\"R\x07\x63hannel\x12@\n\x0etimeout_height\x18\x04 \x01(\x04\x42\x19\xf2\xde\x1f\x15yaml:\"timeout_height\"R\rtimeoutHeight\x12I\n\x11timeout_timestamp\x18\x05 \x01(\x04\x42\x1c\xf2\xde\x1f\x18yaml:\"timeout_timestamp\"R\x10timeoutTimestamp\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\"0\n\x12MsgIBCSendResponse\x12\x1a\n\x08sequence\x18\x01 \x01(\x04R\x08sequence\"$\n\"MsgIBCWriteAcknowledgementResponse\"I\n\x12MsgIBCCloseChannel\x12\x33\n\x07\x63hannel\x18\x02 \x01(\tB\x19\xf2\xde\x1f\x15yaml:\"source_channel\"R\x07\x63hannelB\xae\x01\n\x14\x63om.cosmwasm.wasm.v1B\x08IbcProtoP\x01Z&github.com/CosmWasm/wasmd/x/wasm/types\xa2\x02\x03\x43WX\xaa\x02\x10\x43osmwasm.Wasm.V1\xca\x02\x10\x43osmwasm\\Wasm\\V1\xe2\x02\x1c\x43osmwasm\\Wasm\\V1\\GPBMetadata\xea\x02\x12\x43osmwasm::Wasm::V1\xc8\xe1\x1e\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,6 +35,8 @@ _globals['_MSGIBCSEND']._serialized_end=297 _globals['_MSGIBCSENDRESPONSE']._serialized_start=299 _globals['_MSGIBCSENDRESPONSE']._serialized_end=347 - _globals['_MSGIBCCLOSECHANNEL']._serialized_start=349 - _globals['_MSGIBCCLOSECHANNEL']._serialized_end=422 + _globals['_MSGIBCWRITEACKNOWLEDGEMENTRESPONSE']._serialized_start=349 + _globals['_MSGIBCWRITEACKNOWLEDGEMENTRESPONSE']._serialized_end=385 + _globals['_MSGIBCCLOSECHANNEL']._serialized_start=387 + _globals['_MSGIBCCLOSECHANNEL']._serialized_end=460 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmwasm/wasm/v1/query_pb2.py b/pyinjective/proto/cosmwasm/wasm/v1/query_pb2.py index 6defc46e..2eddc270 100644 --- a/pyinjective/proto/cosmwasm/wasm/v1/query_pb2.py +++ b/pyinjective/proto/cosmwasm/wasm/v1/query_pb2.py @@ -16,11 +16,12 @@ from pyinjective.proto.cosmwasm.wasm.v1 import types_pb2 as cosmwasm_dot_wasm_dot_v1_dot_types__pb2 from pyinjective.proto.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from pyinjective.proto.cosmos.base.query.v1beta1 import pagination_pb2 as cosmos_dot_base_dot_query_dot_v1beta1_dot_pagination__pb2 +from pyinjective.proto.cosmos.query.v1 import query_pb2 as cosmos_dot_query_dot_v1_dot_query__pb2 from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63osmwasm/wasm/v1/query.proto\x12\x10\x63osmwasm.wasm.v1\x1a\x14gogoproto/gogo.proto\x1a\x1c\x63osmwasm/wasm/v1/types.proto\x1a\x1cgoogle/api/annotations.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x11\x61mino/amino.proto\x1a\x19\x63osmos_proto/cosmos.proto\"N\n\x18QueryContractInfoRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"\xad\x01\n\x19QueryContractInfoResponse\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12V\n\rcontract_info\x18\x02 \x01(\x0b\x32\x1e.cosmwasm.wasm.v1.ContractInfoB\x11\xc8\xde\x1f\x00\xd0\xde\x1f\x01\xea\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0c\x63ontractInfo:\x04\xe8\xa0\x1f\x01\"\x99\x01\n\x1bQueryContractHistoryRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xb8\x01\n\x1cQueryContractHistoryResponse\x12O\n\x07\x65ntries\x18\x01 \x03(\x0b\x32*.cosmwasm.wasm.v1.ContractCodeHistoryEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"~\n\x1bQueryContractsByCodeRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\x9f\x01\n\x1cQueryContractsByCodeResponse\x12\x36\n\tcontracts\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tcontracts\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\x9a\x01\n\x1cQueryAllContractStateRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xa4\x01\n\x1dQueryAllContractStateResponse\x12:\n\x06models\x18\x01 \x03(\x0b\x32\x17.cosmwasm.wasm.v1.ModelB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06models\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"q\n\x1cQueryRawContractStateRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x1d\n\nquery_data\x18\x02 \x01(\x0cR\tqueryData\"3\n\x1dQueryRawContractStateResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\"\x9b\x01\n\x1eQuerySmartContractStateRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x45\n\nquery_data\x18\x02 \x01(\x0c\x42&\xfa\xde\x1f\x12RawContractMessage\x9a\xe7\xb0*\x0binline_jsonR\tqueryData\"]\n\x1fQuerySmartContractStateResponse\x12:\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42&\xfa\xde\x1f\x12RawContractMessage\x9a\xe7\xb0*\x0binline_jsonR\x04\x64\x61ta\"+\n\x10QueryCodeRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\"\xb8\x02\n\x10\x43odeInfoResponse\x12)\n\x07\x63ode_id\x18\x01 \x01(\x04\x42\x10\xe2\xde\x1f\x06\x43odeID\xea\xde\x1f\x02idR\x06\x63odeId\x12\x32\n\x07\x63reator\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x63reator\x12Q\n\tdata_hash\x18\x03 \x01(\x0c\x42\x34\xfa\xde\x1f\x30github.com/cometbft/cometbft/libs/bytes.HexBytesR\x08\x64\x61taHash\x12`\n\x16instantiate_permission\x18\x06 \x01(\x0b\x32\x1e.cosmwasm.wasm.v1.AccessConfigB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x15instantiatePermission:\x04\xe8\xa0\x1f\x01J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\x82\x01\n\x11QueryCodeResponse\x12I\n\tcode_info\x18\x01 \x01(\x0b\x32\".cosmwasm.wasm.v1.CodeInfoResponseB\x08\xd0\xde\x1f\x01\xea\xde\x1f\x00R\x08\x63odeInfo\x12\x1c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x08\xea\xde\x1f\x04\x64\x61taR\x04\x64\x61ta:\x04\xe8\xa0\x1f\x01\"[\n\x11QueryCodesRequest\x12\x46\n\npagination\x18\x01 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xab\x01\n\x12QueryCodesResponse\x12L\n\ncode_infos\x18\x01 \x03(\x0b\x32\".cosmwasm.wasm.v1.CodeInfoResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\tcodeInfos\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"a\n\x17QueryPinnedCodesRequest\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\x8b\x01\n\x18QueryPinnedCodesResponse\x12&\n\x08\x63ode_ids\x18\x01 \x03(\x04\x42\x0b\xe2\xde\x1f\x07\x43odeIDsR\x07\x63odeIds\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\x14\n\x12QueryParamsRequest\"R\n\x13QueryParamsResponse\x12;\n\x06params\x18\x01 \x01(\x0b\x32\x18.cosmwasm.wasm.v1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params\"\xab\x01\n\x1eQueryContractsByCreatorRequest\x12\x41\n\x0f\x63reator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0e\x63reatorAddress\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xb3\x01\n\x1fQueryContractsByCreatorResponse\x12G\n\x12\x63ontract_addresses\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x11\x63ontractAddresses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xab\x01\n\x18QueryBuildAddressRequest\x12\x1b\n\tcode_hash\x18\x01 \x01(\tR\x08\x63odeHash\x12\x41\n\x0f\x63reator_address\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0e\x63reatorAddress\x12\x12\n\x04salt\x18\x03 \x01(\tR\x04salt\x12\x1b\n\tinit_args\x18\x04 \x01(\x0cR\x08initArgs\"O\n\x19QueryBuildAddressResponse\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress2\xdf\x0e\n\x05Query\x12\x95\x01\n\x0c\x43ontractInfo\x12*.cosmwasm.wasm.v1.QueryContractInfoRequest\x1a+.cosmwasm.wasm.v1.QueryContractInfoResponse\",\x82\xd3\xe4\x93\x02&\x12$/cosmwasm/wasm/v1/contract/{address}\x12\xa6\x01\n\x0f\x43ontractHistory\x12-.cosmwasm.wasm.v1.QueryContractHistoryRequest\x1a..cosmwasm.wasm.v1.QueryContractHistoryResponse\"4\x82\xd3\xe4\x93\x02.\x12,/cosmwasm/wasm/v1/contract/{address}/history\x12\xa4\x01\n\x0f\x43ontractsByCode\x12-.cosmwasm.wasm.v1.QueryContractsByCodeRequest\x1a..cosmwasm.wasm.v1.QueryContractsByCodeResponse\"2\x82\xd3\xe4\x93\x02,\x12*/cosmwasm/wasm/v1/code/{code_id}/contracts\x12\xa7\x01\n\x10\x41llContractState\x12..cosmwasm.wasm.v1.QueryAllContractStateRequest\x1a/.cosmwasm.wasm.v1.QueryAllContractStateResponse\"2\x82\xd3\xe4\x93\x02,\x12*/cosmwasm/wasm/v1/contract/{address}/state\x12\xb2\x01\n\x10RawContractState\x12..cosmwasm.wasm.v1.QueryRawContractStateRequest\x1a/.cosmwasm.wasm.v1.QueryRawContractStateResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/cosmwasm/wasm/v1/contract/{address}/raw/{query_data}\x12\xba\x01\n\x12SmartContractState\x12\x30.cosmwasm.wasm.v1.QuerySmartContractStateRequest\x1a\x31.cosmwasm.wasm.v1.QuerySmartContractStateResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/cosmwasm/wasm/v1/contract/{address}/smart/{query_data}\x12y\n\x04\x43ode\x12\".cosmwasm.wasm.v1.QueryCodeRequest\x1a#.cosmwasm.wasm.v1.QueryCodeResponse\"(\x82\xd3\xe4\x93\x02\"\x12 /cosmwasm/wasm/v1/code/{code_id}\x12r\n\x05\x43odes\x12#.cosmwasm.wasm.v1.QueryCodesRequest\x1a$.cosmwasm.wasm.v1.QueryCodesResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/cosmwasm/wasm/v1/code\x12\x8c\x01\n\x0bPinnedCodes\x12).cosmwasm.wasm.v1.QueryPinnedCodesRequest\x1a*.cosmwasm.wasm.v1.QueryPinnedCodesResponse\"&\x82\xd3\xe4\x93\x02 \x12\x1e/cosmwasm/wasm/v1/codes/pinned\x12}\n\x06Params\x12$.cosmwasm.wasm.v1.QueryParamsRequest\x1a%.cosmwasm.wasm.v1.QueryParamsResponse\"&\x82\xd3\xe4\x93\x02 \x12\x1e/cosmwasm/wasm/v1/codes/params\x12\xb8\x01\n\x12\x43ontractsByCreator\x12\x30.cosmwasm.wasm.v1.QueryContractsByCreatorRequest\x1a\x31.cosmwasm.wasm.v1.QueryContractsByCreatorResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/cosmwasm/wasm/v1/contracts/creator/{creator_address}\x12\x99\x01\n\x0c\x42uildAddress\x12*.cosmwasm.wasm.v1.QueryBuildAddressRequest\x1a+.cosmwasm.wasm.v1.QueryBuildAddressResponse\"0\x82\xd3\xe4\x93\x02*\x12(/cosmwasm/wasm/v1/contract/build_addressB\xb4\x01\n\x14\x63om.cosmwasm.wasm.v1B\nQueryProtoP\x01Z&github.com/CosmWasm/wasmd/x/wasm/types\xa2\x02\x03\x43WX\xaa\x02\x10\x43osmwasm.Wasm.V1\xca\x02\x10\x43osmwasm\\Wasm\\V1\xe2\x02\x1c\x43osmwasm\\Wasm\\V1\\GPBMetadata\xea\x02\x12\x43osmwasm::Wasm::V1\xc8\xe1\x1e\x00\xa8\xe2\x1e\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63osmwasm/wasm/v1/query.proto\x12\x10\x63osmwasm.wasm.v1\x1a\x14gogoproto/gogo.proto\x1a\x1c\x63osmwasm/wasm/v1/types.proto\x1a\x1cgoogle/api/annotations.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x1b\x63osmos/query/v1/query.proto\x1a\x11\x61mino/amino.proto\x1a\x19\x63osmos_proto/cosmos.proto\"N\n\x18QueryContractInfoRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"\xad\x01\n\x19QueryContractInfoResponse\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12V\n\rcontract_info\x18\x02 \x01(\x0b\x32\x1e.cosmwasm.wasm.v1.ContractInfoB\x11\xc8\xde\x1f\x00\xd0\xde\x1f\x01\xea\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0c\x63ontractInfo:\x04\xe8\xa0\x1f\x01\"\x99\x01\n\x1bQueryContractHistoryRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xb8\x01\n\x1cQueryContractHistoryResponse\x12O\n\x07\x65ntries\x18\x01 \x03(\x0b\x32*.cosmwasm.wasm.v1.ContractCodeHistoryEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"~\n\x1bQueryContractsByCodeRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\x9f\x01\n\x1cQueryContractsByCodeResponse\x12\x36\n\tcontracts\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tcontracts\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\x9a\x01\n\x1cQueryAllContractStateRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xa4\x01\n\x1dQueryAllContractStateResponse\x12:\n\x06models\x18\x01 \x03(\x0b\x32\x17.cosmwasm.wasm.v1.ModelB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06models\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"q\n\x1cQueryRawContractStateRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x1d\n\nquery_data\x18\x02 \x01(\x0cR\tqueryData\"3\n\x1dQueryRawContractStateResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\"\x9b\x01\n\x1eQuerySmartContractStateRequest\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x45\n\nquery_data\x18\x02 \x01(\x0c\x42&\xfa\xde\x1f\x12RawContractMessage\x9a\xe7\xb0*\x0binline_jsonR\tqueryData\"]\n\x1fQuerySmartContractStateResponse\x12:\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42&\xfa\xde\x1f\x12RawContractMessage\x9a\xe7\xb0*\x0binline_jsonR\x04\x64\x61ta\"+\n\x10QueryCodeRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\"\xb8\x02\n\x10\x43odeInfoResponse\x12)\n\x07\x63ode_id\x18\x01 \x01(\x04\x42\x10\xe2\xde\x1f\x06\x43odeID\xea\xde\x1f\x02idR\x06\x63odeId\x12\x32\n\x07\x63reator\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x63reator\x12Q\n\tdata_hash\x18\x03 \x01(\x0c\x42\x34\xfa\xde\x1f\x30github.com/cometbft/cometbft/libs/bytes.HexBytesR\x08\x64\x61taHash\x12`\n\x16instantiate_permission\x18\x06 \x01(\x0b\x32\x1e.cosmwasm.wasm.v1.AccessConfigB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x15instantiatePermission:\x04\xe8\xa0\x1f\x01J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\x82\x01\n\x11QueryCodeResponse\x12I\n\tcode_info\x18\x01 \x01(\x0b\x32\".cosmwasm.wasm.v1.CodeInfoResponseB\x08\xd0\xde\x1f\x01\xea\xde\x1f\x00R\x08\x63odeInfo\x12\x1c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x08\xea\xde\x1f\x04\x64\x61taR\x04\x64\x61ta:\x04\xe8\xa0\x1f\x01\"[\n\x11QueryCodesRequest\x12\x46\n\npagination\x18\x01 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xab\x01\n\x12QueryCodesResponse\x12L\n\ncode_infos\x18\x01 \x03(\x0b\x32\".cosmwasm.wasm.v1.CodeInfoResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\tcodeInfos\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"a\n\x17QueryPinnedCodesRequest\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\x8b\x01\n\x18QueryPinnedCodesResponse\x12&\n\x08\x63ode_ids\x18\x01 \x03(\x04\x42\x0b\xe2\xde\x1f\x07\x43odeIDsR\x07\x63odeIds\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\x14\n\x12QueryParamsRequest\"R\n\x13QueryParamsResponse\x12;\n\x06params\x18\x01 \x01(\x0b\x32\x18.cosmwasm.wasm.v1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params\"\xab\x01\n\x1eQueryContractsByCreatorRequest\x12\x41\n\x0f\x63reator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0e\x63reatorAddress\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xb3\x01\n\x1fQueryContractsByCreatorResponse\x12G\n\x12\x63ontract_addresses\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x11\x63ontractAddresses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xab\x01\n\x18QueryBuildAddressRequest\x12\x1b\n\tcode_hash\x18\x01 \x01(\tR\x08\x63odeHash\x12\x41\n\x0f\x63reator_address\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0e\x63reatorAddress\x12\x12\n\x04salt\x18\x03 \x01(\tR\x04salt\x12\x1b\n\tinit_args\x18\x04 \x01(\x0cR\x08initArgs\"O\n\x19QueryBuildAddressResponse\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress2\x9c\x0f\n\x05Query\x12\x9a\x01\n\x0c\x43ontractInfo\x12*.cosmwasm.wasm.v1.QueryContractInfoRequest\x1a+.cosmwasm.wasm.v1.QueryContractInfoResponse\"1\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02&\x12$/cosmwasm/wasm/v1/contract/{address}\x12\xab\x01\n\x0f\x43ontractHistory\x12-.cosmwasm.wasm.v1.QueryContractHistoryRequest\x1a..cosmwasm.wasm.v1.QueryContractHistoryResponse\"9\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02.\x12,/cosmwasm/wasm/v1/contract/{address}/history\x12\xa9\x01\n\x0f\x43ontractsByCode\x12-.cosmwasm.wasm.v1.QueryContractsByCodeRequest\x1a..cosmwasm.wasm.v1.QueryContractsByCodeResponse\"7\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02,\x12*/cosmwasm/wasm/v1/code/{code_id}/contracts\x12\xac\x01\n\x10\x41llContractState\x12..cosmwasm.wasm.v1.QueryAllContractStateRequest\x1a/.cosmwasm.wasm.v1.QueryAllContractStateResponse\"7\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02,\x12*/cosmwasm/wasm/v1/contract/{address}/state\x12\xb7\x01\n\x10RawContractState\x12..cosmwasm.wasm.v1.QueryRawContractStateRequest\x1a/.cosmwasm.wasm.v1.QueryRawContractStateResponse\"B\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x37\x12\x35/cosmwasm/wasm/v1/contract/{address}/raw/{query_data}\x12\xbf\x01\n\x12SmartContractState\x12\x30.cosmwasm.wasm.v1.QuerySmartContractStateRequest\x1a\x31.cosmwasm.wasm.v1.QuerySmartContractStateResponse\"D\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x39\x12\x37/cosmwasm/wasm/v1/contract/{address}/smart/{query_data}\x12~\n\x04\x43ode\x12\".cosmwasm.wasm.v1.QueryCodeRequest\x1a#.cosmwasm.wasm.v1.QueryCodeResponse\"-\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\"\x12 /cosmwasm/wasm/v1/code/{code_id}\x12w\n\x05\x43odes\x12#.cosmwasm.wasm.v1.QueryCodesRequest\x1a$.cosmwasm.wasm.v1.QueryCodesResponse\"#\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x18\x12\x16/cosmwasm/wasm/v1/code\x12\x91\x01\n\x0bPinnedCodes\x12).cosmwasm.wasm.v1.QueryPinnedCodesRequest\x1a*.cosmwasm.wasm.v1.QueryPinnedCodesResponse\"+\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02 \x12\x1e/cosmwasm/wasm/v1/codes/pinned\x12\x82\x01\n\x06Params\x12$.cosmwasm.wasm.v1.QueryParamsRequest\x1a%.cosmwasm.wasm.v1.QueryParamsResponse\"+\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02 \x12\x1e/cosmwasm/wasm/v1/codes/params\x12\xbd\x01\n\x12\x43ontractsByCreator\x12\x30.cosmwasm.wasm.v1.QueryContractsByCreatorRequest\x1a\x31.cosmwasm.wasm.v1.QueryContractsByCreatorResponse\"B\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x37\x12\x35/cosmwasm/wasm/v1/contracts/creator/{creator_address}\x12\x9e\x01\n\x0c\x42uildAddress\x12*.cosmwasm.wasm.v1.QueryBuildAddressRequest\x1a+.cosmwasm.wasm.v1.QueryBuildAddressResponse\"5\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02*\x12(/cosmwasm/wasm/v1/contract/build_addressB\xb4\x01\n\x14\x63om.cosmwasm.wasm.v1B\nQueryProtoP\x01Z&github.com/CosmWasm/wasmd/x/wasm/types\xa2\x02\x03\x43WX\xaa\x02\x10\x43osmwasm.Wasm.V1\xca\x02\x10\x43osmwasm\\Wasm\\V1\xe2\x02\x1c\x43osmwasm\\Wasm\\V1\\GPBMetadata\xea\x02\x12\x43osmwasm::Wasm::V1\xc8\xe1\x1e\x00\xa8\xe2\x1e\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -85,79 +86,79 @@ _globals['_QUERYBUILDADDRESSRESPONSE'].fields_by_name['address']._loaded_options = None _globals['_QUERYBUILDADDRESSRESPONSE'].fields_by_name['address']._serialized_options = b'\322\264-\024cosmos.AddressString' _globals['_QUERY'].methods_by_name['ContractInfo']._loaded_options = None - _globals['_QUERY'].methods_by_name['ContractInfo']._serialized_options = b'\202\323\344\223\002&\022$/cosmwasm/wasm/v1/contract/{address}' + _globals['_QUERY'].methods_by_name['ContractInfo']._serialized_options = b'\210\347\260*\001\202\323\344\223\002&\022$/cosmwasm/wasm/v1/contract/{address}' _globals['_QUERY'].methods_by_name['ContractHistory']._loaded_options = None - _globals['_QUERY'].methods_by_name['ContractHistory']._serialized_options = b'\202\323\344\223\002.\022,/cosmwasm/wasm/v1/contract/{address}/history' + _globals['_QUERY'].methods_by_name['ContractHistory']._serialized_options = b'\210\347\260*\001\202\323\344\223\002.\022,/cosmwasm/wasm/v1/contract/{address}/history' _globals['_QUERY'].methods_by_name['ContractsByCode']._loaded_options = None - _globals['_QUERY'].methods_by_name['ContractsByCode']._serialized_options = b'\202\323\344\223\002,\022*/cosmwasm/wasm/v1/code/{code_id}/contracts' + _globals['_QUERY'].methods_by_name['ContractsByCode']._serialized_options = b'\210\347\260*\001\202\323\344\223\002,\022*/cosmwasm/wasm/v1/code/{code_id}/contracts' _globals['_QUERY'].methods_by_name['AllContractState']._loaded_options = None - _globals['_QUERY'].methods_by_name['AllContractState']._serialized_options = b'\202\323\344\223\002,\022*/cosmwasm/wasm/v1/contract/{address}/state' + _globals['_QUERY'].methods_by_name['AllContractState']._serialized_options = b'\210\347\260*\001\202\323\344\223\002,\022*/cosmwasm/wasm/v1/contract/{address}/state' _globals['_QUERY'].methods_by_name['RawContractState']._loaded_options = None - _globals['_QUERY'].methods_by_name['RawContractState']._serialized_options = b'\202\323\344\223\0027\0225/cosmwasm/wasm/v1/contract/{address}/raw/{query_data}' + _globals['_QUERY'].methods_by_name['RawContractState']._serialized_options = b'\210\347\260*\001\202\323\344\223\0027\0225/cosmwasm/wasm/v1/contract/{address}/raw/{query_data}' _globals['_QUERY'].methods_by_name['SmartContractState']._loaded_options = None - _globals['_QUERY'].methods_by_name['SmartContractState']._serialized_options = b'\202\323\344\223\0029\0227/cosmwasm/wasm/v1/contract/{address}/smart/{query_data}' + _globals['_QUERY'].methods_by_name['SmartContractState']._serialized_options = b'\210\347\260*\001\202\323\344\223\0029\0227/cosmwasm/wasm/v1/contract/{address}/smart/{query_data}' _globals['_QUERY'].methods_by_name['Code']._loaded_options = None - _globals['_QUERY'].methods_by_name['Code']._serialized_options = b'\202\323\344\223\002\"\022 /cosmwasm/wasm/v1/code/{code_id}' + _globals['_QUERY'].methods_by_name['Code']._serialized_options = b'\210\347\260*\001\202\323\344\223\002\"\022 /cosmwasm/wasm/v1/code/{code_id}' _globals['_QUERY'].methods_by_name['Codes']._loaded_options = None - _globals['_QUERY'].methods_by_name['Codes']._serialized_options = b'\202\323\344\223\002\030\022\026/cosmwasm/wasm/v1/code' + _globals['_QUERY'].methods_by_name['Codes']._serialized_options = b'\210\347\260*\001\202\323\344\223\002\030\022\026/cosmwasm/wasm/v1/code' _globals['_QUERY'].methods_by_name['PinnedCodes']._loaded_options = None - _globals['_QUERY'].methods_by_name['PinnedCodes']._serialized_options = b'\202\323\344\223\002 \022\036/cosmwasm/wasm/v1/codes/pinned' + _globals['_QUERY'].methods_by_name['PinnedCodes']._serialized_options = b'\210\347\260*\001\202\323\344\223\002 \022\036/cosmwasm/wasm/v1/codes/pinned' _globals['_QUERY'].methods_by_name['Params']._loaded_options = None - _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\202\323\344\223\002 \022\036/cosmwasm/wasm/v1/codes/params' + _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\210\347\260*\001\202\323\344\223\002 \022\036/cosmwasm/wasm/v1/codes/params' _globals['_QUERY'].methods_by_name['ContractsByCreator']._loaded_options = None - _globals['_QUERY'].methods_by_name['ContractsByCreator']._serialized_options = b'\202\323\344\223\0027\0225/cosmwasm/wasm/v1/contracts/creator/{creator_address}' + _globals['_QUERY'].methods_by_name['ContractsByCreator']._serialized_options = b'\210\347\260*\001\202\323\344\223\0027\0225/cosmwasm/wasm/v1/contracts/creator/{creator_address}' _globals['_QUERY'].methods_by_name['BuildAddress']._loaded_options = None - _globals['_QUERY'].methods_by_name['BuildAddress']._serialized_options = b'\202\323\344\223\002*\022(/cosmwasm/wasm/v1/contract/build_address' - _globals['_QUERYCONTRACTINFOREQUEST']._serialized_start=222 - _globals['_QUERYCONTRACTINFOREQUEST']._serialized_end=300 - _globals['_QUERYCONTRACTINFORESPONSE']._serialized_start=303 - _globals['_QUERYCONTRACTINFORESPONSE']._serialized_end=476 - _globals['_QUERYCONTRACTHISTORYREQUEST']._serialized_start=479 - _globals['_QUERYCONTRACTHISTORYREQUEST']._serialized_end=632 - _globals['_QUERYCONTRACTHISTORYRESPONSE']._serialized_start=635 - _globals['_QUERYCONTRACTHISTORYRESPONSE']._serialized_end=819 - _globals['_QUERYCONTRACTSBYCODEREQUEST']._serialized_start=821 - _globals['_QUERYCONTRACTSBYCODEREQUEST']._serialized_end=947 - _globals['_QUERYCONTRACTSBYCODERESPONSE']._serialized_start=950 - _globals['_QUERYCONTRACTSBYCODERESPONSE']._serialized_end=1109 - _globals['_QUERYALLCONTRACTSTATEREQUEST']._serialized_start=1112 - _globals['_QUERYALLCONTRACTSTATEREQUEST']._serialized_end=1266 - _globals['_QUERYALLCONTRACTSTATERESPONSE']._serialized_start=1269 - _globals['_QUERYALLCONTRACTSTATERESPONSE']._serialized_end=1433 - _globals['_QUERYRAWCONTRACTSTATEREQUEST']._serialized_start=1435 - _globals['_QUERYRAWCONTRACTSTATEREQUEST']._serialized_end=1548 - _globals['_QUERYRAWCONTRACTSTATERESPONSE']._serialized_start=1550 - _globals['_QUERYRAWCONTRACTSTATERESPONSE']._serialized_end=1601 - _globals['_QUERYSMARTCONTRACTSTATEREQUEST']._serialized_start=1604 - _globals['_QUERYSMARTCONTRACTSTATEREQUEST']._serialized_end=1759 - _globals['_QUERYSMARTCONTRACTSTATERESPONSE']._serialized_start=1761 - _globals['_QUERYSMARTCONTRACTSTATERESPONSE']._serialized_end=1854 - _globals['_QUERYCODEREQUEST']._serialized_start=1856 - _globals['_QUERYCODEREQUEST']._serialized_end=1899 - _globals['_CODEINFORESPONSE']._serialized_start=1902 - _globals['_CODEINFORESPONSE']._serialized_end=2214 - _globals['_QUERYCODERESPONSE']._serialized_start=2217 - _globals['_QUERYCODERESPONSE']._serialized_end=2347 - _globals['_QUERYCODESREQUEST']._serialized_start=2349 - _globals['_QUERYCODESREQUEST']._serialized_end=2440 - _globals['_QUERYCODESRESPONSE']._serialized_start=2443 - _globals['_QUERYCODESRESPONSE']._serialized_end=2614 - _globals['_QUERYPINNEDCODESREQUEST']._serialized_start=2616 - _globals['_QUERYPINNEDCODESREQUEST']._serialized_end=2713 - _globals['_QUERYPINNEDCODESRESPONSE']._serialized_start=2716 - _globals['_QUERYPINNEDCODESRESPONSE']._serialized_end=2855 - _globals['_QUERYPARAMSREQUEST']._serialized_start=2857 - _globals['_QUERYPARAMSREQUEST']._serialized_end=2877 - _globals['_QUERYPARAMSRESPONSE']._serialized_start=2879 - _globals['_QUERYPARAMSRESPONSE']._serialized_end=2961 - _globals['_QUERYCONTRACTSBYCREATORREQUEST']._serialized_start=2964 - _globals['_QUERYCONTRACTSBYCREATORREQUEST']._serialized_end=3135 - _globals['_QUERYCONTRACTSBYCREATORRESPONSE']._serialized_start=3138 - _globals['_QUERYCONTRACTSBYCREATORRESPONSE']._serialized_end=3317 - _globals['_QUERYBUILDADDRESSREQUEST']._serialized_start=3320 - _globals['_QUERYBUILDADDRESSREQUEST']._serialized_end=3491 - _globals['_QUERYBUILDADDRESSRESPONSE']._serialized_start=3493 - _globals['_QUERYBUILDADDRESSRESPONSE']._serialized_end=3572 - _globals['_QUERY']._serialized_start=3575 - _globals['_QUERY']._serialized_end=5462 + _globals['_QUERY'].methods_by_name['BuildAddress']._serialized_options = b'\210\347\260*\001\202\323\344\223\002*\022(/cosmwasm/wasm/v1/contract/build_address' + _globals['_QUERYCONTRACTINFOREQUEST']._serialized_start=251 + _globals['_QUERYCONTRACTINFOREQUEST']._serialized_end=329 + _globals['_QUERYCONTRACTINFORESPONSE']._serialized_start=332 + _globals['_QUERYCONTRACTINFORESPONSE']._serialized_end=505 + _globals['_QUERYCONTRACTHISTORYREQUEST']._serialized_start=508 + _globals['_QUERYCONTRACTHISTORYREQUEST']._serialized_end=661 + _globals['_QUERYCONTRACTHISTORYRESPONSE']._serialized_start=664 + _globals['_QUERYCONTRACTHISTORYRESPONSE']._serialized_end=848 + _globals['_QUERYCONTRACTSBYCODEREQUEST']._serialized_start=850 + _globals['_QUERYCONTRACTSBYCODEREQUEST']._serialized_end=976 + _globals['_QUERYCONTRACTSBYCODERESPONSE']._serialized_start=979 + _globals['_QUERYCONTRACTSBYCODERESPONSE']._serialized_end=1138 + _globals['_QUERYALLCONTRACTSTATEREQUEST']._serialized_start=1141 + _globals['_QUERYALLCONTRACTSTATEREQUEST']._serialized_end=1295 + _globals['_QUERYALLCONTRACTSTATERESPONSE']._serialized_start=1298 + _globals['_QUERYALLCONTRACTSTATERESPONSE']._serialized_end=1462 + _globals['_QUERYRAWCONTRACTSTATEREQUEST']._serialized_start=1464 + _globals['_QUERYRAWCONTRACTSTATEREQUEST']._serialized_end=1577 + _globals['_QUERYRAWCONTRACTSTATERESPONSE']._serialized_start=1579 + _globals['_QUERYRAWCONTRACTSTATERESPONSE']._serialized_end=1630 + _globals['_QUERYSMARTCONTRACTSTATEREQUEST']._serialized_start=1633 + _globals['_QUERYSMARTCONTRACTSTATEREQUEST']._serialized_end=1788 + _globals['_QUERYSMARTCONTRACTSTATERESPONSE']._serialized_start=1790 + _globals['_QUERYSMARTCONTRACTSTATERESPONSE']._serialized_end=1883 + _globals['_QUERYCODEREQUEST']._serialized_start=1885 + _globals['_QUERYCODEREQUEST']._serialized_end=1928 + _globals['_CODEINFORESPONSE']._serialized_start=1931 + _globals['_CODEINFORESPONSE']._serialized_end=2243 + _globals['_QUERYCODERESPONSE']._serialized_start=2246 + _globals['_QUERYCODERESPONSE']._serialized_end=2376 + _globals['_QUERYCODESREQUEST']._serialized_start=2378 + _globals['_QUERYCODESREQUEST']._serialized_end=2469 + _globals['_QUERYCODESRESPONSE']._serialized_start=2472 + _globals['_QUERYCODESRESPONSE']._serialized_end=2643 + _globals['_QUERYPINNEDCODESREQUEST']._serialized_start=2645 + _globals['_QUERYPINNEDCODESREQUEST']._serialized_end=2742 + _globals['_QUERYPINNEDCODESRESPONSE']._serialized_start=2745 + _globals['_QUERYPINNEDCODESRESPONSE']._serialized_end=2884 + _globals['_QUERYPARAMSREQUEST']._serialized_start=2886 + _globals['_QUERYPARAMSREQUEST']._serialized_end=2906 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=2908 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=2990 + _globals['_QUERYCONTRACTSBYCREATORREQUEST']._serialized_start=2993 + _globals['_QUERYCONTRACTSBYCREATORREQUEST']._serialized_end=3164 + _globals['_QUERYCONTRACTSBYCREATORRESPONSE']._serialized_start=3167 + _globals['_QUERYCONTRACTSBYCREATORRESPONSE']._serialized_end=3346 + _globals['_QUERYBUILDADDRESSREQUEST']._serialized_start=3349 + _globals['_QUERYBUILDADDRESSREQUEST']._serialized_end=3520 + _globals['_QUERYBUILDADDRESSRESPONSE']._serialized_start=3522 + _globals['_QUERYBUILDADDRESSRESPONSE']._serialized_end=3601 + _globals['_QUERY']._serialized_start=3604 + _globals['_QUERY']._serialized_end=5552 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/google/api/client_pb2.py b/pyinjective/proto/google/api/client_pb2.py index 57d8f80c..5aeb6aad 100644 --- a/pyinjective/proto/google/api/client_pb2.py +++ b/pyinjective/proto/google/api/client_pb2.py @@ -17,7 +17,7 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17google/api/client.proto\x12\ngoogle.api\x1a\x1dgoogle/api/launch_stage.proto\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\"\x94\x01\n\x16\x43ommonLanguageSettings\x12\x30\n\x12reference_docs_uri\x18\x01 \x01(\tB\x02\x18\x01R\x10referenceDocsUri\x12H\n\x0c\x64\x65stinations\x18\x02 \x03(\x0e\x32$.google.api.ClientLibraryDestinationR\x0c\x64\x65stinations\"\x93\x05\n\x15\x43lientLibrarySettings\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12:\n\x0claunch_stage\x18\x02 \x01(\x0e\x32\x17.google.api.LaunchStageR\x0blaunchStage\x12,\n\x12rest_numeric_enums\x18\x03 \x01(\x08R\x10restNumericEnums\x12=\n\rjava_settings\x18\x15 \x01(\x0b\x32\x18.google.api.JavaSettingsR\x0cjavaSettings\x12:\n\x0c\x63pp_settings\x18\x16 \x01(\x0b\x32\x17.google.api.CppSettingsR\x0b\x63ppSettings\x12:\n\x0cphp_settings\x18\x17 \x01(\x0b\x32\x17.google.api.PhpSettingsR\x0bphpSettings\x12\x43\n\x0fpython_settings\x18\x18 \x01(\x0b\x32\x1a.google.api.PythonSettingsR\x0epythonSettings\x12=\n\rnode_settings\x18\x19 \x01(\x0b\x32\x18.google.api.NodeSettingsR\x0cnodeSettings\x12\x43\n\x0f\x64otnet_settings\x18\x1a \x01(\x0b\x32\x1a.google.api.DotnetSettingsR\x0e\x64otnetSettings\x12=\n\rruby_settings\x18\x1b \x01(\x0b\x32\x18.google.api.RubySettingsR\x0crubySettings\x12\x37\n\x0bgo_settings\x18\x1c \x01(\x0b\x32\x16.google.api.GoSettingsR\ngoSettings\"\xf4\x04\n\nPublishing\x12\x43\n\x0fmethod_settings\x18\x02 \x03(\x0b\x32\x1a.google.api.MethodSettingsR\x0emethodSettings\x12\"\n\rnew_issue_uri\x18\x65 \x01(\tR\x0bnewIssueUri\x12+\n\x11\x64ocumentation_uri\x18\x66 \x01(\tR\x10\x64ocumentationUri\x12$\n\x0e\x61pi_short_name\x18g \x01(\tR\x0c\x61piShortName\x12!\n\x0cgithub_label\x18h \x01(\tR\x0bgithubLabel\x12\x34\n\x16\x63odeowner_github_teams\x18i \x03(\tR\x14\x63odeownerGithubTeams\x12$\n\x0e\x64oc_tag_prefix\x18j \x01(\tR\x0c\x64ocTagPrefix\x12I\n\x0corganization\x18k \x01(\x0e\x32%.google.api.ClientLibraryOrganizationR\x0corganization\x12L\n\x10library_settings\x18m \x03(\x0b\x32!.google.api.ClientLibrarySettingsR\x0flibrarySettings\x12I\n!proto_reference_documentation_uri\x18n \x01(\tR\x1eprotoReferenceDocumentationUri\x12G\n rest_reference_documentation_uri\x18o \x01(\tR\x1drestReferenceDocumentationUri\"\x9a\x02\n\x0cJavaSettings\x12\'\n\x0flibrary_package\x18\x01 \x01(\tR\x0elibraryPackage\x12_\n\x13service_class_names\x18\x02 \x03(\x0b\x32/.google.api.JavaSettings.ServiceClassNamesEntryR\x11serviceClassNames\x12:\n\x06\x63ommon\x18\x03 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x1a\x44\n\x16ServiceClassNamesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"I\n\x0b\x43ppSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"I\n\x0bPhpSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"\xfd\x01\n\x0ePythonSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12\x64\n\x15\x65xperimental_features\x18\x02 \x01(\x0b\x32/.google.api.PythonSettings.ExperimentalFeaturesR\x14\x65xperimentalFeatures\x1aI\n\x14\x45xperimentalFeatures\x12\x31\n\x15rest_async_io_enabled\x18\x01 \x01(\x08R\x12restAsyncIoEnabled\"J\n\x0cNodeSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"\xae\x04\n\x0e\x44otnetSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12Z\n\x10renamed_services\x18\x02 \x03(\x0b\x32/.google.api.DotnetSettings.RenamedServicesEntryR\x0frenamedServices\x12]\n\x11renamed_resources\x18\x03 \x03(\x0b\x32\x30.google.api.DotnetSettings.RenamedResourcesEntryR\x10renamedResources\x12+\n\x11ignored_resources\x18\x04 \x03(\tR\x10ignoredResources\x12\x38\n\x18\x66orced_namespace_aliases\x18\x05 \x03(\tR\x16\x66orcedNamespaceAliases\x12\x35\n\x16handwritten_signatures\x18\x06 \x03(\tR\x15handwrittenSignatures\x1a\x42\n\x14RenamedServicesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\x43\n\x15RenamedResourcesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"J\n\x0cRubySettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"H\n\nGoSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"\xc2\x03\n\x0eMethodSettings\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12I\n\x0clong_running\x18\x02 \x01(\x0b\x32&.google.api.MethodSettings.LongRunningR\x0blongRunning\x12\x32\n\x15\x61uto_populated_fields\x18\x03 \x03(\tR\x13\x61utoPopulatedFields\x1a\x94\x02\n\x0bLongRunning\x12G\n\x12initial_poll_delay\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x10initialPollDelay\x12\x32\n\x15poll_delay_multiplier\x18\x02 \x01(\x02R\x13pollDelayMultiplier\x12?\n\x0emax_poll_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0cmaxPollDelay\x12G\n\x12total_poll_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x10totalPollTimeout*\xa3\x01\n\x19\x43lientLibraryOrganization\x12+\n\'CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED\x10\x00\x12\t\n\x05\x43LOUD\x10\x01\x12\x07\n\x03\x41\x44S\x10\x02\x12\n\n\x06PHOTOS\x10\x03\x12\x0f\n\x0bSTREET_VIEW\x10\x04\x12\x0c\n\x08SHOPPING\x10\x05\x12\x07\n\x03GEO\x10\x06\x12\x11\n\rGENERATIVE_AI\x10\x07*g\n\x18\x43lientLibraryDestination\x12*\n&CLIENT_LIBRARY_DESTINATION_UNSPECIFIED\x10\x00\x12\n\n\x06GITHUB\x10\n\x12\x13\n\x0fPACKAGE_MANAGER\x10\x14:J\n\x10method_signature\x12\x1e.google.protobuf.MethodOptions\x18\x9b\x08 \x03(\tR\x0fmethodSignature:C\n\x0c\x64\x65\x66\x61ult_host\x12\x1f.google.protobuf.ServiceOptions\x18\x99\x08 \x01(\tR\x0b\x64\x65\x66\x61ultHost:C\n\x0coauth_scopes\x12\x1f.google.protobuf.ServiceOptions\x18\x9a\x08 \x01(\tR\x0boauthScopes:D\n\x0b\x61pi_version\x12\x1f.google.protobuf.ServiceOptions\x18\xc1\xba\xab\xfa\x01 \x01(\tR\napiVersionB\xa9\x01\n\x0e\x63om.google.apiB\x0b\x43lientProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xa2\x02\x03GAX\xaa\x02\nGoogle.Api\xca\x02\nGoogle\\Api\xe2\x02\x16Google\\Api\\GPBMetadata\xea\x02\x0bGoogle::Apib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17google/api/client.proto\x12\ngoogle.api\x1a\x1dgoogle/api/launch_stage.proto\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\"\xf8\x01\n\x16\x43ommonLanguageSettings\x12\x30\n\x12reference_docs_uri\x18\x01 \x01(\tB\x02\x18\x01R\x10referenceDocsUri\x12H\n\x0c\x64\x65stinations\x18\x02 \x03(\x0e\x32$.google.api.ClientLibraryDestinationR\x0c\x64\x65stinations\x12\x62\n\x1aselective_gapic_generation\x18\x03 \x01(\x0b\x32$.google.api.SelectiveGapicGenerationR\x18selectiveGapicGeneration\"\x93\x05\n\x15\x43lientLibrarySettings\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12:\n\x0claunch_stage\x18\x02 \x01(\x0e\x32\x17.google.api.LaunchStageR\x0blaunchStage\x12,\n\x12rest_numeric_enums\x18\x03 \x01(\x08R\x10restNumericEnums\x12=\n\rjava_settings\x18\x15 \x01(\x0b\x32\x18.google.api.JavaSettingsR\x0cjavaSettings\x12:\n\x0c\x63pp_settings\x18\x16 \x01(\x0b\x32\x17.google.api.CppSettingsR\x0b\x63ppSettings\x12:\n\x0cphp_settings\x18\x17 \x01(\x0b\x32\x17.google.api.PhpSettingsR\x0bphpSettings\x12\x43\n\x0fpython_settings\x18\x18 \x01(\x0b\x32\x1a.google.api.PythonSettingsR\x0epythonSettings\x12=\n\rnode_settings\x18\x19 \x01(\x0b\x32\x18.google.api.NodeSettingsR\x0cnodeSettings\x12\x43\n\x0f\x64otnet_settings\x18\x1a \x01(\x0b\x32\x1a.google.api.DotnetSettingsR\x0e\x64otnetSettings\x12=\n\rruby_settings\x18\x1b \x01(\x0b\x32\x18.google.api.RubySettingsR\x0crubySettings\x12\x37\n\x0bgo_settings\x18\x1c \x01(\x0b\x32\x16.google.api.GoSettingsR\ngoSettings\"\xf4\x04\n\nPublishing\x12\x43\n\x0fmethod_settings\x18\x02 \x03(\x0b\x32\x1a.google.api.MethodSettingsR\x0emethodSettings\x12\"\n\rnew_issue_uri\x18\x65 \x01(\tR\x0bnewIssueUri\x12+\n\x11\x64ocumentation_uri\x18\x66 \x01(\tR\x10\x64ocumentationUri\x12$\n\x0e\x61pi_short_name\x18g \x01(\tR\x0c\x61piShortName\x12!\n\x0cgithub_label\x18h \x01(\tR\x0bgithubLabel\x12\x34\n\x16\x63odeowner_github_teams\x18i \x03(\tR\x14\x63odeownerGithubTeams\x12$\n\x0e\x64oc_tag_prefix\x18j \x01(\tR\x0c\x64ocTagPrefix\x12I\n\x0corganization\x18k \x01(\x0e\x32%.google.api.ClientLibraryOrganizationR\x0corganization\x12L\n\x10library_settings\x18m \x03(\x0b\x32!.google.api.ClientLibrarySettingsR\x0flibrarySettings\x12I\n!proto_reference_documentation_uri\x18n \x01(\tR\x1eprotoReferenceDocumentationUri\x12G\n rest_reference_documentation_uri\x18o \x01(\tR\x1drestReferenceDocumentationUri\"\x9a\x02\n\x0cJavaSettings\x12\'\n\x0flibrary_package\x18\x01 \x01(\tR\x0elibraryPackage\x12_\n\x13service_class_names\x18\x02 \x03(\x0b\x32/.google.api.JavaSettings.ServiceClassNamesEntryR\x11serviceClassNames\x12:\n\x06\x63ommon\x18\x03 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x1a\x44\n\x16ServiceClassNamesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"I\n\x0b\x43ppSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"I\n\x0bPhpSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"\xc5\x02\n\x0ePythonSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12\x64\n\x15\x65xperimental_features\x18\x02 \x01(\x0b\x32/.google.api.PythonSettings.ExperimentalFeaturesR\x14\x65xperimentalFeatures\x1a\x90\x01\n\x14\x45xperimentalFeatures\x12\x31\n\x15rest_async_io_enabled\x18\x01 \x01(\x08R\x12restAsyncIoEnabled\x12\x45\n\x1fprotobuf_pythonic_types_enabled\x18\x02 \x01(\x08R\x1cprotobufPythonicTypesEnabled\"J\n\x0cNodeSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"\xae\x04\n\x0e\x44otnetSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12Z\n\x10renamed_services\x18\x02 \x03(\x0b\x32/.google.api.DotnetSettings.RenamedServicesEntryR\x0frenamedServices\x12]\n\x11renamed_resources\x18\x03 \x03(\x0b\x32\x30.google.api.DotnetSettings.RenamedResourcesEntryR\x10renamedResources\x12+\n\x11ignored_resources\x18\x04 \x03(\tR\x10ignoredResources\x12\x38\n\x18\x66orced_namespace_aliases\x18\x05 \x03(\tR\x16\x66orcedNamespaceAliases\x12\x35\n\x16handwritten_signatures\x18\x06 \x03(\tR\x15handwrittenSignatures\x1a\x42\n\x14RenamedServicesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\x43\n\x15RenamedResourcesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"J\n\x0cRubySettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"H\n\nGoSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\"\xc2\x03\n\x0eMethodSettings\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12I\n\x0clong_running\x18\x02 \x01(\x0b\x32&.google.api.MethodSettings.LongRunningR\x0blongRunning\x12\x32\n\x15\x61uto_populated_fields\x18\x03 \x03(\tR\x13\x61utoPopulatedFields\x1a\x94\x02\n\x0bLongRunning\x12G\n\x12initial_poll_delay\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x10initialPollDelay\x12\x32\n\x15poll_delay_multiplier\x18\x02 \x01(\x02R\x13pollDelayMultiplier\x12?\n\x0emax_poll_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x0cmaxPollDelay\x12G\n\x12total_poll_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\x10totalPollTimeout\"4\n\x18SelectiveGapicGeneration\x12\x18\n\x07methods\x18\x01 \x03(\tR\x07methods*\xa3\x01\n\x19\x43lientLibraryOrganization\x12+\n\'CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED\x10\x00\x12\t\n\x05\x43LOUD\x10\x01\x12\x07\n\x03\x41\x44S\x10\x02\x12\n\n\x06PHOTOS\x10\x03\x12\x0f\n\x0bSTREET_VIEW\x10\x04\x12\x0c\n\x08SHOPPING\x10\x05\x12\x07\n\x03GEO\x10\x06\x12\x11\n\rGENERATIVE_AI\x10\x07*g\n\x18\x43lientLibraryDestination\x12*\n&CLIENT_LIBRARY_DESTINATION_UNSPECIFIED\x10\x00\x12\n\n\x06GITHUB\x10\n\x12\x13\n\x0fPACKAGE_MANAGER\x10\x14:J\n\x10method_signature\x12\x1e.google.protobuf.MethodOptions\x18\x9b\x08 \x03(\tR\x0fmethodSignature:C\n\x0c\x64\x65\x66\x61ult_host\x12\x1f.google.protobuf.ServiceOptions\x18\x99\x08 \x01(\tR\x0b\x64\x65\x66\x61ultHost:C\n\x0coauth_scopes\x12\x1f.google.protobuf.ServiceOptions\x18\x9a\x08 \x01(\tR\x0boauthScopes:D\n\x0b\x61pi_version\x12\x1f.google.protobuf.ServiceOptions\x18\xc1\xba\xab\xfa\x01 \x01(\tR\napiVersionB\xa9\x01\n\x0e\x63om.google.apiB\x0b\x43lientProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xa2\x02\x03GAX\xaa\x02\nGoogle.Api\xca\x02\nGoogle\\Api\xe2\x02\x16Google\\Api\\GPBMetadata\xea\x02\x0bGoogle::Apib\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,42 +33,44 @@ _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_options = b'8\001' _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._loaded_options = None _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_options = b'8\001' - _globals['_CLIENTLIBRARYORGANIZATION']._serialized_start=3512 - _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=3675 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=3677 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=3780 + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_start=3738 + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=3901 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=3903 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=4006 _globals['_COMMONLANGUAGESETTINGS']._serialized_start=137 - _globals['_COMMONLANGUAGESETTINGS']._serialized_end=285 - _globals['_CLIENTLIBRARYSETTINGS']._serialized_start=288 - _globals['_CLIENTLIBRARYSETTINGS']._serialized_end=947 - _globals['_PUBLISHING']._serialized_start=950 - _globals['_PUBLISHING']._serialized_end=1578 - _globals['_JAVASETTINGS']._serialized_start=1581 - _globals['_JAVASETTINGS']._serialized_end=1863 - _globals['_JAVASETTINGS_SERVICECLASSNAMESENTRY']._serialized_start=1795 - _globals['_JAVASETTINGS_SERVICECLASSNAMESENTRY']._serialized_end=1863 - _globals['_CPPSETTINGS']._serialized_start=1865 - _globals['_CPPSETTINGS']._serialized_end=1938 - _globals['_PHPSETTINGS']._serialized_start=1940 - _globals['_PHPSETTINGS']._serialized_end=2013 - _globals['_PYTHONSETTINGS']._serialized_start=2016 - _globals['_PYTHONSETTINGS']._serialized_end=2269 - _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_start=2196 - _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_end=2269 - _globals['_NODESETTINGS']._serialized_start=2271 - _globals['_NODESETTINGS']._serialized_end=2345 - _globals['_DOTNETSETTINGS']._serialized_start=2348 - _globals['_DOTNETSETTINGS']._serialized_end=2906 - _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=2771 - _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=2837 - _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_start=2839 - _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_end=2906 - _globals['_RUBYSETTINGS']._serialized_start=2908 - _globals['_RUBYSETTINGS']._serialized_end=2982 - _globals['_GOSETTINGS']._serialized_start=2984 - _globals['_GOSETTINGS']._serialized_end=3056 - _globals['_METHODSETTINGS']._serialized_start=3059 - _globals['_METHODSETTINGS']._serialized_end=3509 - _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3233 - _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3509 + _globals['_COMMONLANGUAGESETTINGS']._serialized_end=385 + _globals['_CLIENTLIBRARYSETTINGS']._serialized_start=388 + _globals['_CLIENTLIBRARYSETTINGS']._serialized_end=1047 + _globals['_PUBLISHING']._serialized_start=1050 + _globals['_PUBLISHING']._serialized_end=1678 + _globals['_JAVASETTINGS']._serialized_start=1681 + _globals['_JAVASETTINGS']._serialized_end=1963 + _globals['_JAVASETTINGS_SERVICECLASSNAMESENTRY']._serialized_start=1895 + _globals['_JAVASETTINGS_SERVICECLASSNAMESENTRY']._serialized_end=1963 + _globals['_CPPSETTINGS']._serialized_start=1965 + _globals['_CPPSETTINGS']._serialized_end=2038 + _globals['_PHPSETTINGS']._serialized_start=2040 + _globals['_PHPSETTINGS']._serialized_end=2113 + _globals['_PYTHONSETTINGS']._serialized_start=2116 + _globals['_PYTHONSETTINGS']._serialized_end=2441 + _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_start=2297 + _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_end=2441 + _globals['_NODESETTINGS']._serialized_start=2443 + _globals['_NODESETTINGS']._serialized_end=2517 + _globals['_DOTNETSETTINGS']._serialized_start=2520 + _globals['_DOTNETSETTINGS']._serialized_end=3078 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=2943 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=3009 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_start=3011 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_end=3078 + _globals['_RUBYSETTINGS']._serialized_start=3080 + _globals['_RUBYSETTINGS']._serialized_end=3154 + _globals['_GOSETTINGS']._serialized_start=3156 + _globals['_GOSETTINGS']._serialized_end=3228 + _globals['_METHODSETTINGS']._serialized_start=3231 + _globals['_METHODSETTINGS']._serialized_end=3681 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3405 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3681 + _globals['_SELECTIVEGAPICGENERATION']._serialized_start=3683 + _globals['_SELECTIVEGAPICGENERATION']._serialized_end=3735 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/google/api/httpbody_pb2.py b/pyinjective/proto/google/api/httpbody_pb2.py index 5a8b69fe..eb6c4482 100644 --- a/pyinjective/proto/google/api/httpbody_pb2.py +++ b/pyinjective/proto/google/api/httpbody_pb2.py @@ -15,14 +15,14 @@ from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19google/api/httpbody.proto\x12\ngoogle.api\x1a\x19google/protobuf/any.proto\"w\n\x08HttpBody\x12!\n\x0c\x63ontent_type\x18\x01 \x01(\tR\x0b\x63ontentType\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x34\n\nextensions\x18\x03 \x03(\x0b\x32\x14.google.protobuf.AnyR\nextensionsB\xa8\x01\n\x0e\x63om.google.apiB\rHttpbodyProtoP\x01Z;google.golang.org/genproto/googleapis/api/httpbody;httpbody\xf8\x01\x01\xa2\x02\x03GAX\xaa\x02\nGoogle.Api\xca\x02\nGoogle\\Api\xe2\x02\x16Google\\Api\\GPBMetadata\xea\x02\x0bGoogle::Apib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19google/api/httpbody.proto\x12\ngoogle.api\x1a\x19google/protobuf/any.proto\"w\n\x08HttpBody\x12!\n\x0c\x63ontent_type\x18\x01 \x01(\tR\x0b\x63ontentType\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x34\n\nextensions\x18\x03 \x03(\x0b\x32\x14.google.protobuf.AnyR\nextensionsB\xa5\x01\n\x0e\x63om.google.apiB\rHttpbodyProtoP\x01Z;google.golang.org/genproto/googleapis/api/httpbody;httpbody\xa2\x02\x03GAX\xaa\x02\nGoogle.Api\xca\x02\nGoogle\\Api\xe2\x02\x16Google\\Api\\GPBMetadata\xea\x02\x0bGoogle::Apib\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.api.httpbody_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\rHttpbodyProtoP\001Z;google.golang.org/genproto/googleapis/api/httpbody;httpbody\370\001\001\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' + _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\rHttpbodyProtoP\001Z;google.golang.org/genproto/googleapis/api/httpbody;httpbody\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_HTTPBODY']._serialized_start=68 _globals['_HTTPBODY']._serialized_end=187 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/google/longrunning/operations_pb2.py b/pyinjective/proto/google/longrunning/operations_pb2.py index 719371ca..72a5cef3 100644 --- a/pyinjective/proto/google/longrunning/operations_pb2.py +++ b/pyinjective/proto/google/longrunning/operations_pb2.py @@ -15,13 +15,13 @@ from pyinjective.proto.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from pyinjective.proto.google.api import client_pb2 as google_dot_api_dot_client__pb2 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 -from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#google/longrunning/operations.proto\x12\x12google.longrunning\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x17google/rpc/status.proto\x1a google/protobuf/descriptor.proto\"\xcf\x01\n\tOperation\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x30\n\x08metadata\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x08metadata\x12\x12\n\x04\x64one\x18\x03 \x01(\x08R\x04\x64one\x12*\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rror\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x08responseB\x08\n\x06result\")\n\x13GetOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\x7f\n\x15ListOperationsRequest\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x16\n\x06\x66ilter\x18\x01 \x01(\tR\x06\x66ilter\x12\x1b\n\tpage_size\x18\x02 \x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x03 \x01(\tR\tpageToken\"\x7f\n\x16ListOperationsResponse\x12=\n\noperations\x18\x01 \x03(\x0b\x32\x1d.google.longrunning.OperationR\noperations\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\",\n\x16\x43\x61ncelOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\",\n\x16\x44\x65leteOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"_\n\x14WaitOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x33\n\x07timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07timeout\"Y\n\rOperationInfo\x12#\n\rresponse_type\x18\x01 \x01(\tR\x0cresponseType\x12#\n\rmetadata_type\x18\x02 \x01(\tR\x0cmetadataType2\xaa\x05\n\nOperations\x12\x94\x01\n\x0eListOperations\x12).google.longrunning.ListOperationsRequest\x1a*.google.longrunning.ListOperationsResponse\"+\xda\x41\x0bname,filter\x82\xd3\xe4\x93\x02\x17\x12\x15/v1/{name=operations}\x12\x7f\n\x0cGetOperation\x12\'.google.longrunning.GetOperationRequest\x1a\x1d.google.longrunning.Operation\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=operations/**}\x12~\n\x0f\x44\x65leteOperation\x12*.google.longrunning.DeleteOperationRequest\x1a\x16.google.protobuf.Empty\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=operations/**}\x12\x88\x01\n\x0f\x43\x61ncelOperation\x12*.google.longrunning.CancelOperationRequest\x1a\x16.google.protobuf.Empty\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$\"\x1f/v1/{name=operations/**}:cancel:\x01*\x12Z\n\rWaitOperation\x12(.google.longrunning.WaitOperationRequest\x1a\x1d.google.longrunning.Operation\"\x00\x1a\x1d\xca\x41\x1alongrunning.googleapis.com:i\n\x0eoperation_info\x12\x1e.google.protobuf.MethodOptions\x18\x99\x08 \x01(\x0b\x32!.google.longrunning.OperationInfoR\roperationInfoB\xda\x01\n\x16\x63om.google.longrunningB\x0fOperationsProtoP\x01ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\xf8\x01\x01\xa2\x02\x03GLX\xaa\x02\x12Google.Longrunning\xca\x02\x12Google\\Longrunning\xe2\x02\x1eGoogle\\Longrunning\\GPBMetadata\xea\x02\x13Google::Longrunningb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#google/longrunning/operations.proto\x12\x12google.longrunning\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x19google/protobuf/any.proto\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x17google/rpc/status.proto\"\xcf\x01\n\tOperation\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x30\n\x08metadata\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x08metadata\x12\x12\n\x04\x64one\x18\x03 \x01(\x08R\x04\x64one\x12*\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rror\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x08responseB\x08\n\x06result\")\n\x13GetOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"\x7f\n\x15ListOperationsRequest\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x16\n\x06\x66ilter\x18\x01 \x01(\tR\x06\x66ilter\x12\x1b\n\tpage_size\x18\x02 \x01(\x05R\x08pageSize\x12\x1d\n\npage_token\x18\x03 \x01(\tR\tpageToken\"\x7f\n\x16ListOperationsResponse\x12=\n\noperations\x18\x01 \x03(\x0b\x32\x1d.google.longrunning.OperationR\noperations\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\",\n\x16\x43\x61ncelOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\",\n\x16\x44\x65leteOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\"_\n\x14WaitOperationRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x33\n\x07timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07timeout\"Y\n\rOperationInfo\x12#\n\rresponse_type\x18\x01 \x01(\tR\x0cresponseType\x12#\n\rmetadata_type\x18\x02 \x01(\tR\x0cmetadataType2\xaa\x05\n\nOperations\x12\x94\x01\n\x0eListOperations\x12).google.longrunning.ListOperationsRequest\x1a*.google.longrunning.ListOperationsResponse\"+\xda\x41\x0bname,filter\x82\xd3\xe4\x93\x02\x17\x12\x15/v1/{name=operations}\x12\x7f\n\x0cGetOperation\x12\'.google.longrunning.GetOperationRequest\x1a\x1d.google.longrunning.Operation\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=operations/**}\x12~\n\x0f\x44\x65leteOperation\x12*.google.longrunning.DeleteOperationRequest\x1a\x16.google.protobuf.Empty\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=operations/**}\x12\x88\x01\n\x0f\x43\x61ncelOperation\x12*.google.longrunning.CancelOperationRequest\x1a\x16.google.protobuf.Empty\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$\"\x1f/v1/{name=operations/**}:cancel:\x01*\x12Z\n\rWaitOperation\x12(.google.longrunning.WaitOperationRequest\x1a\x1d.google.longrunning.Operation\"\x00\x1a\x1d\xca\x41\x1alongrunning.googleapis.com:i\n\x0eoperation_info\x12\x1e.google.protobuf.MethodOptions\x18\x99\x08 \x01(\x0b\x32!.google.longrunning.OperationInfoR\roperationInfoB\xda\x01\n\x16\x63om.google.longrunningB\x0fOperationsProtoP\x01ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\xf8\x01\x01\xa2\x02\x03GLX\xaa\x02\x12Google.Longrunning\xca\x02\x12Google\\Longrunning\xe2\x02\x1eGoogle\\Longrunning\\GPBMetadata\xea\x02\x13Google::Longrunningb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) diff --git a/pyinjective/proto/google/longrunning/operations_pb2_grpc.py b/pyinjective/proto/google/longrunning/operations_pb2_grpc.py index 533da2f8..e0b9948f 100644 --- a/pyinjective/proto/google/longrunning/operations_pb2_grpc.py +++ b/pyinjective/proto/google/longrunning/operations_pb2_grpc.py @@ -10,12 +10,12 @@ class OperationsStub(object): """Manages long-running operations with an API service. When an API method normally takes long time to complete, it can be designed - to return [Operation][google.longrunning.Operation] to the client, and the client can use this - interface to receive the real response asynchronously by polling the - operation resource, or pass the operation resource to another API (such as - Google Cloud Pub/Sub API) to receive the response. Any API service that - returns long-running operations should implement the `Operations` interface - so developers can have a consistent client experience. + to return [Operation][google.longrunning.Operation] to the client, and the + client can use this interface to receive the real response asynchronously by + polling the operation resource, or pass the operation resource to another API + (such as Pub/Sub API) to receive the response. Any API service that returns + long-running operations should implement the `Operations` interface so + developers can have a consistent client experience. """ def __init__(self, channel): @@ -55,25 +55,17 @@ class OperationsServicer(object): """Manages long-running operations with an API service. When an API method normally takes long time to complete, it can be designed - to return [Operation][google.longrunning.Operation] to the client, and the client can use this - interface to receive the real response asynchronously by polling the - operation resource, or pass the operation resource to another API (such as - Google Cloud Pub/Sub API) to receive the response. Any API service that - returns long-running operations should implement the `Operations` interface - so developers can have a consistent client experience. + to return [Operation][google.longrunning.Operation] to the client, and the + client can use this interface to receive the real response asynchronously by + polling the operation resource, or pass the operation resource to another API + (such as Pub/Sub API) to receive the response. Any API service that returns + long-running operations should implement the `Operations` interface so + developers can have a consistent client experience. """ def ListOperations(self, request, context): """Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. - - NOTE: the `name` binding allows API services to override the binding - to use different resource name schemes, such as `users/*/operations`. To - override the binding, API services can add a binding such as - `"/v1/{name=users/*}/operations"` to their service configuration. - For backwards compatibility, the default name includes the operations - collection id, however overriding users must ensure the name binding - is the parent resource, without the operations collection id. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -107,8 +99,9 @@ def CancelOperation(self, request, context): other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with - an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, - corresponding to `Code.CANCELLED`. + an [Operation.error][google.longrunning.Operation.error] value with a + [google.rpc.Status.code][google.rpc.Status.code] of `1`, corresponding to + `Code.CANCELLED`. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -169,12 +162,12 @@ class Operations(object): """Manages long-running operations with an API service. When an API method normally takes long time to complete, it can be designed - to return [Operation][google.longrunning.Operation] to the client, and the client can use this - interface to receive the real response asynchronously by polling the - operation resource, or pass the operation resource to another API (such as - Google Cloud Pub/Sub API) to receive the response. Any API service that - returns long-running operations should implement the `Operations` interface - so developers can have a consistent client experience. + to return [Operation][google.longrunning.Operation] to the client, and the + client can use this interface to receive the real response asynchronously by + polling the operation resource, or pass the operation resource to another API + (such as Pub/Sub API) to receive the response. Any API service that returns + long-running operations should implement the `Operations` interface so + developers can have a consistent client experience. """ @staticmethod diff --git a/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py b/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py index efdcbff9..d2cc528a 100644 --- a/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py +++ b/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py @@ -17,7 +17,7 @@ from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'injective/auction/v1beta1/auction.proto\x12\x19injective.auction.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\"\xab\x01\n\x06Params\x12%\n\x0e\x61uction_period\x18\x01 \x01(\x03R\rauctionPeriod\x12\x61\n\x1bmin_next_bid_increment_rate\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17minNextBidIncrementRate:\x17\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0e\x61uction/Params\"\x83\x01\n\x03\x42id\x12\x33\n\x06\x62idder\x18\x01 \x01(\tB\x1b\xea\xde\x1f\x06\x62idder\xf2\xde\x1f\ryaml:\"bidder\"R\x06\x62idder\x12G\n\x06\x61mount\x18\x02 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\"\x8a\x01\n\x11LastAuctionResult\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12G\n\x06\x61mount\x18\x02 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\"\x81\x01\n\x08\x45ventBid\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12G\n\x06\x61mount\x18\x02 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\"\x8b\x01\n\x12\x45ventAuctionResult\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12G\n\x06\x61mount\x18\x02 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\"\xc0\x01\n\x11\x45ventAuctionStart\x12\x14\n\x05round\x18\x01 \x01(\x04R\x05round\x12)\n\x10\x65nding_timestamp\x18\x02 \x01(\x03R\x0f\x65ndingTimestamp\x12j\n\nnew_basket\x18\x03 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\tnewBasketB\x82\x02\n\x1d\x63om.injective.auction.v1beta1B\x0c\x41uctionProtoP\x01ZMgithub.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types\xa2\x02\x03IAX\xaa\x02\x19Injective.Auction.V1beta1\xca\x02\x19Injective\\Auction\\V1beta1\xe2\x02%Injective\\Auction\\V1beta1\\GPBMetadata\xea\x02\x1bInjective::Auction::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'injective/auction/v1beta1/auction.proto\x12\x19injective.auction.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\"\xf7\x01\n\x06Params\x12%\n\x0e\x61uction_period\x18\x01 \x01(\x03R\rauctionPeriod\x12\x61\n\x1bmin_next_bid_increment_rate\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17minNextBidIncrementRate\x12J\n\x12inj_basket_max_cap\x18\x03 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0finjBasketMaxCap:\x17\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0e\x61uction/Params\"\x9e\x01\n\x03\x42id\x12\x33\n\x06\x62idder\x18\x01 \x01(\tB\x1b\xea\xde\x1f\x06\x62idder\xf2\xde\x1f\ryaml:\"bidder\"R\x06\x62idder\x12\x62\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\"\xa5\x01\n\x11LastAuctionResult\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12\x62\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\"\x9c\x01\n\x08\x45ventBid\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x62\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\"\xa6\x01\n\x12\x45ventAuctionResult\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12\x62\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\"\xc0\x01\n\x11\x45ventAuctionStart\x12\x14\n\x05round\x18\x01 \x01(\x04R\x05round\x12)\n\x10\x65nding_timestamp\x18\x02 \x01(\x03R\x0f\x65ndingTimestamp\x12j\n\nnew_basket\x18\x03 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\tnewBasketB\x82\x02\n\x1d\x63om.injective.auction.v1beta1B\x0c\x41uctionProtoP\x01ZMgithub.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types\xa2\x02\x03IAX\xaa\x02\x19Injective.Auction.V1beta1\xca\x02\x19Injective\\Auction\\V1beta1\xe2\x02%Injective\\Auction\\V1beta1\\GPBMetadata\xea\x02\x1bInjective::Auction::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,6 +27,8 @@ _globals['DESCRIPTOR']._serialized_options = b'\n\035com.injective.auction.v1beta1B\014AuctionProtoP\001ZMgithub.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types\242\002\003IAX\252\002\031Injective.Auction.V1beta1\312\002\031Injective\\Auction\\V1beta1\342\002%Injective\\Auction\\V1beta1\\GPBMetadata\352\002\033Injective::Auction::V1beta1' _globals['_PARAMS'].fields_by_name['min_next_bid_increment_rate']._loaded_options = None _globals['_PARAMS'].fields_by_name['min_next_bid_increment_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['inj_basket_max_cap']._loaded_options = None + _globals['_PARAMS'].fields_by_name['inj_basket_max_cap']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' _globals['_PARAMS']._loaded_options = None _globals['_PARAMS']._serialized_options = b'\350\240\037\001\212\347\260*\016auction/Params' _globals['_BID'].fields_by_name['bidder']._loaded_options = None @@ -42,15 +44,15 @@ _globals['_EVENTAUCTIONSTART'].fields_by_name['new_basket']._loaded_options = None _globals['_EVENTAUCTIONSTART'].fields_by_name['new_basket']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' _globals['_PARAMS']._serialized_start=144 - _globals['_PARAMS']._serialized_end=315 - _globals['_BID']._serialized_start=318 - _globals['_BID']._serialized_end=449 - _globals['_LASTAUCTIONRESULT']._serialized_start=452 - _globals['_LASTAUCTIONRESULT']._serialized_end=590 - _globals['_EVENTBID']._serialized_start=593 - _globals['_EVENTBID']._serialized_end=722 - _globals['_EVENTAUCTIONRESULT']._serialized_start=725 - _globals['_EVENTAUCTIONRESULT']._serialized_end=864 - _globals['_EVENTAUCTIONSTART']._serialized_start=867 - _globals['_EVENTAUCTIONSTART']._serialized_end=1059 + _globals['_PARAMS']._serialized_end=391 + _globals['_BID']._serialized_start=394 + _globals['_BID']._serialized_end=552 + _globals['_LASTAUCTIONRESULT']._serialized_start=555 + _globals['_LASTAUCTIONRESULT']._serialized_end=720 + _globals['_EVENTBID']._serialized_start=723 + _globals['_EVENTBID']._serialized_end=879 + _globals['_EVENTAUCTIONRESULT']._serialized_start=882 + _globals['_EVENTAUCTIONRESULT']._serialized_end=1048 + _globals['_EVENTAUCTIONSTART']._serialized_start=1051 + _globals['_EVENTAUCTIONSTART']._serialized_end=1243 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/auction/v1beta1/query_pb2.py b/pyinjective/proto/injective/auction/v1beta1/query_pb2.py index 32f38d46..c8f87434 100644 --- a/pyinjective/proto/injective/auction/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/auction/v1beta1/query_pb2.py @@ -19,7 +19,7 @@ from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%injective/auction/v1beta1/query.proto\x12\x19injective.auction.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\'injective/auction/v1beta1/auction.proto\x1a\'injective/auction/v1beta1/genesis.proto\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\"\x1b\n\x19QueryAuctionParamsRequest\"]\n\x1aQueryAuctionParamsResponse\x12?\n\x06params\x18\x01 \x01(\x0b\x32!.injective.auction.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\"\n QueryCurrentAuctionBasketRequest\"\xcd\x02\n!QueryCurrentAuctionBasketResponse\x12\x63\n\x06\x61mount\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x06\x61mount\x12\"\n\x0c\x61uctionRound\x18\x02 \x01(\x04R\x0c\x61uctionRound\x12.\n\x12\x61uctionClosingTime\x18\x03 \x01(\x03R\x12\x61uctionClosingTime\x12$\n\rhighestBidder\x18\x04 \x01(\tR\rhighestBidder\x12I\n\x10highestBidAmount\x18\x05 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10highestBidAmount\"\x19\n\x17QueryModuleStateRequest\"Y\n\x18QueryModuleStateResponse\x12=\n\x05state\x18\x01 \x01(\x0b\x32\'.injective.auction.v1beta1.GenesisStateR\x05state\"\x1f\n\x1dQueryLastAuctionResultRequest\"~\n\x1eQueryLastAuctionResultResponse\x12\\\n\x13last_auction_result\x18\x01 \x01(\x0b\x32,.injective.auction.v1beta1.LastAuctionResultR\x11lastAuctionResult2\xe4\x05\n\x05Query\x12\xa7\x01\n\rAuctionParams\x12\x34.injective.auction.v1beta1.QueryAuctionParamsRequest\x1a\x35.injective.auction.v1beta1.QueryAuctionParamsResponse\")\x82\xd3\xe4\x93\x02#\x12!/injective/auction/v1beta1/params\x12\xbc\x01\n\x14\x43urrentAuctionBasket\x12;.injective.auction.v1beta1.QueryCurrentAuctionBasketRequest\x1a<.injective.auction.v1beta1.QueryCurrentAuctionBasketResponse\")\x82\xd3\xe4\x93\x02#\x12!/injective/auction/v1beta1/basket\x12\xae\x01\n\x12\x41uctionModuleState\x12\x32.injective.auction.v1beta1.QueryModuleStateRequest\x1a\x33.injective.auction.v1beta1.QueryModuleStateResponse\"/\x82\xd3\xe4\x93\x02)\x12\'/injective/auction/v1beta1/module_state\x12\xc0\x01\n\x11LastAuctionResult\x12\x38.injective.auction.v1beta1.QueryLastAuctionResultRequest\x1a\x39.injective.auction.v1beta1.QueryLastAuctionResultResponse\"6\x82\xd3\xe4\x93\x02\x30\x12./injective/auction/v1beta1/last_auction_resultB\x80\x02\n\x1d\x63om.injective.auction.v1beta1B\nQueryProtoP\x01ZMgithub.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types\xa2\x02\x03IAX\xaa\x02\x19Injective.Auction.V1beta1\xca\x02\x19Injective\\Auction\\V1beta1\xe2\x02%Injective\\Auction\\V1beta1\\GPBMetadata\xea\x02\x1bInjective::Auction::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%injective/auction/v1beta1/query.proto\x12\x19injective.auction.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\'injective/auction/v1beta1/auction.proto\x1a\'injective/auction/v1beta1/genesis.proto\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\"\x1b\n\x19QueryAuctionParamsRequest\"]\n\x1aQueryAuctionParamsResponse\x12?\n\x06params\x18\x01 \x01(\x0b\x32!.injective.auction.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\"\n QueryCurrentAuctionBasketRequest\"\xcd\x02\n!QueryCurrentAuctionBasketResponse\x12\x63\n\x06\x61mount\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x06\x61mount\x12\"\n\x0c\x61uctionRound\x18\x02 \x01(\x04R\x0c\x61uctionRound\x12.\n\x12\x61uctionClosingTime\x18\x03 \x01(\x04R\x12\x61uctionClosingTime\x12$\n\rhighestBidder\x18\x04 \x01(\tR\rhighestBidder\x12I\n\x10highestBidAmount\x18\x05 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10highestBidAmount\"\x19\n\x17QueryModuleStateRequest\"Y\n\x18QueryModuleStateResponse\x12=\n\x05state\x18\x01 \x01(\x0b\x32\'.injective.auction.v1beta1.GenesisStateR\x05state\"\x1f\n\x1dQueryLastAuctionResultRequest\"~\n\x1eQueryLastAuctionResultResponse\x12\\\n\x13last_auction_result\x18\x01 \x01(\x0b\x32,.injective.auction.v1beta1.LastAuctionResultR\x11lastAuctionResult2\xe4\x05\n\x05Query\x12\xa7\x01\n\rAuctionParams\x12\x34.injective.auction.v1beta1.QueryAuctionParamsRequest\x1a\x35.injective.auction.v1beta1.QueryAuctionParamsResponse\")\x82\xd3\xe4\x93\x02#\x12!/injective/auction/v1beta1/params\x12\xbc\x01\n\x14\x43urrentAuctionBasket\x12;.injective.auction.v1beta1.QueryCurrentAuctionBasketRequest\x1a<.injective.auction.v1beta1.QueryCurrentAuctionBasketResponse\")\x82\xd3\xe4\x93\x02#\x12!/injective/auction/v1beta1/basket\x12\xae\x01\n\x12\x41uctionModuleState\x12\x32.injective.auction.v1beta1.QueryModuleStateRequest\x1a\x33.injective.auction.v1beta1.QueryModuleStateResponse\"/\x82\xd3\xe4\x93\x02)\x12\'/injective/auction/v1beta1/module_state\x12\xc0\x01\n\x11LastAuctionResult\x12\x38.injective.auction.v1beta1.QueryLastAuctionResultRequest\x1a\x39.injective.auction.v1beta1.QueryLastAuctionResultResponse\"6\x82\xd3\xe4\x93\x02\x30\x12./injective/auction/v1beta1/last_auction_resultB\x80\x02\n\x1d\x63om.injective.auction.v1beta1B\nQueryProtoP\x01ZMgithub.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types\xa2\x02\x03IAX\xaa\x02\x19Injective.Auction.V1beta1\xca\x02\x19Injective\\Auction\\V1beta1\xe2\x02%Injective\\Auction\\V1beta1\\GPBMetadata\xea\x02\x1bInjective::Auction::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) diff --git a/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py index f837770f..de0fe292 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py @@ -18,7 +18,7 @@ from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)injective/exchange/v1beta1/exchange.proto\x12\x1ainjective.exchange.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\xdd\x15\n\x06Params\x12\x65\n\x1fspot_market_instant_listing_fee\x18\x01 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x1bspotMarketInstantListingFee\x12q\n%derivative_market_instant_listing_fee\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R!derivativeMarketInstantListingFee\x12\x61\n\x1b\x64\x65\x66\x61ult_spot_maker_fee_rate\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17\x64\x65\x66\x61ultSpotMakerFeeRate\x12\x61\n\x1b\x64\x65\x66\x61ult_spot_taker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17\x64\x65\x66\x61ultSpotTakerFeeRate\x12m\n!default_derivative_maker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultDerivativeMakerFeeRate\x12m\n!default_derivative_taker_fee_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultDerivativeTakerFeeRate\x12\x64\n\x1c\x64\x65\x66\x61ult_initial_margin_ratio\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19\x64\x65\x66\x61ultInitialMarginRatio\x12l\n default_maintenance_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultMaintenanceMarginRatio\x12\x38\n\x18\x64\x65\x66\x61ult_funding_interval\x18\t \x01(\x03R\x16\x64\x65\x66\x61ultFundingInterval\x12)\n\x10\x66unding_multiple\x18\n \x01(\x03R\x0f\x66undingMultiple\x12X\n\x16relayer_fee_share_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12i\n\x1f\x64\x65\x66\x61ult_hourly_funding_rate_cap\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1b\x64\x65\x66\x61ultHourlyFundingRateCap\x12\x64\n\x1c\x64\x65\x66\x61ult_hourly_interest_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19\x64\x65\x66\x61ultHourlyInterestRate\x12\x44\n\x1fmax_derivative_order_side_count\x18\x0e \x01(\rR\x1bmaxDerivativeOrderSideCount\x12s\n\'inj_reward_staked_requirement_threshold\x18\x0f \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR#injRewardStakedRequirementThreshold\x12G\n trading_rewards_vesting_duration\x18\x10 \x01(\x03R\x1dtradingRewardsVestingDuration\x12\x64\n\x1cliquidator_reward_share_rate\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19liquidatorRewardShareRate\x12x\n)binary_options_market_instant_listing_fee\x18\x12 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R$binaryOptionsMarketInstantListingFee\x12\x80\x01\n atomic_market_order_access_level\x18\x13 \x01(\x0e\x32\x38.injective.exchange.v1beta1.AtomicMarketOrderAccessLevelR\x1c\x61tomicMarketOrderAccessLevel\x12x\n\'spot_atomic_market_order_fee_multiplier\x18\x14 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"spotAtomicMarketOrderFeeMultiplier\x12\x84\x01\n-derivative_atomic_market_order_fee_multiplier\x18\x15 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR(derivativeAtomicMarketOrderFeeMultiplier\x12\x8b\x01\n1binary_options_atomic_market_order_fee_multiplier\x18\x16 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR+binaryOptionsAtomicMarketOrderFeeMultiplier\x12^\n\x19minimal_protocol_fee_rate\x18\x17 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16minimalProtocolFeeRate\x12[\n+is_instant_derivative_market_launch_enabled\x18\x18 \x01(\x08R&isInstantDerivativeMarketLaunchEnabled\x12\x44\n\x1fpost_only_mode_height_threshold\x18\x19 \x01(\x03R\x1bpostOnlyModeHeightThreshold\x12g\n1margin_decrease_price_timestamp_threshold_seconds\x18\x1a \x01(\x03R,marginDecreasePriceTimestampThresholdSeconds\x12\'\n\x0f\x65xchange_admins\x18\x1b \x03(\tR\x0e\x65xchangeAdmins\x12L\n\x13inj_auction_max_cap\x18\x1c \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10injAuctionMaxCap:\x18\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0f\x65xchange/Params\"\x84\x01\n\x13MarketFeeMultiplier\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\x0e\x66\x65\x65_multiplier\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rfeeMultiplier:\x04\x88\xa0\x1f\x00\"\xec\x08\n\x10\x44\x65rivativeMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x02 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x03 \x01(\tR\x0boracleQuote\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x05 \x01(\rR\x11oracleScaleFactor\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12\x1b\n\tmarket_id\x18\x07 \x01(\tR\x08marketId\x12U\n\x14initial_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12 \n\x0bisPerpetual\x18\r \x01(\x08R\x0bisPerpetual\x12@\n\x06status\x18\x0e \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x14\n\x05\x61\x64min\x18\x12 \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\x13 \x01(\rR\x10\x61\x64minPermissions:\x04\x88\xa0\x1f\x00\"\xd7\x08\n\x13\x42inaryOptionsMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x02 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x03 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x05 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x06 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\x07 \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\x08 \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\t \x01(\tR\nquoteDenom\x12\x1b\n\tmarket_id\x18\n \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12@\n\x06status\x18\x0e \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12N\n\x10settlement_price\x18\x11 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x46\n\x0cmin_notional\x18\x12 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12+\n\x11\x61\x64min_permissions\x18\x13 \x01(\rR\x10\x61\x64minPermissions:\x04\x88\xa0\x1f\x00\"\xe4\x02\n\x17\x45xpiryFuturesMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x31\n\x14\x65xpiration_timestamp\x18\x02 \x01(\x03R\x13\x65xpirationTimestamp\x12\x30\n\x14twap_start_timestamp\x18\x03 \x01(\x03R\x12twapStartTimestamp\x12w\n&expiration_twap_start_price_cumulative\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"expirationTwapStartPriceCumulative\x12N\n\x10settlement_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\"\xc6\x02\n\x13PerpetualMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Z\n\x17hourly_funding_rate_cap\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14hourlyFundingRateCap\x12U\n\x14hourly_interest_rate\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x04 \x01(\x03R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x05 \x01(\x03R\x0f\x66undingInterval\"\xe3\x01\n\x16PerpetualMarketFunding\x12R\n\x12\x63umulative_funding\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x63umulativeFunding\x12N\n\x10\x63umulative_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x03R\rlastTimestamp\"\x8d\x01\n\x1e\x44\x65rivativeMarketSettlementInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\"=\n\x14NextFundingTimestamp\x12%\n\x0enext_timestamp\x18\x01 \x01(\x03R\rnextTimestamp\"\xea\x01\n\x0eMidPriceAndTOB\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"\xec\x05\n\nSpotMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12\x1b\n\tmarket_id\x18\x07 \x01(\tR\x08marketId\x12@\n\x06status\x18\x08 \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x14\n\x05\x61\x64min\x18\x0c \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\r \x01(\rR\x10\x61\x64minPermissions\"\xa5\x01\n\x07\x44\x65posit\x12P\n\x11\x61vailable_balance\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10\x61vailableBalance\x12H\n\rtotal_balance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctotalBalance\",\n\x14SubaccountTradeNonce\x12\x14\n\x05nonce\x18\x01 \x01(\rR\x05nonce\"\xe3\x01\n\tOrderInfo\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12#\n\rfee_recipient\x18\x02 \x01(\tR\x0c\x66\x65\x65Recipient\x12\x39\n\x05price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id\"\x84\x02\n\tSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\norder_info\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x03 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12H\n\rtrigger_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xcc\x02\n\x0eSpotLimitOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x02 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12?\n\x08\x66illable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12H\n\rtrigger_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\"\xd4\x02\n\x0fSpotMarketOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x46\n\x0c\x62\x61lance_hold\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\x12\x1d\n\norder_hash\x18\x03 \x01(\x0cR\torderHash\x12\x44\n\norder_type\x18\x04 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xc7\x02\n\x0f\x44\x65rivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\norder_info\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x03 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12;\n\x06margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xfc\x03\n\x1bSubaccountOrderbookMetadata\x12\x39\n\x19vanilla_limit_order_count\x18\x01 \x01(\rR\x16vanillaLimitOrderCount\x12@\n\x1dreduce_only_limit_order_count\x18\x02 \x01(\rR\x19reduceOnlyLimitOrderCount\x12h\n\x1e\x61ggregate_reduce_only_quantity\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1b\x61ggregateReduceOnlyQuantity\x12\x61\n\x1a\x61ggregate_vanilla_quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x61ggregateVanillaQuantity\x12\x45\n\x1fvanilla_conditional_order_count\x18\x05 \x01(\rR\x1cvanillaConditionalOrderCount\x12L\n#reduce_only_conditional_order_count\x18\x06 \x01(\rR\x1freduceOnlyConditionalOrderCount\"\xc3\x01\n\x0fSubaccountOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\"\n\x0cisReduceOnly\x18\x03 \x01(\x08R\x0cisReduceOnly\x12\x10\n\x03\x63id\x18\x04 \x01(\tR\x03\x63id\"w\n\x13SubaccountOrderData\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective.exchange.v1beta1.SubaccountOrderR\x05order\x12\x1d\n\norder_hash\x18\x02 \x01(\x0cR\torderHash\"\x8f\x03\n\x14\x44\x65rivativeLimitOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x02 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12?\n\x08\x66illable\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x06 \x01(\x0cR\torderHash\"\x95\x03\n\x15\x44\x65rivativeMarketOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x02 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12\x44\n\x0bmargin_hold\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nmarginHold\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x06 \x01(\x0cR\torderHash\"\xc5\x02\n\x08Position\x12\x16\n\x06isLong\x18\x01 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12;\n\x06margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12]\n\x18\x63umulative_funding_entry\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16\x63umulativeFundingEntry\"I\n\x14MarketOrderIndicator\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05isBuy\x18\x02 \x01(\x08R\x05isBuy\"\xcd\x02\n\x08TradeLog\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12#\n\rsubaccount_id\x18\x03 \x01(\x0cR\x0csubaccountId\x12\x35\n\x03\x66\x65\x65\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\x06 \x01(\x0c\x42\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\"\x9a\x02\n\rPositionDelta\x12\x17\n\x07is_long\x18\x01 \x01(\x08R\x06isLong\x12R\n\x12\x65xecution_quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x65xecutionQuantity\x12N\n\x10\x65xecution_margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x65xecutionMargin\x12L\n\x0f\x65xecution_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0e\x65xecutionPrice\"\xa1\x03\n\x12\x44\x65rivativeTradeLog\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12P\n\x0eposition_delta\x18\x02 \x01(\x0b\x32).injective.exchange.v1beta1.PositionDeltaR\rpositionDelta\x12;\n\x06payout\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout\x12\x35\n\x03\x66\x65\x65\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\x06 \x01(\x0c\x42\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\x12\x35\n\x03pnl\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03pnl\"{\n\x12SubaccountPosition\x12@\n\x08position\x18\x01 \x01(\x0b\x32$.injective.exchange.v1beta1.PositionR\x08position\x12#\n\rsubaccount_id\x18\x02 \x01(\x0cR\x0csubaccountId\"w\n\x11SubaccountDeposit\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12=\n\x07\x64\x65posit\x18\x02 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositR\x07\x64\x65posit\"p\n\rDepositUpdate\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12I\n\x08\x64\x65posits\x18\x02 \x03(\x0b\x32-.injective.exchange.v1beta1.SubaccountDepositR\x08\x64\x65posits\"\xcc\x01\n\x10PointsMultiplier\x12[\n\x17maker_points_multiplier\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15makerPointsMultiplier\x12[\n\x17taker_points_multiplier\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15takerPointsMultiplier\"\xfe\x02\n\x1eTradingRewardCampaignBoostInfo\x12\x35\n\x17\x62oosted_spot_market_ids\x18\x01 \x03(\tR\x14\x62oostedSpotMarketIds\x12j\n\x17spot_market_multipliers\x18\x02 \x03(\x0b\x32,.injective.exchange.v1beta1.PointsMultiplierB\x04\xc8\xde\x1f\x00R\x15spotMarketMultipliers\x12\x41\n\x1d\x62oosted_derivative_market_ids\x18\x03 \x03(\tR\x1a\x62oostedDerivativeMarketIds\x12v\n\x1d\x64\x65rivative_market_multipliers\x18\x04 \x03(\x0b\x32,.injective.exchange.v1beta1.PointsMultiplierB\x04\xc8\xde\x1f\x00R\x1b\x64\x65rivativeMarketMultipliers\"\xbc\x01\n\x12\x43\x61mpaignRewardPool\x12\'\n\x0fstart_timestamp\x18\x01 \x01(\x03R\x0estartTimestamp\x12}\n\x14max_campaign_rewards\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x12maxCampaignRewards\"\xa9\x02\n\x19TradingRewardCampaignInfo\x12:\n\x19\x63\x61mpaign_duration_seconds\x18\x01 \x01(\x03R\x17\x63\x61mpaignDurationSeconds\x12!\n\x0cquote_denoms\x18\x02 \x03(\tR\x0bquoteDenoms\x12u\n\x19trading_reward_boost_info\x18\x03 \x01(\x0b\x32:.injective.exchange.v1beta1.TradingRewardCampaignBoostInfoR\x16tradingRewardBoostInfo\x12\x36\n\x17\x64isqualified_market_ids\x18\x04 \x03(\tR\x15\x64isqualifiedMarketIds\"\xc0\x02\n\x13\x46\x65\x65\x44iscountTierInfo\x12S\n\x13maker_discount_rate\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11makerDiscountRate\x12S\n\x13taker_discount_rate\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11takerDiscountRate\x12\x42\n\rstaked_amount\x18\x03 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0cstakedAmount\x12;\n\x06volume\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06volume\"\x8c\x02\n\x13\x46\x65\x65\x44iscountSchedule\x12!\n\x0c\x62ucket_count\x18\x01 \x01(\x04R\x0b\x62ucketCount\x12\'\n\x0f\x62ucket_duration\x18\x02 \x01(\x03R\x0e\x62ucketDuration\x12!\n\x0cquote_denoms\x18\x03 \x03(\tR\x0bquoteDenoms\x12N\n\ntier_infos\x18\x04 \x03(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountTierInfoR\ttierInfos\x12\x36\n\x17\x64isqualified_market_ids\x18\x05 \x03(\tR\x15\x64isqualifiedMarketIds\"M\n\x12\x46\x65\x65\x44iscountTierTTL\x12\x12\n\x04tier\x18\x01 \x01(\x04R\x04tier\x12#\n\rttl_timestamp\x18\x02 \x01(\x03R\x0cttlTimestamp\"\x9e\x01\n\x0cVolumeRecord\x12\x46\n\x0cmaker_volume\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bmakerVolume\x12\x46\n\x0ctaker_volume\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0btakerVolume\"\x91\x01\n\x0e\x41\x63\x63ountRewards\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x65\n\x07rewards\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x07rewards\"\x86\x01\n\x0cTradeRecords\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Y\n\x14latest_trade_records\x18\x02 \x03(\x0b\x32\'.injective.exchange.v1beta1.TradeRecordR\x12latestTradeRecords\"6\n\rSubaccountIDs\x12%\n\x0esubaccount_ids\x18\x01 \x03(\x0cR\rsubaccountIds\"\xa7\x01\n\x0bTradeRecord\x12\x1c\n\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\"m\n\x05Level\x12\x31\n\x01p\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01p\x12\x31\n\x01q\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01q\"\x97\x01\n\x1f\x41ggregateSubaccountVolumeRecord\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12O\n\x0emarket_volumes\x18\x02 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\rmarketVolumes\"\x89\x01\n\x1c\x41ggregateAccountVolumeRecord\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12O\n\x0emarket_volumes\x18\x02 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\rmarketVolumes\"s\n\x0cMarketVolume\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x46\n\x06volume\x18\x02 \x01(\x0b\x32(.injective.exchange.v1beta1.VolumeRecordB\x04\xc8\xde\x1f\x00R\x06volume\"A\n\rDenomDecimals\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x1a\n\x08\x64\x65\x63imals\x18\x02 \x01(\x04R\x08\x64\x65\x63imals\"e\n\x12GrantAuthorization\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12\x35\n\x06\x61mount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"^\n\x0b\x41\x63tiveGrant\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x35\n\x06\x61mount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"\x90\x01\n\x0e\x45\x66\x66\x65\x63tiveGrant\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12I\n\x11net_granted_stake\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0fnetGrantedStake\x12\x19\n\x08is_valid\x18\x03 \x01(\x08R\x07isValid*t\n\x1c\x41tomicMarketOrderAccessLevel\x12\n\n\x06Nobody\x10\x00\x12\"\n\x1e\x42\x65ginBlockerSmartContractsOnly\x10\x01\x12\x16\n\x12SmartContractsOnly\x10\x02\x12\x0c\n\x08\x45veryone\x10\x03*T\n\x0cMarketStatus\x12\x0f\n\x0bUnspecified\x10\x00\x12\n\n\x06\x41\x63tive\x10\x01\x12\n\n\x06Paused\x10\x02\x12\x0e\n\nDemolished\x10\x03\x12\x0b\n\x07\x45xpired\x10\x04*\xbb\x02\n\tOrderType\x12 \n\x0bUNSPECIFIED\x10\x00\x1a\x0f\x8a\x9d \x0bUNSPECIFIED\x12\x10\n\x03\x42UY\x10\x01\x1a\x07\x8a\x9d \x03\x42UY\x12\x12\n\x04SELL\x10\x02\x1a\x08\x8a\x9d \x04SELL\x12\x1a\n\x08STOP_BUY\x10\x03\x1a\x0c\x8a\x9d \x08STOP_BUY\x12\x1c\n\tSTOP_SELL\x10\x04\x1a\r\x8a\x9d \tSTOP_SELL\x12\x1a\n\x08TAKE_BUY\x10\x05\x1a\x0c\x8a\x9d \x08TAKE_BUY\x12\x1c\n\tTAKE_SELL\x10\x06\x1a\r\x8a\x9d \tTAKE_SELL\x12\x16\n\x06\x42UY_PO\x10\x07\x1a\n\x8a\x9d \x06\x42UY_PO\x12\x18\n\x07SELL_PO\x10\x08\x1a\x0b\x8a\x9d \x07SELL_PO\x12\x1e\n\nBUY_ATOMIC\x10\t\x1a\x0e\x8a\x9d \nBUY_ATOMIC\x12 \n\x0bSELL_ATOMIC\x10\n\x1a\x0f\x8a\x9d \x0bSELL_ATOMIC*\xaf\x01\n\rExecutionType\x12\x1c\n\x18UnspecifiedExecutionType\x10\x00\x12\n\n\x06Market\x10\x01\x12\r\n\tLimitFill\x10\x02\x12\x1a\n\x16LimitMatchRestingOrder\x10\x03\x12\x16\n\x12LimitMatchNewOrder\x10\x04\x12\x15\n\x11MarketLiquidation\x10\x05\x12\x1a\n\x16\x45xpiryMarketSettlement\x10\x06*\x89\x02\n\tOrderMask\x12\x16\n\x06UNUSED\x10\x00\x1a\n\x8a\x9d \x06UNUSED\x12\x10\n\x03\x41NY\x10\x01\x1a\x07\x8a\x9d \x03\x41NY\x12\x18\n\x07REGULAR\x10\x02\x1a\x0b\x8a\x9d \x07REGULAR\x12 \n\x0b\x43ONDITIONAL\x10\x04\x1a\x0f\x8a\x9d \x0b\x43ONDITIONAL\x12.\n\x17\x44IRECTION_BUY_OR_HIGHER\x10\x08\x1a\x11\x8a\x9d \rBUY_OR_HIGHER\x12.\n\x17\x44IRECTION_SELL_OR_LOWER\x10\x10\x1a\x11\x8a\x9d \rSELL_OR_LOWER\x12\x1b\n\x0bTYPE_MARKET\x10 \x1a\n\x8a\x9d \x06MARKET\x12\x19\n\nTYPE_LIMIT\x10@\x1a\t\x8a\x9d \x05LIMITB\x89\x02\n\x1e\x63om.injective.exchange.v1beta1B\rExchangeProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)injective/exchange/v1beta1/exchange.proto\x12\x1ainjective.exchange.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\xdd\x15\n\x06Params\x12\x65\n\x1fspot_market_instant_listing_fee\x18\x01 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x1bspotMarketInstantListingFee\x12q\n%derivative_market_instant_listing_fee\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R!derivativeMarketInstantListingFee\x12\x61\n\x1b\x64\x65\x66\x61ult_spot_maker_fee_rate\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17\x64\x65\x66\x61ultSpotMakerFeeRate\x12\x61\n\x1b\x64\x65\x66\x61ult_spot_taker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17\x64\x65\x66\x61ultSpotTakerFeeRate\x12m\n!default_derivative_maker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultDerivativeMakerFeeRate\x12m\n!default_derivative_taker_fee_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultDerivativeTakerFeeRate\x12\x64\n\x1c\x64\x65\x66\x61ult_initial_margin_ratio\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19\x64\x65\x66\x61ultInitialMarginRatio\x12l\n default_maintenance_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultMaintenanceMarginRatio\x12\x38\n\x18\x64\x65\x66\x61ult_funding_interval\x18\t \x01(\x03R\x16\x64\x65\x66\x61ultFundingInterval\x12)\n\x10\x66unding_multiple\x18\n \x01(\x03R\x0f\x66undingMultiple\x12X\n\x16relayer_fee_share_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12i\n\x1f\x64\x65\x66\x61ult_hourly_funding_rate_cap\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1b\x64\x65\x66\x61ultHourlyFundingRateCap\x12\x64\n\x1c\x64\x65\x66\x61ult_hourly_interest_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19\x64\x65\x66\x61ultHourlyInterestRate\x12\x44\n\x1fmax_derivative_order_side_count\x18\x0e \x01(\rR\x1bmaxDerivativeOrderSideCount\x12s\n\'inj_reward_staked_requirement_threshold\x18\x0f \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR#injRewardStakedRequirementThreshold\x12G\n trading_rewards_vesting_duration\x18\x10 \x01(\x03R\x1dtradingRewardsVestingDuration\x12\x64\n\x1cliquidator_reward_share_rate\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19liquidatorRewardShareRate\x12x\n)binary_options_market_instant_listing_fee\x18\x12 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R$binaryOptionsMarketInstantListingFee\x12\x80\x01\n atomic_market_order_access_level\x18\x13 \x01(\x0e\x32\x38.injective.exchange.v1beta1.AtomicMarketOrderAccessLevelR\x1c\x61tomicMarketOrderAccessLevel\x12x\n\'spot_atomic_market_order_fee_multiplier\x18\x14 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"spotAtomicMarketOrderFeeMultiplier\x12\x84\x01\n-derivative_atomic_market_order_fee_multiplier\x18\x15 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR(derivativeAtomicMarketOrderFeeMultiplier\x12\x8b\x01\n1binary_options_atomic_market_order_fee_multiplier\x18\x16 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR+binaryOptionsAtomicMarketOrderFeeMultiplier\x12^\n\x19minimal_protocol_fee_rate\x18\x17 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16minimalProtocolFeeRate\x12[\n+is_instant_derivative_market_launch_enabled\x18\x18 \x01(\x08R&isInstantDerivativeMarketLaunchEnabled\x12\x44\n\x1fpost_only_mode_height_threshold\x18\x19 \x01(\x03R\x1bpostOnlyModeHeightThreshold\x12g\n1margin_decrease_price_timestamp_threshold_seconds\x18\x1a \x01(\x03R,marginDecreasePriceTimestampThresholdSeconds\x12\'\n\x0f\x65xchange_admins\x18\x1b \x03(\tR\x0e\x65xchangeAdmins\x12L\n\x13inj_auction_max_cap\x18\x1c \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10injAuctionMaxCap:\x18\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0f\x65xchange/Params\"\x84\x01\n\x13MarketFeeMultiplier\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\x0e\x66\x65\x65_multiplier\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rfeeMultiplier:\x04\x88\xa0\x1f\x00\"\x93\t\n\x10\x44\x65rivativeMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x02 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x03 \x01(\tR\x0boracleQuote\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x05 \x01(\rR\x11oracleScaleFactor\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12\x1b\n\tmarket_id\x18\x07 \x01(\tR\x08marketId\x12U\n\x14initial_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12 \n\x0bisPerpetual\x18\r \x01(\x08R\x0bisPerpetual\x12@\n\x06status\x18\x0e \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x14\n\x05\x61\x64min\x18\x12 \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\x13 \x01(\rR\x10\x61\x64minPermissions\x12%\n\x0equote_decimals\x18\x14 \x01(\rR\rquoteDecimals:\x04\x88\xa0\x1f\x00\"\xfe\x08\n\x13\x42inaryOptionsMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x02 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x03 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x05 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x06 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\x07 \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\x08 \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\t \x01(\tR\nquoteDenom\x12\x1b\n\tmarket_id\x18\n \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12@\n\x06status\x18\x0e \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12N\n\x10settlement_price\x18\x11 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x46\n\x0cmin_notional\x18\x12 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12+\n\x11\x61\x64min_permissions\x18\x13 \x01(\rR\x10\x61\x64minPermissions\x12%\n\x0equote_decimals\x18\x14 \x01(\rR\rquoteDecimals:\x04\x88\xa0\x1f\x00\"\xe4\x02\n\x17\x45xpiryFuturesMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x31\n\x14\x65xpiration_timestamp\x18\x02 \x01(\x03R\x13\x65xpirationTimestamp\x12\x30\n\x14twap_start_timestamp\x18\x03 \x01(\x03R\x12twapStartTimestamp\x12w\n&expiration_twap_start_price_cumulative\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"expirationTwapStartPriceCumulative\x12N\n\x10settlement_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\"\xc6\x02\n\x13PerpetualMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Z\n\x17hourly_funding_rate_cap\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14hourlyFundingRateCap\x12U\n\x14hourly_interest_rate\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x04 \x01(\x03R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x05 \x01(\x03R\x0f\x66undingInterval\"\xe3\x01\n\x16PerpetualMarketFunding\x12R\n\x12\x63umulative_funding\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x63umulativeFunding\x12N\n\x10\x63umulative_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x03R\rlastTimestamp\"\x8d\x01\n\x1e\x44\x65rivativeMarketSettlementInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\"=\n\x14NextFundingTimestamp\x12%\n\x0enext_timestamp\x18\x01 \x01(\x03R\rnextTimestamp\"\xea\x01\n\x0eMidPriceAndTOB\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"\xb8\x06\n\nSpotMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12\x1b\n\tmarket_id\x18\x07 \x01(\tR\x08marketId\x12@\n\x06status\x18\x08 \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x14\n\x05\x61\x64min\x18\x0c \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\r \x01(\rR\x10\x61\x64minPermissions\x12#\n\rbase_decimals\x18\x0e \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\x0f \x01(\rR\rquoteDecimals\"\xa5\x01\n\x07\x44\x65posit\x12P\n\x11\x61vailable_balance\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10\x61vailableBalance\x12H\n\rtotal_balance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctotalBalance\",\n\x14SubaccountTradeNonce\x12\x14\n\x05nonce\x18\x01 \x01(\rR\x05nonce\"\xe3\x01\n\tOrderInfo\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12#\n\rfee_recipient\x18\x02 \x01(\tR\x0c\x66\x65\x65Recipient\x12\x39\n\x05price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id\"\x84\x02\n\tSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\norder_info\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x03 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12H\n\rtrigger_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xcc\x02\n\x0eSpotLimitOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x02 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12?\n\x08\x66illable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12H\n\rtrigger_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\"\xd4\x02\n\x0fSpotMarketOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x46\n\x0c\x62\x61lance_hold\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\x12\x1d\n\norder_hash\x18\x03 \x01(\x0cR\torderHash\x12\x44\n\norder_type\x18\x04 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xc7\x02\n\x0f\x44\x65rivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\norder_info\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x03 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12;\n\x06margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xfc\x03\n\x1bSubaccountOrderbookMetadata\x12\x39\n\x19vanilla_limit_order_count\x18\x01 \x01(\rR\x16vanillaLimitOrderCount\x12@\n\x1dreduce_only_limit_order_count\x18\x02 \x01(\rR\x19reduceOnlyLimitOrderCount\x12h\n\x1e\x61ggregate_reduce_only_quantity\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1b\x61ggregateReduceOnlyQuantity\x12\x61\n\x1a\x61ggregate_vanilla_quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x61ggregateVanillaQuantity\x12\x45\n\x1fvanilla_conditional_order_count\x18\x05 \x01(\rR\x1cvanillaConditionalOrderCount\x12L\n#reduce_only_conditional_order_count\x18\x06 \x01(\rR\x1freduceOnlyConditionalOrderCount\"\xc3\x01\n\x0fSubaccountOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\"\n\x0cisReduceOnly\x18\x03 \x01(\x08R\x0cisReduceOnly\x12\x10\n\x03\x63id\x18\x04 \x01(\tR\x03\x63id\"w\n\x13SubaccountOrderData\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective.exchange.v1beta1.SubaccountOrderR\x05order\x12\x1d\n\norder_hash\x18\x02 \x01(\x0cR\torderHash\"\x8f\x03\n\x14\x44\x65rivativeLimitOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x02 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12?\n\x08\x66illable\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x06 \x01(\x0cR\torderHash\"\x95\x03\n\x15\x44\x65rivativeMarketOrder\x12J\n\norder_info\x18\x01 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x44\n\norder_type\x18\x02 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderTypeR\torderType\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12\x44\n\x0bmargin_hold\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nmarginHold\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x06 \x01(\x0cR\torderHash\"\xc5\x02\n\x08Position\x12\x16\n\x06isLong\x18\x01 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12;\n\x06margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12]\n\x18\x63umulative_funding_entry\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16\x63umulativeFundingEntry\"I\n\x14MarketOrderIndicator\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05isBuy\x18\x02 \x01(\x08R\x05isBuy\"\xcd\x02\n\x08TradeLog\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12#\n\rsubaccount_id\x18\x03 \x01(\x0cR\x0csubaccountId\x12\x35\n\x03\x66\x65\x65\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\x06 \x01(\x0c\x42\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\"\x9a\x02\n\rPositionDelta\x12\x17\n\x07is_long\x18\x01 \x01(\x08R\x06isLong\x12R\n\x12\x65xecution_quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x65xecutionQuantity\x12N\n\x10\x65xecution_margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x65xecutionMargin\x12L\n\x0f\x65xecution_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0e\x65xecutionPrice\"\xa1\x03\n\x12\x44\x65rivativeTradeLog\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12P\n\x0eposition_delta\x18\x02 \x01(\x0b\x32).injective.exchange.v1beta1.PositionDeltaR\rpositionDelta\x12;\n\x06payout\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout\x12\x35\n\x03\x66\x65\x65\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\x06 \x01(\x0c\x42\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\x12\x35\n\x03pnl\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03pnl\"{\n\x12SubaccountPosition\x12@\n\x08position\x18\x01 \x01(\x0b\x32$.injective.exchange.v1beta1.PositionR\x08position\x12#\n\rsubaccount_id\x18\x02 \x01(\x0cR\x0csubaccountId\"w\n\x11SubaccountDeposit\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12=\n\x07\x64\x65posit\x18\x02 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositR\x07\x64\x65posit\"p\n\rDepositUpdate\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12I\n\x08\x64\x65posits\x18\x02 \x03(\x0b\x32-.injective.exchange.v1beta1.SubaccountDepositR\x08\x64\x65posits\"\xcc\x01\n\x10PointsMultiplier\x12[\n\x17maker_points_multiplier\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15makerPointsMultiplier\x12[\n\x17taker_points_multiplier\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15takerPointsMultiplier\"\xfe\x02\n\x1eTradingRewardCampaignBoostInfo\x12\x35\n\x17\x62oosted_spot_market_ids\x18\x01 \x03(\tR\x14\x62oostedSpotMarketIds\x12j\n\x17spot_market_multipliers\x18\x02 \x03(\x0b\x32,.injective.exchange.v1beta1.PointsMultiplierB\x04\xc8\xde\x1f\x00R\x15spotMarketMultipliers\x12\x41\n\x1d\x62oosted_derivative_market_ids\x18\x03 \x03(\tR\x1a\x62oostedDerivativeMarketIds\x12v\n\x1d\x64\x65rivative_market_multipliers\x18\x04 \x03(\x0b\x32,.injective.exchange.v1beta1.PointsMultiplierB\x04\xc8\xde\x1f\x00R\x1b\x64\x65rivativeMarketMultipliers\"\xbc\x01\n\x12\x43\x61mpaignRewardPool\x12\'\n\x0fstart_timestamp\x18\x01 \x01(\x03R\x0estartTimestamp\x12}\n\x14max_campaign_rewards\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x12maxCampaignRewards\"\xa9\x02\n\x19TradingRewardCampaignInfo\x12:\n\x19\x63\x61mpaign_duration_seconds\x18\x01 \x01(\x03R\x17\x63\x61mpaignDurationSeconds\x12!\n\x0cquote_denoms\x18\x02 \x03(\tR\x0bquoteDenoms\x12u\n\x19trading_reward_boost_info\x18\x03 \x01(\x0b\x32:.injective.exchange.v1beta1.TradingRewardCampaignBoostInfoR\x16tradingRewardBoostInfo\x12\x36\n\x17\x64isqualified_market_ids\x18\x04 \x03(\tR\x15\x64isqualifiedMarketIds\"\xc0\x02\n\x13\x46\x65\x65\x44iscountTierInfo\x12S\n\x13maker_discount_rate\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11makerDiscountRate\x12S\n\x13taker_discount_rate\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11takerDiscountRate\x12\x42\n\rstaked_amount\x18\x03 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0cstakedAmount\x12;\n\x06volume\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06volume\"\x8c\x02\n\x13\x46\x65\x65\x44iscountSchedule\x12!\n\x0c\x62ucket_count\x18\x01 \x01(\x04R\x0b\x62ucketCount\x12\'\n\x0f\x62ucket_duration\x18\x02 \x01(\x03R\x0e\x62ucketDuration\x12!\n\x0cquote_denoms\x18\x03 \x03(\tR\x0bquoteDenoms\x12N\n\ntier_infos\x18\x04 \x03(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountTierInfoR\ttierInfos\x12\x36\n\x17\x64isqualified_market_ids\x18\x05 \x03(\tR\x15\x64isqualifiedMarketIds\"M\n\x12\x46\x65\x65\x44iscountTierTTL\x12\x12\n\x04tier\x18\x01 \x01(\x04R\x04tier\x12#\n\rttl_timestamp\x18\x02 \x01(\x03R\x0cttlTimestamp\"\x9e\x01\n\x0cVolumeRecord\x12\x46\n\x0cmaker_volume\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bmakerVolume\x12\x46\n\x0ctaker_volume\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0btakerVolume\"\x91\x01\n\x0e\x41\x63\x63ountRewards\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x65\n\x07rewards\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x07rewards\"\x86\x01\n\x0cTradeRecords\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Y\n\x14latest_trade_records\x18\x02 \x03(\x0b\x32\'.injective.exchange.v1beta1.TradeRecordR\x12latestTradeRecords\"6\n\rSubaccountIDs\x12%\n\x0esubaccount_ids\x18\x01 \x03(\x0cR\rsubaccountIds\"\xa7\x01\n\x0bTradeRecord\x12\x1c\n\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\"m\n\x05Level\x12\x31\n\x01p\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01p\x12\x31\n\x01q\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01q\"\x97\x01\n\x1f\x41ggregateSubaccountVolumeRecord\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12O\n\x0emarket_volumes\x18\x02 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\rmarketVolumes\"\x89\x01\n\x1c\x41ggregateAccountVolumeRecord\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12O\n\x0emarket_volumes\x18\x02 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\rmarketVolumes\"s\n\x0cMarketVolume\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x46\n\x06volume\x18\x02 \x01(\x0b\x32(.injective.exchange.v1beta1.VolumeRecordB\x04\xc8\xde\x1f\x00R\x06volume\"A\n\rDenomDecimals\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x1a\n\x08\x64\x65\x63imals\x18\x02 \x01(\x04R\x08\x64\x65\x63imals\"e\n\x12GrantAuthorization\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12\x35\n\x06\x61mount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"^\n\x0b\x41\x63tiveGrant\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x35\n\x06\x61mount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"\x90\x01\n\x0e\x45\x66\x66\x65\x63tiveGrant\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12I\n\x11net_granted_stake\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0fnetGrantedStake\x12\x19\n\x08is_valid\x18\x03 \x01(\x08R\x07isValid*t\n\x1c\x41tomicMarketOrderAccessLevel\x12\n\n\x06Nobody\x10\x00\x12\"\n\x1e\x42\x65ginBlockerSmartContractsOnly\x10\x01\x12\x16\n\x12SmartContractsOnly\x10\x02\x12\x0c\n\x08\x45veryone\x10\x03*T\n\x0cMarketStatus\x12\x0f\n\x0bUnspecified\x10\x00\x12\n\n\x06\x41\x63tive\x10\x01\x12\n\n\x06Paused\x10\x02\x12\x0e\n\nDemolished\x10\x03\x12\x0b\n\x07\x45xpired\x10\x04*\xbb\x02\n\tOrderType\x12 \n\x0bUNSPECIFIED\x10\x00\x1a\x0f\x8a\x9d \x0bUNSPECIFIED\x12\x10\n\x03\x42UY\x10\x01\x1a\x07\x8a\x9d \x03\x42UY\x12\x12\n\x04SELL\x10\x02\x1a\x08\x8a\x9d \x04SELL\x12\x1a\n\x08STOP_BUY\x10\x03\x1a\x0c\x8a\x9d \x08STOP_BUY\x12\x1c\n\tSTOP_SELL\x10\x04\x1a\r\x8a\x9d \tSTOP_SELL\x12\x1a\n\x08TAKE_BUY\x10\x05\x1a\x0c\x8a\x9d \x08TAKE_BUY\x12\x1c\n\tTAKE_SELL\x10\x06\x1a\r\x8a\x9d \tTAKE_SELL\x12\x16\n\x06\x42UY_PO\x10\x07\x1a\n\x8a\x9d \x06\x42UY_PO\x12\x18\n\x07SELL_PO\x10\x08\x1a\x0b\x8a\x9d \x07SELL_PO\x12\x1e\n\nBUY_ATOMIC\x10\t\x1a\x0e\x8a\x9d \nBUY_ATOMIC\x12 \n\x0bSELL_ATOMIC\x10\n\x1a\x0f\x8a\x9d \x0bSELL_ATOMIC*\xaf\x01\n\rExecutionType\x12\x1c\n\x18UnspecifiedExecutionType\x10\x00\x12\n\n\x06Market\x10\x01\x12\r\n\tLimitFill\x10\x02\x12\x1a\n\x16LimitMatchRestingOrder\x10\x03\x12\x16\n\x12LimitMatchNewOrder\x10\x04\x12\x15\n\x11MarketLiquidation\x10\x05\x12\x1a\n\x16\x45xpiryMarketSettlement\x10\x06*\x89\x02\n\tOrderMask\x12\x16\n\x06UNUSED\x10\x00\x1a\n\x8a\x9d \x06UNUSED\x12\x10\n\x03\x41NY\x10\x01\x1a\x07\x8a\x9d \x03\x41NY\x12\x18\n\x07REGULAR\x10\x02\x1a\x0b\x8a\x9d \x07REGULAR\x12 \n\x0b\x43ONDITIONAL\x10\x04\x1a\x0f\x8a\x9d \x0b\x43ONDITIONAL\x12.\n\x17\x44IRECTION_BUY_OR_HIGHER\x10\x08\x1a\x11\x8a\x9d \rBUY_OR_HIGHER\x12.\n\x17\x44IRECTION_SELL_OR_LOWER\x10\x10\x1a\x11\x8a\x9d \rSELL_OR_LOWER\x12\x1b\n\x0bTYPE_MARKET\x10 \x1a\n\x8a\x9d \x06MARKET\x12\x19\n\nTYPE_LIMIT\x10@\x1a\t\x8a\x9d \x05LIMITB\x89\x02\n\x1e\x63om.injective.exchange.v1beta1B\rExchangeProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -298,116 +298,116 @@ _globals['_ACTIVEGRANT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' _globals['_EFFECTIVEGRANT'].fields_by_name['net_granted_stake']._loaded_options = None _globals['_EFFECTIVEGRANT'].fields_by_name['net_granted_stake']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' - _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=15988 - _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=16104 - _globals['_MARKETSTATUS']._serialized_start=16106 - _globals['_MARKETSTATUS']._serialized_end=16190 - _globals['_ORDERTYPE']._serialized_start=16193 - _globals['_ORDERTYPE']._serialized_end=16508 - _globals['_EXECUTIONTYPE']._serialized_start=16511 - _globals['_EXECUTIONTYPE']._serialized_end=16686 - _globals['_ORDERMASK']._serialized_start=16689 - _globals['_ORDERMASK']._serialized_end=16954 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=16142 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=16258 + _globals['_MARKETSTATUS']._serialized_start=16260 + _globals['_MARKETSTATUS']._serialized_end=16344 + _globals['_ORDERTYPE']._serialized_start=16347 + _globals['_ORDERTYPE']._serialized_end=16662 + _globals['_EXECUTIONTYPE']._serialized_start=16665 + _globals['_EXECUTIONTYPE']._serialized_end=16840 + _globals['_ORDERMASK']._serialized_start=16843 + _globals['_ORDERMASK']._serialized_end=17108 _globals['_PARAMS']._serialized_start=186 _globals['_PARAMS']._serialized_end=2967 _globals['_MARKETFEEMULTIPLIER']._serialized_start=2970 _globals['_MARKETFEEMULTIPLIER']._serialized_end=3102 _globals['_DERIVATIVEMARKET']._serialized_start=3105 - _globals['_DERIVATIVEMARKET']._serialized_end=4237 - _globals['_BINARYOPTIONSMARKET']._serialized_start=4240 - _globals['_BINARYOPTIONSMARKET']._serialized_end=5351 - _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=5354 - _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=5710 - _globals['_PERPETUALMARKETINFO']._serialized_start=5713 - _globals['_PERPETUALMARKETINFO']._serialized_end=6039 - _globals['_PERPETUALMARKETFUNDING']._serialized_start=6042 - _globals['_PERPETUALMARKETFUNDING']._serialized_end=6269 - _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=6272 - _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=6413 - _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=6415 - _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=6476 - _globals['_MIDPRICEANDTOB']._serialized_start=6479 - _globals['_MIDPRICEANDTOB']._serialized_end=6713 - _globals['_SPOTMARKET']._serialized_start=6716 - _globals['_SPOTMARKET']._serialized_end=7464 - _globals['_DEPOSIT']._serialized_start=7467 - _globals['_DEPOSIT']._serialized_end=7632 - _globals['_SUBACCOUNTTRADENONCE']._serialized_start=7634 - _globals['_SUBACCOUNTTRADENONCE']._serialized_end=7678 - _globals['_ORDERINFO']._serialized_start=7681 - _globals['_ORDERINFO']._serialized_end=7908 - _globals['_SPOTORDER']._serialized_start=7911 - _globals['_SPOTORDER']._serialized_end=8171 - _globals['_SPOTLIMITORDER']._serialized_start=8174 - _globals['_SPOTLIMITORDER']._serialized_end=8506 - _globals['_SPOTMARKETORDER']._serialized_start=8509 - _globals['_SPOTMARKETORDER']._serialized_end=8849 - _globals['_DERIVATIVEORDER']._serialized_start=8852 - _globals['_DERIVATIVEORDER']._serialized_end=9179 - _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_start=9182 - _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_end=9690 - _globals['_SUBACCOUNTORDER']._serialized_start=9693 - _globals['_SUBACCOUNTORDER']._serialized_end=9888 - _globals['_SUBACCOUNTORDERDATA']._serialized_start=9890 - _globals['_SUBACCOUNTORDERDATA']._serialized_end=10009 - _globals['_DERIVATIVELIMITORDER']._serialized_start=10012 - _globals['_DERIVATIVELIMITORDER']._serialized_end=10411 - _globals['_DERIVATIVEMARKETORDER']._serialized_start=10414 - _globals['_DERIVATIVEMARKETORDER']._serialized_end=10819 - _globals['_POSITION']._serialized_start=10822 - _globals['_POSITION']._serialized_end=11147 - _globals['_MARKETORDERINDICATOR']._serialized_start=11149 - _globals['_MARKETORDERINDICATOR']._serialized_end=11222 - _globals['_TRADELOG']._serialized_start=11225 - _globals['_TRADELOG']._serialized_end=11558 - _globals['_POSITIONDELTA']._serialized_start=11561 - _globals['_POSITIONDELTA']._serialized_end=11843 - _globals['_DERIVATIVETRADELOG']._serialized_start=11846 - _globals['_DERIVATIVETRADELOG']._serialized_end=12263 - _globals['_SUBACCOUNTPOSITION']._serialized_start=12265 - _globals['_SUBACCOUNTPOSITION']._serialized_end=12388 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=12390 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=12509 - _globals['_DEPOSITUPDATE']._serialized_start=12511 - _globals['_DEPOSITUPDATE']._serialized_end=12623 - _globals['_POINTSMULTIPLIER']._serialized_start=12626 - _globals['_POINTSMULTIPLIER']._serialized_end=12830 - _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=12833 - _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=13215 - _globals['_CAMPAIGNREWARDPOOL']._serialized_start=13218 - _globals['_CAMPAIGNREWARDPOOL']._serialized_end=13406 - _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=13409 - _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=13706 - _globals['_FEEDISCOUNTTIERINFO']._serialized_start=13709 - _globals['_FEEDISCOUNTTIERINFO']._serialized_end=14029 - _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=14032 - _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=14300 - _globals['_FEEDISCOUNTTIERTTL']._serialized_start=14302 - _globals['_FEEDISCOUNTTIERTTL']._serialized_end=14379 - _globals['_VOLUMERECORD']._serialized_start=14382 - _globals['_VOLUMERECORD']._serialized_end=14540 - _globals['_ACCOUNTREWARDS']._serialized_start=14543 - _globals['_ACCOUNTREWARDS']._serialized_end=14688 - _globals['_TRADERECORDS']._serialized_start=14691 - _globals['_TRADERECORDS']._serialized_end=14825 - _globals['_SUBACCOUNTIDS']._serialized_start=14827 - _globals['_SUBACCOUNTIDS']._serialized_end=14881 - _globals['_TRADERECORD']._serialized_start=14884 - _globals['_TRADERECORD']._serialized_end=15051 - _globals['_LEVEL']._serialized_start=15053 - _globals['_LEVEL']._serialized_end=15162 - _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=15165 - _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=15316 - _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=15319 - _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=15456 - _globals['_MARKETVOLUME']._serialized_start=15458 - _globals['_MARKETVOLUME']._serialized_end=15573 - _globals['_DENOMDECIMALS']._serialized_start=15575 - _globals['_DENOMDECIMALS']._serialized_end=15640 - _globals['_GRANTAUTHORIZATION']._serialized_start=15642 - _globals['_GRANTAUTHORIZATION']._serialized_end=15743 - _globals['_ACTIVEGRANT']._serialized_start=15745 - _globals['_ACTIVEGRANT']._serialized_end=15839 - _globals['_EFFECTIVEGRANT']._serialized_start=15842 - _globals['_EFFECTIVEGRANT']._serialized_end=15986 + _globals['_DERIVATIVEMARKET']._serialized_end=4276 + _globals['_BINARYOPTIONSMARKET']._serialized_start=4279 + _globals['_BINARYOPTIONSMARKET']._serialized_end=5429 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=5432 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=5788 + _globals['_PERPETUALMARKETINFO']._serialized_start=5791 + _globals['_PERPETUALMARKETINFO']._serialized_end=6117 + _globals['_PERPETUALMARKETFUNDING']._serialized_start=6120 + _globals['_PERPETUALMARKETFUNDING']._serialized_end=6347 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=6350 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=6491 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=6493 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=6554 + _globals['_MIDPRICEANDTOB']._serialized_start=6557 + _globals['_MIDPRICEANDTOB']._serialized_end=6791 + _globals['_SPOTMARKET']._serialized_start=6794 + _globals['_SPOTMARKET']._serialized_end=7618 + _globals['_DEPOSIT']._serialized_start=7621 + _globals['_DEPOSIT']._serialized_end=7786 + _globals['_SUBACCOUNTTRADENONCE']._serialized_start=7788 + _globals['_SUBACCOUNTTRADENONCE']._serialized_end=7832 + _globals['_ORDERINFO']._serialized_start=7835 + _globals['_ORDERINFO']._serialized_end=8062 + _globals['_SPOTORDER']._serialized_start=8065 + _globals['_SPOTORDER']._serialized_end=8325 + _globals['_SPOTLIMITORDER']._serialized_start=8328 + _globals['_SPOTLIMITORDER']._serialized_end=8660 + _globals['_SPOTMARKETORDER']._serialized_start=8663 + _globals['_SPOTMARKETORDER']._serialized_end=9003 + _globals['_DERIVATIVEORDER']._serialized_start=9006 + _globals['_DERIVATIVEORDER']._serialized_end=9333 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_start=9336 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_end=9844 + _globals['_SUBACCOUNTORDER']._serialized_start=9847 + _globals['_SUBACCOUNTORDER']._serialized_end=10042 + _globals['_SUBACCOUNTORDERDATA']._serialized_start=10044 + _globals['_SUBACCOUNTORDERDATA']._serialized_end=10163 + _globals['_DERIVATIVELIMITORDER']._serialized_start=10166 + _globals['_DERIVATIVELIMITORDER']._serialized_end=10565 + _globals['_DERIVATIVEMARKETORDER']._serialized_start=10568 + _globals['_DERIVATIVEMARKETORDER']._serialized_end=10973 + _globals['_POSITION']._serialized_start=10976 + _globals['_POSITION']._serialized_end=11301 + _globals['_MARKETORDERINDICATOR']._serialized_start=11303 + _globals['_MARKETORDERINDICATOR']._serialized_end=11376 + _globals['_TRADELOG']._serialized_start=11379 + _globals['_TRADELOG']._serialized_end=11712 + _globals['_POSITIONDELTA']._serialized_start=11715 + _globals['_POSITIONDELTA']._serialized_end=11997 + _globals['_DERIVATIVETRADELOG']._serialized_start=12000 + _globals['_DERIVATIVETRADELOG']._serialized_end=12417 + _globals['_SUBACCOUNTPOSITION']._serialized_start=12419 + _globals['_SUBACCOUNTPOSITION']._serialized_end=12542 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=12544 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=12663 + _globals['_DEPOSITUPDATE']._serialized_start=12665 + _globals['_DEPOSITUPDATE']._serialized_end=12777 + _globals['_POINTSMULTIPLIER']._serialized_start=12780 + _globals['_POINTSMULTIPLIER']._serialized_end=12984 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=12987 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=13369 + _globals['_CAMPAIGNREWARDPOOL']._serialized_start=13372 + _globals['_CAMPAIGNREWARDPOOL']._serialized_end=13560 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=13563 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=13860 + _globals['_FEEDISCOUNTTIERINFO']._serialized_start=13863 + _globals['_FEEDISCOUNTTIERINFO']._serialized_end=14183 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=14186 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=14454 + _globals['_FEEDISCOUNTTIERTTL']._serialized_start=14456 + _globals['_FEEDISCOUNTTIERTTL']._serialized_end=14533 + _globals['_VOLUMERECORD']._serialized_start=14536 + _globals['_VOLUMERECORD']._serialized_end=14694 + _globals['_ACCOUNTREWARDS']._serialized_start=14697 + _globals['_ACCOUNTREWARDS']._serialized_end=14842 + _globals['_TRADERECORDS']._serialized_start=14845 + _globals['_TRADERECORDS']._serialized_end=14979 + _globals['_SUBACCOUNTIDS']._serialized_start=14981 + _globals['_SUBACCOUNTIDS']._serialized_end=15035 + _globals['_TRADERECORD']._serialized_start=15038 + _globals['_TRADERECORD']._serialized_end=15205 + _globals['_LEVEL']._serialized_start=15207 + _globals['_LEVEL']._serialized_end=15316 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=15319 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=15470 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=15473 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=15610 + _globals['_MARKETVOLUME']._serialized_start=15612 + _globals['_MARKETVOLUME']._serialized_end=15727 + _globals['_DENOMDECIMALS']._serialized_start=15729 + _globals['_DENOMDECIMALS']._serialized_end=15794 + _globals['_GRANTAUTHORIZATION']._serialized_start=15796 + _globals['_GRANTAUTHORIZATION']._serialized_end=15897 + _globals['_ACTIVEGRANT']._serialized_start=15899 + _globals['_ACTIVEGRANT']._serialized_end=15993 + _globals['_EFFECTIVEGRANT']._serialized_start=15996 + _globals['_EFFECTIVEGRANT']._serialized_end=16140 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/proposal_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/proposal_pb2.py index 962502a2..6d44d878 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/proposal_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/proposal_pb2.py @@ -22,7 +22,7 @@ from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)injective/exchange/v1beta1/proposal.proto\x12\x1ainjective.exchange.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a.cosmos/distribution/v1beta1/distribution.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a)injective/exchange/v1beta1/exchange.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\xd3\x06\n\x1dSpotMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12@\n\x06status\x18\t \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12\x1c\n\x06ticker\x18\n \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x0c \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:Q\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*&exchange/SpotMarketParamUpdateProposal\"\xcc\x01\n\x16\x45xchangeEnableProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12L\n\x0c\x65xchangeType\x18\x03 \x01(\x0e\x32(.injective.exchange.v1beta1.ExchangeTypeR\x0c\x65xchangeType:,\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x8a\xe7\xb0*\x1f\x65xchange/ExchangeEnableProposal\"\x96\r\n!BatchExchangeModificationProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x85\x01\n\"spot_market_param_update_proposals\x18\x03 \x03(\x0b\x32\x39.injective.exchange.v1beta1.SpotMarketParamUpdateProposalR\x1espotMarketParamUpdateProposals\x12\x97\x01\n(derivative_market_param_update_proposals\x18\x04 \x03(\x0b\x32?.injective.exchange.v1beta1.DerivativeMarketParamUpdateProposalR$derivativeMarketParamUpdateProposals\x12u\n\x1cspot_market_launch_proposals\x18\x05 \x03(\x0b\x32\x34.injective.exchange.v1beta1.SpotMarketLaunchProposalR\x19spotMarketLaunchProposals\x12\x84\x01\n!perpetual_market_launch_proposals\x18\x06 \x03(\x0b\x32\x39.injective.exchange.v1beta1.PerpetualMarketLaunchProposalR\x1eperpetualMarketLaunchProposals\x12\x91\x01\n&expiry_futures_market_launch_proposals\x18\x07 \x03(\x0b\x32=.injective.exchange.v1beta1.ExpiryFuturesMarketLaunchProposalR\"expiryFuturesMarketLaunchProposals\x12\x95\x01\n\'trading_reward_campaign_update_proposal\x18\x08 \x01(\x0b\x32?.injective.exchange.v1beta1.TradingRewardCampaignUpdateProposalR#tradingRewardCampaignUpdateProposal\x12\x91\x01\n&binary_options_market_launch_proposals\x18\t \x03(\x0b\x32=.injective.exchange.v1beta1.BinaryOptionsMarketLaunchProposalR\"binaryOptionsMarketLaunchProposals\x12\x94\x01\n%binary_options_param_update_proposals\x18\n \x03(\x0b\x32\x42.injective.exchange.v1beta1.BinaryOptionsMarketParamUpdateProposalR!binaryOptionsParamUpdateProposals\x12|\n\x1e\x64\x65nom_decimals_update_proposal\x18\x0b \x01(\x0b\x32\x37.injective.exchange.v1beta1.UpdateDenomDecimalsProposalR\x1b\x64\x65nomDecimalsUpdateProposal\x12\x63\n\x15\x66\x65\x65_discount_proposal\x18\x0c \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountProposalR\x13\x66\x65\x65\x44iscountProposal\x12\x87\x01\n\"market_forced_settlement_proposals\x18\r \x03(\x0b\x32:.injective.exchange.v1beta1.MarketForcedSettlementProposalR\x1fmarketForcedSettlementProposals:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/BatchExchangeModificationProposal\"\xca\x05\n\x18SpotMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x05 \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12I\n\x0emaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12\x46\n\x0cmin_notional\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x0b \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:L\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*!exchange/SpotMarketLaunchProposal\"\xa6\x08\n\x1dPerpetualMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x05 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x06 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x08 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12U\n\x14initial_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x10 \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:Q\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*&exchange/PerpetualMarketLaunchProposal\"\xe5\x07\n!BinaryOptionsMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x04 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x05 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x06 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\n \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\x0b \x01(\tR\nquoteDenom\x12I\n\x0emaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12+\n\x11\x61\x64min_permissions\x18\x11 \x01(\rR\x10\x61\x64minPermissions:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/BinaryOptionsMarketLaunchProposal\"\xc6\x08\n!ExpiryFuturesMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x05 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x06 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x08 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12\x16\n\x06\x65xpiry\x18\t \x01(\x03R\x06\x65xpiry\x12U\n\x14initial_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x11 \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/ExpiryFuturesMarketLaunchProposal\"\x92\n\n#DerivativeMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12U\n\x14initial_margin_ratio\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\t \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\n \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12S\n\x12HourlyInterestRate\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12HourlyInterestRate\x12W\n\x14HourlyFundingRateCap\x18\x0c \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14HourlyFundingRateCap\x12@\n\x06status\x18\r \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12M\n\roracle_params\x18\x0e \x01(\x0b\x32(.injective.exchange.v1beta1.OracleParamsR\x0coracleParams\x12\x1c\n\x06ticker\x18\x0f \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x11 \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/DerivativeMarketParamUpdateProposal\"N\n\tAdminInfo\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\x02 \x01(\rR\x10\x61\x64minPermissions\"\x99\x02\n\x1eMarketForcedSettlementProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice:R\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*\'exchange/MarketForcedSettlementProposal\"\xf8\x01\n\x1bUpdateDenomDecimalsProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12P\n\x0e\x64\x65nom_decimals\x18\x03 \x03(\x0b\x32).injective.exchange.v1beta1.DenomDecimalsR\rdenomDecimals:O\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*$exchange/UpdateDenomDecimalsProposal\"\xc2\x08\n&BinaryOptionsMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x31\n\x14\x65xpiration_timestamp\x18\t \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\n \x01(\x03R\x13settlementTimestamp\x12N\n\x10settlement_price\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x14\n\x05\x61\x64min\x18\x0c \x01(\tR\x05\x61\x64min\x12@\n\x06status\x18\r \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12U\n\roracle_params\x18\x0e \x01(\x0b\x32\x30.injective.exchange.v1beta1.ProviderOracleParamsR\x0coracleParams\x12\x1c\n\x06ticker\x18\x0f \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:Z\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*/exchange/BinaryOptionsMarketParamUpdateProposal\"\xc1\x01\n\x14ProviderOracleParams\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1a\n\x08provider\x18\x02 \x01(\tR\x08provider\x12.\n\x13oracle_scale_factor\x18\x03 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\"\xc9\x01\n\x0cOracleParams\x12\x1f\n\x0boracle_base\x18\x01 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x02 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x03 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\"\xf6\x02\n#TradingRewardCampaignLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12Z\n\rcampaign_info\x18\x03 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12\x62\n\x15\x63\x61mpaign_reward_pools\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x13\x63\x61mpaignRewardPools:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/TradingRewardCampaignLaunchProposal\"\xfc\x03\n#TradingRewardCampaignUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12Z\n\rcampaign_info\x18\x03 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12u\n\x1f\x63\x61mpaign_reward_pools_additions\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x1c\x63\x61mpaignRewardPoolsAdditions\x12q\n\x1d\x63\x61mpaign_reward_pools_updates\x18\x05 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x1a\x63\x61mpaignRewardPoolsUpdates:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/TradingRewardCampaignUpdateProposal\"\x80\x01\n\x11RewardPointUpdate\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\nnew_points\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tnewPoints\"\xd7\x02\n(TradingRewardPendingPointsUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x34\n\x16pending_pool_timestamp\x18\x03 \x01(\x03R\x14pendingPoolTimestamp\x12_\n\x14reward_point_updates\x18\x04 \x03(\x0b\x32-.injective.exchange.v1beta1.RewardPointUpdateR\x12rewardPointUpdates:\\\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*1exchange/TradingRewardPendingPointsUpdateProposal\"\xe3\x01\n\x13\x46\x65\x65\x44iscountProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12K\n\x08schedule\x18\x03 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x08schedule:G\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*\x1c\x65xchange/FeeDiscountProposal\"\x85\x02\n\x1f\x42\x61tchCommunityPoolSpendProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12U\n\tproposals\x18\x03 \x03(\x0b\x32\x37.cosmos.distribution.v1beta1.CommunityPoolSpendProposalR\tproposals:S\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*(exchange/BatchCommunityPoolSpendProposal\"\xb3\x02\n.AtomicMarketOrderFeeMultiplierScheduleProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x65\n\x16market_fee_multipliers\x18\x03 \x03(\x0b\x32/.injective.exchange.v1beta1.MarketFeeMultiplierR\x14marketFeeMultipliers:b\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*7exchange/AtomicMarketOrderFeeMultiplierScheduleProposal*x\n\x0c\x45xchangeType\x12\x32\n\x14\x45XCHANGE_UNSPECIFIED\x10\x00\x1a\x18\x8a\x9d \x14\x45XCHANGE_UNSPECIFIED\x12\x12\n\x04SPOT\x10\x01\x1a\x08\x8a\x9d \x04SPOT\x12 \n\x0b\x44\x45RIVATIVES\x10\x02\x1a\x0f\x8a\x9d \x0b\x44\x45RIVATIVESB\x89\x02\n\x1e\x63om.injective.exchange.v1beta1B\rProposalProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)injective/exchange/v1beta1/proposal.proto\x12\x1ainjective.exchange.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a.cosmos/distribution/v1beta1/distribution.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a)injective/exchange/v1beta1/exchange.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\x9f\x07\n\x1dSpotMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12@\n\x06status\x18\t \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12\x1c\n\x06ticker\x18\n \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x0c \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo\x12#\n\rbase_decimals\x18\r \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\x0e \x01(\rR\rquoteDecimals:Q\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*&exchange/SpotMarketParamUpdateProposal\"\xcc\x01\n\x16\x45xchangeEnableProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12L\n\x0c\x65xchangeType\x18\x03 \x01(\x0e\x32(.injective.exchange.v1beta1.ExchangeTypeR\x0c\x65xchangeType:,\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x8a\xe7\xb0*\x1f\x65xchange/ExchangeEnableProposal\"\x96\r\n!BatchExchangeModificationProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x85\x01\n\"spot_market_param_update_proposals\x18\x03 \x03(\x0b\x32\x39.injective.exchange.v1beta1.SpotMarketParamUpdateProposalR\x1espotMarketParamUpdateProposals\x12\x97\x01\n(derivative_market_param_update_proposals\x18\x04 \x03(\x0b\x32?.injective.exchange.v1beta1.DerivativeMarketParamUpdateProposalR$derivativeMarketParamUpdateProposals\x12u\n\x1cspot_market_launch_proposals\x18\x05 \x03(\x0b\x32\x34.injective.exchange.v1beta1.SpotMarketLaunchProposalR\x19spotMarketLaunchProposals\x12\x84\x01\n!perpetual_market_launch_proposals\x18\x06 \x03(\x0b\x32\x39.injective.exchange.v1beta1.PerpetualMarketLaunchProposalR\x1eperpetualMarketLaunchProposals\x12\x91\x01\n&expiry_futures_market_launch_proposals\x18\x07 \x03(\x0b\x32=.injective.exchange.v1beta1.ExpiryFuturesMarketLaunchProposalR\"expiryFuturesMarketLaunchProposals\x12\x95\x01\n\'trading_reward_campaign_update_proposal\x18\x08 \x01(\x0b\x32?.injective.exchange.v1beta1.TradingRewardCampaignUpdateProposalR#tradingRewardCampaignUpdateProposal\x12\x91\x01\n&binary_options_market_launch_proposals\x18\t \x03(\x0b\x32=.injective.exchange.v1beta1.BinaryOptionsMarketLaunchProposalR\"binaryOptionsMarketLaunchProposals\x12\x94\x01\n%binary_options_param_update_proposals\x18\n \x03(\x0b\x32\x42.injective.exchange.v1beta1.BinaryOptionsMarketParamUpdateProposalR!binaryOptionsParamUpdateProposals\x12|\n\x1e\x64\x65nom_decimals_update_proposal\x18\x0b \x01(\x0b\x32\x37.injective.exchange.v1beta1.UpdateDenomDecimalsProposalR\x1b\x64\x65nomDecimalsUpdateProposal\x12\x63\n\x15\x66\x65\x65_discount_proposal\x18\x0c \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountProposalR\x13\x66\x65\x65\x44iscountProposal\x12\x87\x01\n\"market_forced_settlement_proposals\x18\r \x03(\x0b\x32:.injective.exchange.v1beta1.MarketForcedSettlementProposalR\x1fmarketForcedSettlementProposals:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/BatchExchangeModificationProposal\"\x96\x06\n\x18SpotMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x05 \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12I\n\x0emaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12\x46\n\x0cmin_notional\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x0b \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo\x12#\n\rbase_decimals\x18\x0e \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\x0f \x01(\rR\rquoteDecimals:L\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*!exchange/SpotMarketLaunchProposal\"\xa6\x08\n\x1dPerpetualMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x05 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x06 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x08 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12U\n\x14initial_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x10 \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:Q\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*&exchange/PerpetualMarketLaunchProposal\"\xe5\x07\n!BinaryOptionsMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x04 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x05 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x06 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\n \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\x0b \x01(\tR\nquoteDenom\x12I\n\x0emaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12+\n\x11\x61\x64min_permissions\x18\x11 \x01(\rR\x10\x61\x64minPermissions:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/BinaryOptionsMarketLaunchProposal\"\xc6\x08\n!ExpiryFuturesMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x05 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x06 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x08 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12\x16\n\x06\x65xpiry\x18\t \x01(\x03R\x06\x65xpiry\x12U\n\x14initial_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x11 \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/ExpiryFuturesMarketLaunchProposal\"\x92\n\n#DerivativeMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12U\n\x14initial_margin_ratio\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\t \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\n \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12S\n\x12HourlyInterestRate\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12HourlyInterestRate\x12W\n\x14HourlyFundingRateCap\x18\x0c \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14HourlyFundingRateCap\x12@\n\x06status\x18\r \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12M\n\roracle_params\x18\x0e \x01(\x0b\x32(.injective.exchange.v1beta1.OracleParamsR\x0coracleParams\x12\x1c\n\x06ticker\x18\x0f \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x44\n\nadmin_info\x18\x11 \x01(\x0b\x32%.injective.exchange.v1beta1.AdminInfoR\tadminInfo:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/DerivativeMarketParamUpdateProposal\"N\n\tAdminInfo\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\x02 \x01(\rR\x10\x61\x64minPermissions\"\x99\x02\n\x1eMarketForcedSettlementProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice:R\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*\'exchange/MarketForcedSettlementProposal\"\xf8\x01\n\x1bUpdateDenomDecimalsProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12P\n\x0e\x64\x65nom_decimals\x18\x03 \x03(\x0b\x32).injective.exchange.v1beta1.DenomDecimalsR\rdenomDecimals:O\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*$exchange/UpdateDenomDecimalsProposal\"\xc2\x08\n&BinaryOptionsMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x31\n\x14\x65xpiration_timestamp\x18\t \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\n \x01(\x03R\x13settlementTimestamp\x12N\n\x10settlement_price\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x14\n\x05\x61\x64min\x18\x0c \x01(\tR\x05\x61\x64min\x12@\n\x06status\x18\r \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status\x12U\n\roracle_params\x18\x0e \x01(\x0b\x32\x30.injective.exchange.v1beta1.ProviderOracleParamsR\x0coracleParams\x12\x1c\n\x06ticker\x18\x0f \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:Z\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*/exchange/BinaryOptionsMarketParamUpdateProposal\"\xc1\x01\n\x14ProviderOracleParams\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1a\n\x08provider\x18\x02 \x01(\tR\x08provider\x12.\n\x13oracle_scale_factor\x18\x03 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\"\xc9\x01\n\x0cOracleParams\x12\x1f\n\x0boracle_base\x18\x01 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x02 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x03 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\"\xf6\x02\n#TradingRewardCampaignLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12Z\n\rcampaign_info\x18\x03 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12\x62\n\x15\x63\x61mpaign_reward_pools\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x13\x63\x61mpaignRewardPools:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/TradingRewardCampaignLaunchProposal\"\xfc\x03\n#TradingRewardCampaignUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12Z\n\rcampaign_info\x18\x03 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12u\n\x1f\x63\x61mpaign_reward_pools_additions\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x1c\x63\x61mpaignRewardPoolsAdditions\x12q\n\x1d\x63\x61mpaign_reward_pools_updates\x18\x05 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x1a\x63\x61mpaignRewardPoolsUpdates:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/TradingRewardCampaignUpdateProposal\"\x80\x01\n\x11RewardPointUpdate\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\nnew_points\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tnewPoints\"\xd7\x02\n(TradingRewardPendingPointsUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x34\n\x16pending_pool_timestamp\x18\x03 \x01(\x03R\x14pendingPoolTimestamp\x12_\n\x14reward_point_updates\x18\x04 \x03(\x0b\x32-.injective.exchange.v1beta1.RewardPointUpdateR\x12rewardPointUpdates:\\\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*1exchange/TradingRewardPendingPointsUpdateProposal\"\xe3\x01\n\x13\x46\x65\x65\x44iscountProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12K\n\x08schedule\x18\x03 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x08schedule:G\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*\x1c\x65xchange/FeeDiscountProposal\"\x85\x02\n\x1f\x42\x61tchCommunityPoolSpendProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12U\n\tproposals\x18\x03 \x03(\x0b\x32\x37.cosmos.distribution.v1beta1.CommunityPoolSpendProposalR\tproposals:S\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*(exchange/BatchCommunityPoolSpendProposal\"\xb3\x02\n.AtomicMarketOrderFeeMultiplierScheduleProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x65\n\x16market_fee_multipliers\x18\x03 \x03(\x0b\x32/.injective.exchange.v1beta1.MarketFeeMultiplierR\x14marketFeeMultipliers:b\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*7exchange/AtomicMarketOrderFeeMultiplierScheduleProposal*x\n\x0c\x45xchangeType\x12\x32\n\x14\x45XCHANGE_UNSPECIFIED\x10\x00\x1a\x18\x8a\x9d \x14\x45XCHANGE_UNSPECIFIED\x12\x12\n\x04SPOT\x10\x01\x1a\x08\x8a\x9d \x04SPOT\x12 \n\x0b\x44\x45RIVATIVES\x10\x02\x1a\x0f\x8a\x9d \x0b\x44\x45RIVATIVESB\x89\x02\n\x1e\x63om.injective.exchange.v1beta1B\rProposalProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -174,48 +174,48 @@ _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*(exchange/BatchCommunityPoolSpendProposal' _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._loaded_options = None _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*7exchange/AtomicMarketOrderFeeMultiplierScheduleProposal' - _globals['_EXCHANGETYPE']._serialized_start=12535 - _globals['_EXCHANGETYPE']._serialized_end=12655 + _globals['_EXCHANGETYPE']._serialized_start=12687 + _globals['_EXCHANGETYPE']._serialized_end=12807 _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_start=329 - _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_end=1180 - _globals['_EXCHANGEENABLEPROPOSAL']._serialized_start=1183 - _globals['_EXCHANGEENABLEPROPOSAL']._serialized_end=1387 - _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_start=1390 - _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_end=3076 - _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_start=3079 - _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_end=3793 - _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_start=3796 - _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_end=4858 - _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_start=4861 - _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_end=5858 - _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_start=5861 - _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_end=6955 - _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_start=6958 - _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_end=8256 - _globals['_ADMININFO']._serialized_start=8258 - _globals['_ADMININFO']._serialized_end=8336 - _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_start=8339 - _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_end=8620 - _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_start=8623 - _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_end=8871 - _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_start=8874 - _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_end=9964 - _globals['_PROVIDERORACLEPARAMS']._serialized_start=9967 - _globals['_PROVIDERORACLEPARAMS']._serialized_end=10160 - _globals['_ORACLEPARAMS']._serialized_start=10163 - _globals['_ORACLEPARAMS']._serialized_end=10364 - _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_start=10367 - _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_end=10741 - _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_start=10744 - _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_end=11252 - _globals['_REWARDPOINTUPDATE']._serialized_start=11255 - _globals['_REWARDPOINTUPDATE']._serialized_end=11383 - _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_start=11386 - _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_end=11729 - _globals['_FEEDISCOUNTPROPOSAL']._serialized_start=11732 - _globals['_FEEDISCOUNTPROPOSAL']._serialized_end=11959 - _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_start=11962 - _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_end=12223 - _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_start=12226 - _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_end=12533 + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_end=1256 + _globals['_EXCHANGEENABLEPROPOSAL']._serialized_start=1259 + _globals['_EXCHANGEENABLEPROPOSAL']._serialized_end=1463 + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_start=1466 + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_end=3152 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_start=3155 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_end=3945 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_start=3948 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_end=5010 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_start=5013 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_end=6010 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_start=6013 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_end=7107 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_start=7110 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_end=8408 + _globals['_ADMININFO']._serialized_start=8410 + _globals['_ADMININFO']._serialized_end=8488 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_start=8491 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_end=8772 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_start=8775 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_end=9023 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_start=9026 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_end=10116 + _globals['_PROVIDERORACLEPARAMS']._serialized_start=10119 + _globals['_PROVIDERORACLEPARAMS']._serialized_end=10312 + _globals['_ORACLEPARAMS']._serialized_start=10315 + _globals['_ORACLEPARAMS']._serialized_end=10516 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_start=10519 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_end=10893 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_start=10896 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_end=11404 + _globals['_REWARDPOINTUPDATE']._serialized_start=11407 + _globals['_REWARDPOINTUPDATE']._serialized_end=11535 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_start=11538 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_end=11881 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_start=11884 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_end=12111 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_start=12114 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_end=12375 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_start=12378 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_end=12685 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/query_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/query_pb2.py index 30a1f5d7..43c5af63 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/query_pb2.py @@ -19,7 +19,7 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&injective/exchange/v1beta1/query.proto\x12\x1ainjective.exchange.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a)injective/exchange/v1beta1/exchange.proto\x1a(injective/exchange/v1beta1/genesis.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x14gogoproto/gogo.proto\"O\n\nSubaccount\x12\x16\n\x06trader\x18\x01 \x01(\tR\x06trader\x12)\n\x10subaccount_nonce\x18\x02 \x01(\rR\x0fsubaccountNonce\"`\n\x1cQuerySubaccountOrdersRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\xc1\x01\n\x1dQuerySubaccountOrdersResponse\x12N\n\nbuy_orders\x18\x01 \x03(\x0b\x32/.injective.exchange.v1beta1.SubaccountOrderDataR\tbuyOrders\x12P\n\x0bsell_orders\x18\x02 \x03(\x0b\x32/.injective.exchange.v1beta1.SubaccountOrderDataR\nsellOrders\"\xaf\x01\n%SubaccountOrderbookMetadataWithMarket\x12S\n\x08metadata\x18\x01 \x01(\x0b\x32\x37.injective.exchange.v1beta1.SubaccountOrderbookMetadataR\x08metadata\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x14\n\x05isBuy\x18\x03 \x01(\x08R\x05isBuy\"\x1c\n\x1aQueryExchangeParamsRequest\"_\n\x1bQueryExchangeParamsResponse\x12@\n\x06params\x18\x01 \x01(\x0b\x32\".injective.exchange.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x93\x01\n\x1eQuerySubaccountDepositsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12L\n\nsubaccount\x18\x02 \x01(\x0b\x32&.injective.exchange.v1beta1.SubaccountB\x04\xc8\xde\x1f\x01R\nsubaccount\"\xea\x01\n\x1fQuerySubaccountDepositsResponse\x12\x65\n\x08\x64\x65posits\x18\x01 \x03(\x0b\x32I.injective.exchange.v1beta1.QuerySubaccountDepositsResponse.DepositsEntryR\x08\x64\x65posits\x1a`\n\rDepositsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositR\x05value:\x02\x38\x01\"\x1e\n\x1cQueryExchangeBalancesRequest\"f\n\x1dQueryExchangeBalancesResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32#.injective.exchange.v1beta1.BalanceB\x04\xc8\xde\x1f\x00R\x08\x62\x61lances\"7\n\x1bQueryAggregateVolumeRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"u\n\x1cQueryAggregateVolumeResponse\x12U\n\x11\x61ggregate_volumes\x18\x01 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\x10\x61ggregateVolumes\"Y\n\x1cQueryAggregateVolumesRequest\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"\xf9\x01\n\x1dQueryAggregateVolumesResponse\x12t\n\x19\x61ggregate_account_volumes\x18\x01 \x03(\x0b\x32\x38.injective.exchange.v1beta1.AggregateAccountVolumeRecordR\x17\x61ggregateAccountVolumes\x12\x62\n\x18\x61ggregate_market_volumes\x18\x02 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\x16\x61ggregateMarketVolumes\"@\n!QueryAggregateMarketVolumeRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"l\n\"QueryAggregateMarketVolumeResponse\x12\x46\n\x06volume\x18\x01 \x01(\x0b\x32(.injective.exchange.v1beta1.VolumeRecordB\x04\xc8\xde\x1f\x00R\x06volume\"0\n\x18QueryDenomDecimalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"5\n\x19QueryDenomDecimalResponse\x12\x18\n\x07\x64\x65\x63imal\x18\x01 \x01(\x04R\x07\x64\x65\x63imal\"3\n\x19QueryDenomDecimalsRequest\x12\x16\n\x06\x64\x65noms\x18\x01 \x03(\tR\x06\x64\x65noms\"t\n\x1aQueryDenomDecimalsResponse\x12V\n\x0e\x64\x65nom_decimals\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.DenomDecimalsB\x04\xc8\xde\x1f\x00R\rdenomDecimals\"C\n\"QueryAggregateMarketVolumesRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"i\n#QueryAggregateMarketVolumesResponse\x12\x42\n\x07volumes\x18\x01 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\x07volumes\"Z\n\x1dQuerySubaccountDepositRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"a\n\x1eQuerySubaccountDepositResponse\x12?\n\x08\x64\x65posits\x18\x01 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositR\x08\x64\x65posits\"P\n\x17QuerySpotMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"\\\n\x18QuerySpotMarketsResponse\x12@\n\x07markets\x18\x01 \x03(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x07markets\"5\n\x16QuerySpotMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"Y\n\x17QuerySpotMarketResponse\x12>\n\x06market\x18\x01 \x01(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x06market\"\xd6\x02\n\x19QuerySpotOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12\x44\n\norder_side\x18\x03 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderSideR\torderSide\x12_\n\x19limit_cumulative_notional\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeNotional\x12_\n\x19limit_cumulative_quantity\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeQuantity\"\xb8\x01\n\x1aQuerySpotOrderbookResponse\x12K\n\x10\x62uys_price_level\x18\x01 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0e\x62uysPriceLevel\x12M\n\x11sells_price_level\x18\x02 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0fsellsPriceLevel\"\xad\x01\n\x0e\x46ullSpotMarket\x12>\n\x06market\x18\x01 \x01(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x06market\x12[\n\x11mid_price_and_tob\x18\x02 \x01(\x0b\x32*.injective.exchange.v1beta1.MidPriceAndTOBB\x04\xc8\xde\x1f\x01R\x0emidPriceAndTob\"\x88\x01\n\x1bQueryFullSpotMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\x12\x32\n\x16with_mid_price_and_tob\x18\x03 \x01(\x08R\x12withMidPriceAndTob\"d\n\x1cQueryFullSpotMarketsResponse\x12\x44\n\x07markets\x18\x01 \x03(\x0b\x32*.injective.exchange.v1beta1.FullSpotMarketR\x07markets\"m\n\x1aQueryFullSpotMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x32\n\x16with_mid_price_and_tob\x18\x02 \x01(\x08R\x12withMidPriceAndTob\"a\n\x1bQueryFullSpotMarketResponse\x12\x42\n\x06market\x18\x01 \x01(\x0b\x32*.injective.exchange.v1beta1.FullSpotMarketR\x06market\"\x85\x01\n\x1eQuerySpotOrdersByHashesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12!\n\x0corder_hashes\x18\x03 \x03(\tR\x0borderHashes\"l\n\x1fQuerySpotOrdersByHashesResponse\x12I\n\x06orders\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.TrimmedSpotLimitOrderR\x06orders\"`\n\x1cQueryTraderSpotOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"l\n$QueryAccountAddressSpotOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x9b\x02\n\x15TrimmedSpotLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12?\n\x08\x66illable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12\x14\n\x05isBuy\x18\x04 \x01(\x08R\x05isBuy\x12\x1d\n\norder_hash\x18\x05 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id\"j\n\x1dQueryTraderSpotOrdersResponse\x12I\n\x06orders\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.TrimmedSpotLimitOrderR\x06orders\"r\n%QueryAccountAddressSpotOrdersResponse\x12I\n\x06orders\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.TrimmedSpotLimitOrderR\x06orders\"=\n\x1eQuerySpotMidPriceAndTOBRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\xfb\x01\n\x1fQuerySpotMidPriceAndTOBResponse\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"C\n$QueryDerivativeMidPriceAndTOBRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\x81\x02\n%QueryDerivativeMidPriceAndTOBResponse\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"\xb5\x01\n\x1fQueryDerivativeOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12_\n\x19limit_cumulative_notional\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeNotional\"\xbe\x01\n QueryDerivativeOrderbookResponse\x12K\n\x10\x62uys_price_level\x18\x01 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0e\x62uysPriceLevel\x12M\n\x11sells_price_level\x18\x02 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0fsellsPriceLevel\"\x9c\x03\n.QueryTraderSpotOrdersToCancelUpToAmountRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x44\n\x0b\x62\x61se_amount\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nbaseAmount\x12\x46\n\x0cquote_amount\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bquoteAmount\x12L\n\x08strategy\x18\x05 \x01(\x0e\x32\x30.injective.exchange.v1beta1.CancellationStrategyR\x08strategy\x12L\n\x0freference_price\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ereferencePrice\"\xdc\x02\n4QueryTraderDerivativeOrdersToCancelUpToAmountRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x46\n\x0cquote_amount\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bquoteAmount\x12L\n\x08strategy\x18\x04 \x01(\x0e\x32\x30.injective.exchange.v1beta1.CancellationStrategyR\x08strategy\x12L\n\x0freference_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ereferencePrice\"f\n\"QueryTraderDerivativeOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"r\n*QueryAccountAddressDerivativeOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xe9\x02\n\x1bTrimmedDerivativeLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12?\n\x08\x66illable\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12\x1f\n\x05isBuy\x18\x05 \x01(\x08\x42\t\xea\xde\x1f\x05isBuyR\x05isBuy\x12\x1d\n\norder_hash\x18\x06 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\"v\n#QueryTraderDerivativeOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective.exchange.v1beta1.TrimmedDerivativeLimitOrderR\x06orders\"~\n+QueryAccountAddressDerivativeOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective.exchange.v1beta1.TrimmedDerivativeLimitOrderR\x06orders\"\x8b\x01\n$QueryDerivativeOrdersByHashesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12!\n\x0corder_hashes\x18\x03 \x03(\tR\x0borderHashes\"x\n%QueryDerivativeOrdersByHashesResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective.exchange.v1beta1.TrimmedDerivativeLimitOrderR\x06orders\"\x8a\x01\n\x1dQueryDerivativeMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\x12\x32\n\x16with_mid_price_and_tob\x18\x03 \x01(\x08R\x12withMidPriceAndTob\"\x88\x01\n\nPriceLevel\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\"\xbf\x01\n\x14PerpetualMarketState\x12P\n\x0bmarket_info\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoR\nmarketInfo\x12U\n\x0c\x66unding_info\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingR\x0b\x66undingInfo\"\xba\x03\n\x14\x46ullDerivativeMarket\x12\x44\n\x06market\x18\x01 \x01(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketR\x06market\x12Y\n\x0eperpetual_info\x18\x02 \x01(\x0b\x32\x30.injective.exchange.v1beta1.PerpetualMarketStateH\x00R\rperpetualInfo\x12X\n\x0c\x66utures_info\x18\x03 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoH\x00R\x0b\x66uturesInfo\x12\x42\n\nmark_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tmarkPrice\x12[\n\x11mid_price_and_tob\x18\x05 \x01(\x0b\x32*.injective.exchange.v1beta1.MidPriceAndTOBB\x04\xc8\xde\x1f\x01R\x0emidPriceAndTobB\x06\n\x04info\"l\n\x1eQueryDerivativeMarketsResponse\x12J\n\x07markets\x18\x01 \x03(\x0b\x32\x30.injective.exchange.v1beta1.FullDerivativeMarketR\x07markets\";\n\x1cQueryDerivativeMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"i\n\x1dQueryDerivativeMarketResponse\x12H\n\x06market\x18\x01 \x01(\x0b\x32\x30.injective.exchange.v1beta1.FullDerivativeMarketR\x06market\"B\n#QueryDerivativeMarketAddressRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"e\n$QueryDerivativeMarketAddressResponse\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"G\n QuerySubaccountTradeNonceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"F\n\x1fQuerySubaccountPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"j\n&QuerySubaccountPositionInMarketRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"s\n/QuerySubaccountEffectivePositionInMarketRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"J\n#QuerySubaccountOrderMetadataRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"n\n QuerySubaccountPositionsResponse\x12J\n\x05state\x18\x01 \x03(\x0b\x32..injective.exchange.v1beta1.DerivativePositionB\x04\xc8\xde\x1f\x00R\x05state\"k\n\'QuerySubaccountPositionInMarketResponse\x12@\n\x05state\x18\x01 \x01(\x0b\x32$.injective.exchange.v1beta1.PositionB\x04\xc8\xde\x1f\x01R\x05state\"\x83\x02\n\x11\x45\x66\x66\x65\x63tivePosition\x12\x17\n\x07is_long\x18\x01 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12N\n\x10\x65\x66\x66\x65\x63tive_margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x65\x66\x66\x65\x63tiveMargin\"}\n0QuerySubaccountEffectivePositionInMarketResponse\x12I\n\x05state\x18\x01 \x01(\x0b\x32-.injective.exchange.v1beta1.EffectivePositionB\x04\xc8\xde\x1f\x01R\x05state\">\n\x1fQueryPerpetualMarketInfoRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"m\n QueryPerpetualMarketInfoResponse\x12I\n\x04info\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoB\x04\xc8\xde\x1f\x00R\x04info\"B\n#QueryExpiryFuturesMarketInfoRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"u\n$QueryExpiryFuturesMarketInfoResponse\x12M\n\x04info\x18\x01 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoB\x04\xc8\xde\x1f\x00R\x04info\"A\n\"QueryPerpetualMarketFundingRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"u\n#QueryPerpetualMarketFundingResponse\x12N\n\x05state\x18\x01 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingB\x04\xc8\xde\x1f\x00R\x05state\"\x8b\x01\n$QuerySubaccountOrderMetadataResponse\x12\x63\n\x08metadata\x18\x01 \x03(\x0b\x32\x41.injective.exchange.v1beta1.SubaccountOrderbookMetadataWithMarketB\x04\xc8\xde\x1f\x00R\x08metadata\"9\n!QuerySubaccountTradeNonceResponse\x12\x14\n\x05nonce\x18\x01 \x01(\rR\x05nonce\"\x19\n\x17QueryModuleStateRequest\"Z\n\x18QueryModuleStateResponse\x12>\n\x05state\x18\x01 \x01(\x0b\x32(.injective.exchange.v1beta1.GenesisStateR\x05state\"\x17\n\x15QueryPositionsRequest\"d\n\x16QueryPositionsResponse\x12J\n\x05state\x18\x01 \x03(\x0b\x32..injective.exchange.v1beta1.DerivativePositionB\x04\xc8\xde\x1f\x00R\x05state\"q\n\x1dQueryTradeRewardPointsRequest\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\x12\x34\n\x16pending_pool_timestamp\x18\x02 \x01(\x03R\x14pendingPoolTimestamp\"\x84\x01\n\x1eQueryTradeRewardPointsResponse\x12\x62\n\x1b\x61\x63\x63ount_trade_reward_points\x18\x01 \x03(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x61\x63\x63ountTradeRewardPoints\"!\n\x1fQueryTradeRewardCampaignRequest\"\xfe\x04\n QueryTradeRewardCampaignResponse\x12v\n\x1ctrading_reward_campaign_info\x18\x01 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x19tradingRewardCampaignInfo\x12\x80\x01\n%trading_reward_pool_campaign_schedule\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR!tradingRewardPoolCampaignSchedule\x12^\n\x19total_trade_reward_points\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16totalTradeRewardPoints\x12\x8f\x01\n-pending_trading_reward_pool_campaign_schedule\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR(pendingTradingRewardPoolCampaignSchedule\x12m\n!pending_total_trade_reward_points\x18\x05 \x03(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1dpendingTotalTradeRewardPoints\";\n\x1fQueryIsOptedOutOfRewardsRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"D\n QueryIsOptedOutOfRewardsResponse\x12 \n\x0cis_opted_out\x18\x01 \x01(\x08R\nisOptedOut\"\'\n%QueryOptedOutOfRewardsAccountsRequest\"D\n&QueryOptedOutOfRewardsAccountsResponse\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\">\n\"QueryFeeDiscountAccountInfoRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"\xe9\x01\n#QueryFeeDiscountAccountInfoResponse\x12\x1d\n\ntier_level\x18\x01 \x01(\x04R\ttierLevel\x12R\n\x0c\x61\x63\x63ount_info\x18\x02 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountTierInfoR\x0b\x61\x63\x63ountInfo\x12O\n\x0b\x61\x63\x63ount_ttl\x18\x03 \x01(\x0b\x32..injective.exchange.v1beta1.FeeDiscountTierTTLR\naccountTtl\"!\n\x1fQueryFeeDiscountScheduleRequest\"\x87\x01\n QueryFeeDiscountScheduleResponse\x12\x63\n\x15\x66\x65\x65_discount_schedule\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x13\x66\x65\x65\x44iscountSchedule\"@\n\x1dQueryBalanceMismatchesRequest\x12\x1f\n\x0b\x64ust_factor\x18\x01 \x01(\x03R\ndustFactor\"\xa2\x03\n\x0f\x42\x61lanceMismatch\x12\"\n\x0csubaccountId\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x41\n\tavailable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tavailable\x12\x39\n\x05total\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05total\x12\x46\n\x0c\x62\x61lance_hold\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\x12J\n\x0e\x65xpected_total\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rexpectedTotal\x12\x43\n\ndifference\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\ndifference\"|\n\x1eQueryBalanceMismatchesResponse\x12Z\n\x12\x62\x61lance_mismatches\x18\x01 \x03(\x0b\x32+.injective.exchange.v1beta1.BalanceMismatchR\x11\x62\x61lanceMismatches\"%\n#QueryBalanceWithBalanceHoldsRequest\"\x97\x02\n\x15\x42\x61lanceWithMarginHold\x12\"\n\x0csubaccountId\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x41\n\tavailable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tavailable\x12\x39\n\x05total\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05total\x12\x46\n\x0c\x62\x61lance_hold\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\"\x96\x01\n$QueryBalanceWithBalanceHoldsResponse\x12n\n\x1a\x62\x61lance_with_balance_holds\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.BalanceWithMarginHoldR\x17\x62\x61lanceWithBalanceHolds\"\'\n%QueryFeeDiscountTierStatisticsRequest\"9\n\rTierStatistic\x12\x12\n\x04tier\x18\x01 \x01(\x04R\x04tier\x12\x14\n\x05\x63ount\x18\x02 \x01(\x04R\x05\x63ount\"s\n&QueryFeeDiscountTierStatisticsResponse\x12I\n\nstatistics\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.TierStatisticR\nstatistics\"\x17\n\x15MitoVaultInfosRequest\"\xc4\x01\n\x16MitoVaultInfosResponse\x12)\n\x10master_addresses\x18\x01 \x03(\tR\x0fmasterAddresses\x12\x31\n\x14\x64\x65rivative_addresses\x18\x02 \x03(\tR\x13\x64\x65rivativeAddresses\x12%\n\x0espot_addresses\x18\x03 \x03(\tR\rspotAddresses\x12%\n\x0e\x63w20_addresses\x18\x04 \x03(\tR\rcw20Addresses\"D\n\x1dQueryMarketIDFromVaultRequest\x12#\n\rvault_address\x18\x01 \x01(\tR\x0cvaultAddress\"=\n\x1eQueryMarketIDFromVaultResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"A\n\"QueryHistoricalTradeRecordsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"t\n#QueryHistoricalTradeRecordsResponse\x12M\n\rtrade_records\x18\x01 \x03(\x0b\x32(.injective.exchange.v1beta1.TradeRecordsR\x0ctradeRecords\"\xb7\x01\n\x13TradeHistoryOptions\x12,\n\x12trade_grouping_sec\x18\x01 \x01(\x04R\x10tradeGroupingSec\x12\x17\n\x07max_age\x18\x02 \x01(\x04R\x06maxAge\x12.\n\x13include_raw_history\x18\x04 \x01(\x08R\x11includeRawHistory\x12)\n\x10include_metadata\x18\x05 \x01(\x08R\x0fincludeMetadata\"\xa0\x01\n\x1cQueryMarketVolatilityRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x63\n\x15trade_history_options\x18\x02 \x01(\x0b\x32/.injective.exchange.v1beta1.TradeHistoryOptionsR\x13tradeHistoryOptions\"\x83\x02\n\x1dQueryMarketVolatilityResponse\x12?\n\nvolatility\x18\x01 \x01(\tB\x1f\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nvolatility\x12W\n\x10history_metadata\x18\x02 \x01(\x0b\x32,.injective.oracle.v1beta1.MetadataStatisticsR\x0fhistoryMetadata\x12H\n\x0braw_history\x18\x03 \x03(\x0b\x32\'.injective.exchange.v1beta1.TradeRecordR\nrawHistory\"3\n\x19QueryBinaryMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\"g\n\x1aQueryBinaryMarketsResponse\x12I\n\x07markets\x18\x01 \x03(\x0b\x32/.injective.exchange.v1beta1.BinaryOptionsMarketR\x07markets\"q\n-QueryTraderDerivativeConditionalOrdersRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\x9e\x03\n!TrimmedDerivativeConditionalOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12G\n\x0ctriggerPrice\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1f\n\x05isBuy\x18\x05 \x01(\x08\x42\t\xea\xde\x1f\x05isBuyR\x05isBuy\x12%\n\x07isLimit\x18\x06 \x01(\x08\x42\x0b\xea\xde\x1f\x07isLimitR\x07isLimit\x12\x1d\n\norder_hash\x18\x07 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x08 \x01(\tR\x03\x63id\"\x87\x01\n.QueryTraderDerivativeConditionalOrdersResponse\x12U\n\x06orders\x18\x01 \x03(\x0b\x32=.injective.exchange.v1beta1.TrimmedDerivativeConditionalOrderR\x06orders\"M\n.QueryMarketAtomicExecutionFeeMultiplierRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"v\n/QueryMarketAtomicExecutionFeeMultiplierResponse\x12\x43\n\nmultiplier\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nmultiplier\"8\n\x1cQueryActiveStakeGrantRequest\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\"\xb3\x01\n\x1dQueryActiveStakeGrantResponse\x12=\n\x05grant\x18\x01 \x01(\x0b\x32\'.injective.exchange.v1beta1.ActiveGrantR\x05grant\x12S\n\x0f\x65\x66\x66\x65\x63tive_grant\x18\x02 \x01(\x0b\x32*.injective.exchange.v1beta1.EffectiveGrantR\x0e\x65\x66\x66\x65\x63tiveGrant\"T\n\x1eQueryGrantAuthorizationRequest\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x18\n\x07grantee\x18\x02 \x01(\tR\x07grantee\"X\n\x1fQueryGrantAuthorizationResponse\x12\x35\n\x06\x61mount\x18\x01 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\";\n\x1fQueryGrantAuthorizationsRequest\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\"\xb7\x01\n QueryGrantAuthorizationsResponse\x12K\n\x12total_grant_amount\x18\x01 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10totalGrantAmount\x12\x46\n\x06grants\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.GrantAuthorizationR\x06grants*4\n\tOrderSide\x12\x14\n\x10Side_Unspecified\x10\x00\x12\x07\n\x03\x42uy\x10\x01\x12\x08\n\x04Sell\x10\x02*V\n\x14\x43\x61ncellationStrategy\x12\x14\n\x10UnspecifiedOrder\x10\x00\x12\x13\n\x0f\x46romWorstToBest\x10\x01\x12\x13\n\x0f\x46romBestToWorst\x10\x02\x32\xcd\x65\n\x05Query\x12\xba\x01\n\x13QueryExchangeParams\x12\x36.injective.exchange.v1beta1.QueryExchangeParamsRequest\x1a\x37.injective.exchange.v1beta1.QueryExchangeParamsResponse\"2\x82\xd3\xe4\x93\x02,\x12*/injective/exchange/v1beta1/exchangeParams\x12\xce\x01\n\x12SubaccountDeposits\x12:.injective.exchange.v1beta1.QuerySubaccountDepositsRequest\x1a;.injective.exchange.v1beta1.QuerySubaccountDepositsResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v1beta1/exchange/subaccountDeposits\x12\xca\x01\n\x11SubaccountDeposit\x12\x39.injective.exchange.v1beta1.QuerySubaccountDepositRequest\x1a:.injective.exchange.v1beta1.QuerySubaccountDepositResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/exchange/subaccountDeposit\x12\xc6\x01\n\x10\x45xchangeBalances\x12\x38.injective.exchange.v1beta1.QueryExchangeBalancesRequest\x1a\x39.injective.exchange.v1beta1.QueryExchangeBalancesResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v1beta1/exchange/exchangeBalances\x12\xcc\x01\n\x0f\x41ggregateVolume\x12\x37.injective.exchange.v1beta1.QueryAggregateVolumeRequest\x1a\x38.injective.exchange.v1beta1.QueryAggregateVolumeResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v1beta1/exchange/aggregateVolume/{account}\x12\xc6\x01\n\x10\x41ggregateVolumes\x12\x38.injective.exchange.v1beta1.QueryAggregateVolumesRequest\x1a\x39.injective.exchange.v1beta1.QueryAggregateVolumesResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v1beta1/exchange/aggregateVolumes\x12\xe6\x01\n\x15\x41ggregateMarketVolume\x12=.injective.exchange.v1beta1.QueryAggregateMarketVolumeRequest\x1a>.injective.exchange.v1beta1.QueryAggregateMarketVolumeResponse\"N\x82\xd3\xe4\x93\x02H\x12\x46/injective/exchange/v1beta1/exchange/aggregateMarketVolume/{market_id}\x12\xde\x01\n\x16\x41ggregateMarketVolumes\x12>.injective.exchange.v1beta1.QueryAggregateMarketVolumesRequest\x1a?.injective.exchange.v1beta1.QueryAggregateMarketVolumesResponse\"C\x82\xd3\xe4\x93\x02=\x12;/injective/exchange/v1beta1/exchange/aggregateMarketVolumes\x12\xbf\x01\n\x0c\x44\x65nomDecimal\x12\x34.injective.exchange.v1beta1.QueryDenomDecimalRequest\x1a\x35.injective.exchange.v1beta1.QueryDenomDecimalResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/exchange/denom_decimal/{denom}\x12\xbb\x01\n\rDenomDecimals\x12\x35.injective.exchange.v1beta1.QueryDenomDecimalsRequest\x1a\x36.injective.exchange.v1beta1.QueryDenomDecimalsResponse\";\x82\xd3\xe4\x93\x02\x35\x12\x33/injective/exchange/v1beta1/exchange/denom_decimals\x12\xaa\x01\n\x0bSpotMarkets\x12\x33.injective.exchange.v1beta1.QuerySpotMarketsRequest\x1a\x34.injective.exchange.v1beta1.QuerySpotMarketsResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/exchange/v1beta1/spot/markets\x12\xb3\x01\n\nSpotMarket\x12\x32.injective.exchange.v1beta1.QuerySpotMarketRequest\x1a\x33.injective.exchange.v1beta1.QuerySpotMarketResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v1beta1/spot/markets/{market_id}\x12\xbb\x01\n\x0f\x46ullSpotMarkets\x12\x37.injective.exchange.v1beta1.QueryFullSpotMarketsRequest\x1a\x38.injective.exchange.v1beta1.QueryFullSpotMarketsResponse\"5\x82\xd3\xe4\x93\x02/\x12-/injective/exchange/v1beta1/spot/full_markets\x12\xc3\x01\n\x0e\x46ullSpotMarket\x12\x36.injective.exchange.v1beta1.QueryFullSpotMarketRequest\x1a\x37.injective.exchange.v1beta1.QueryFullSpotMarketResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/exchange/v1beta1/spot/full_market/{market_id}\x12\xbe\x01\n\rSpotOrderbook\x12\x35.injective.exchange.v1beta1.QuerySpotOrderbookRequest\x1a\x36.injective.exchange.v1beta1.QuerySpotOrderbookResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/spot/orderbook/{market_id}\x12\xd4\x01\n\x10TraderSpotOrders\x12\x38.injective.exchange.v1beta1.QueryTraderSpotOrdersRequest\x1a\x39.injective.exchange.v1beta1.QueryTraderSpotOrdersResponse\"K\x82\xd3\xe4\x93\x02\x45\x12\x43/injective/exchange/v1beta1/spot/orders/{market_id}/{subaccount_id}\x12\xf6\x01\n\x18\x41\x63\x63ountAddressSpotOrders\x12@.injective.exchange.v1beta1.QueryAccountAddressSpotOrdersRequest\x1a\x41.injective.exchange.v1beta1.QueryAccountAddressSpotOrdersResponse\"U\x82\xd3\xe4\x93\x02O\x12M/injective/exchange/v1beta1/spot/orders/{market_id}/account/{account_address}\x12\xe4\x01\n\x12SpotOrdersByHashes\x12:.injective.exchange.v1beta1.QuerySpotOrdersByHashesRequest\x1a;.injective.exchange.v1beta1.QuerySpotOrdersByHashesResponse\"U\x82\xd3\xe4\x93\x02O\x12M/injective/exchange/v1beta1/spot/orders_by_hashes/{market_id}/{subaccount_id}\x12\xc3\x01\n\x10SubaccountOrders\x12\x38.injective.exchange.v1beta1.QuerySubaccountOrdersRequest\x1a\x39.injective.exchange.v1beta1.QuerySubaccountOrdersResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/exchange/v1beta1/orders/{subaccount_id}\x12\xe7\x01\n\x19TraderSpotTransientOrders\x12\x38.injective.exchange.v1beta1.QueryTraderSpotOrdersRequest\x1a\x39.injective.exchange.v1beta1.QueryTraderSpotOrdersResponse\"U\x82\xd3\xe4\x93\x02O\x12M/injective/exchange/v1beta1/spot/transient_orders/{market_id}/{subaccount_id}\x12\xd5\x01\n\x12SpotMidPriceAndTOB\x12:.injective.exchange.v1beta1.QuerySpotMidPriceAndTOBRequest\x1a;.injective.exchange.v1beta1.QuerySpotMidPriceAndTOBResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v1beta1/spot/mid_price_and_tob/{market_id}\x12\xed\x01\n\x18\x44\x65rivativeMidPriceAndTOB\x12@.injective.exchange.v1beta1.QueryDerivativeMidPriceAndTOBRequest\x1a\x41.injective.exchange.v1beta1.QueryDerivativeMidPriceAndTOBResponse\"L\x82\xd3\xe4\x93\x02\x46\x12\x44/injective/exchange/v1beta1/derivative/mid_price_and_tob/{market_id}\x12\xd6\x01\n\x13\x44\x65rivativeOrderbook\x12;.injective.exchange.v1beta1.QueryDerivativeOrderbookRequest\x1a<.injective.exchange.v1beta1.QueryDerivativeOrderbookResponse\"D\x82\xd3\xe4\x93\x02>\x12.injective.exchange.v1beta1.QueryTraderDerivativeOrdersRequest\x1a?.injective.exchange.v1beta1.QueryTraderDerivativeOrdersResponse\"Q\x82\xd3\xe4\x93\x02K\x12I/injective/exchange/v1beta1/derivative/orders/{market_id}/{subaccount_id}\x12\x8e\x02\n\x1e\x41\x63\x63ountAddressDerivativeOrders\x12\x46.injective.exchange.v1beta1.QueryAccountAddressDerivativeOrdersRequest\x1aG.injective.exchange.v1beta1.QueryAccountAddressDerivativeOrdersResponse\"[\x82\xd3\xe4\x93\x02U\x12S/injective/exchange/v1beta1/derivative/orders/{market_id}/account/{account_address}\x12\xfc\x01\n\x18\x44\x65rivativeOrdersByHashes\x12@.injective.exchange.v1beta1.QueryDerivativeOrdersByHashesRequest\x1a\x41.injective.exchange.v1beta1.QueryDerivativeOrdersByHashesResponse\"[\x82\xd3\xe4\x93\x02U\x12S/injective/exchange/v1beta1/derivative/orders_by_hashes/{market_id}/{subaccount_id}\x12\xff\x01\n\x1fTraderDerivativeTransientOrders\x12>.injective.exchange.v1beta1.QueryTraderDerivativeOrdersRequest\x1a?.injective.exchange.v1beta1.QueryTraderDerivativeOrdersResponse\"[\x82\xd3\xe4\x93\x02U\x12S/injective/exchange/v1beta1/derivative/transient_orders/{market_id}/{subaccount_id}\x12\xc2\x01\n\x11\x44\x65rivativeMarkets\x12\x39.injective.exchange.v1beta1.QueryDerivativeMarketsRequest\x1a:.injective.exchange.v1beta1.QueryDerivativeMarketsResponse\"6\x82\xd3\xe4\x93\x02\x30\x12./injective/exchange/v1beta1/derivative/markets\x12\xcb\x01\n\x10\x44\x65rivativeMarket\x12\x38.injective.exchange.v1beta1.QueryDerivativeMarketRequest\x1a\x39.injective.exchange.v1beta1.QueryDerivativeMarketResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/derivative/markets/{market_id}\x12\xe7\x01\n\x17\x44\x65rivativeMarketAddress\x12?.injective.exchange.v1beta1.QueryDerivativeMarketAddressRequest\x1a@.injective.exchange.v1beta1.QueryDerivativeMarketAddressResponse\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/injective/exchange/v1beta1/derivative/market_address/{market_id}\x12\xd1\x01\n\x14SubaccountTradeNonce\x12<.injective.exchange.v1beta1.QuerySubaccountTradeNonceRequest\x1a=.injective.exchange.v1beta1.QuerySubaccountTradeNonceResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v1beta1/exchange/{subaccount_id}\x12\xb2\x01\n\x13\x45xchangeModuleState\x12\x33.injective.exchange.v1beta1.QueryModuleStateRequest\x1a\x34.injective.exchange.v1beta1.QueryModuleStateResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/exchange/v1beta1/module_state\x12\xa1\x01\n\tPositions\x12\x31.injective.exchange.v1beta1.QueryPositionsRequest\x1a\x32.injective.exchange.v1beta1.QueryPositionsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/injective/exchange/v1beta1/positions\x12\xcf\x01\n\x13SubaccountPositions\x12;.injective.exchange.v1beta1.QuerySubaccountPositionsRequest\x1a<.injective.exchange.v1beta1.QuerySubaccountPositionsResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v1beta1/positions/{subaccount_id}\x12\xf0\x01\n\x1aSubaccountPositionInMarket\x12\x42.injective.exchange.v1beta1.QuerySubaccountPositionInMarketRequest\x1a\x43.injective.exchange.v1beta1.QuerySubaccountPositionInMarketResponse\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/injective/exchange/v1beta1/positions/{subaccount_id}/{market_id}\x12\x95\x02\n#SubaccountEffectivePositionInMarket\x12K.injective.exchange.v1beta1.QuerySubaccountEffectivePositionInMarketRequest\x1aL.injective.exchange.v1beta1.QuerySubaccountEffectivePositionInMarketResponse\"S\x82\xd3\xe4\x93\x02M\x12K/injective/exchange/v1beta1/effective_positions/{subaccount_id}/{market_id}\x12\xd7\x01\n\x13PerpetualMarketInfo\x12;.injective.exchange.v1beta1.QueryPerpetualMarketInfoRequest\x1a<.injective.exchange.v1beta1.QueryPerpetualMarketInfoResponse\"E\x82\xd3\xe4\x93\x02?\x12=/injective/exchange/v1beta1/perpetual_market_info/{market_id}\x12\xe0\x01\n\x17\x45xpiryFuturesMarketInfo\x12?.injective.exchange.v1beta1.QueryExpiryFuturesMarketInfoRequest\x1a@.injective.exchange.v1beta1.QueryExpiryFuturesMarketInfoResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/expiry_market_info/{market_id}\x12\xe3\x01\n\x16PerpetualMarketFunding\x12>.injective.exchange.v1beta1.QueryPerpetualMarketFundingRequest\x1a?.injective.exchange.v1beta1.QueryPerpetualMarketFundingResponse\"H\x82\xd3\xe4\x93\x02\x42\x12@/injective/exchange/v1beta1/perpetual_market_funding/{market_id}\x12\xe0\x01\n\x17SubaccountOrderMetadata\x12?.injective.exchange.v1beta1.QuerySubaccountOrderMetadataRequest\x1a@.injective.exchange.v1beta1.QuerySubaccountOrderMetadataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/order_metadata/{subaccount_id}\x12\xc3\x01\n\x11TradeRewardPoints\x12\x39.injective.exchange.v1beta1.QueryTradeRewardPointsRequest\x1a:.injective.exchange.v1beta1.QueryTradeRewardPointsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v1beta1/trade_reward_points\x12\xd2\x01\n\x18PendingTradeRewardPoints\x12\x39.injective.exchange.v1beta1.QueryTradeRewardPointsRequest\x1a:.injective.exchange.v1beta1.QueryTradeRewardPointsResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v1beta1/pending_trade_reward_points\x12\xcb\x01\n\x13TradeRewardCampaign\x12;.injective.exchange.v1beta1.QueryTradeRewardCampaignRequest\x1a<.injective.exchange.v1beta1.QueryTradeRewardCampaignResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v1beta1/trade_reward_campaign\x12\xe2\x01\n\x16\x46\x65\x65\x44iscountAccountInfo\x12>.injective.exchange.v1beta1.QueryFeeDiscountAccountInfoRequest\x1a?.injective.exchange.v1beta1.QueryFeeDiscountAccountInfoResponse\"G\x82\xd3\xe4\x93\x02\x41\x12?/injective/exchange/v1beta1/fee_discount_account_info/{account}\x12\xcb\x01\n\x13\x46\x65\x65\x44iscountSchedule\x12;.injective.exchange.v1beta1.QueryFeeDiscountScheduleRequest\x1a<.injective.exchange.v1beta1.QueryFeeDiscountScheduleResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v1beta1/fee_discount_schedule\x12\xd0\x01\n\x11\x42\x61lanceMismatches\x12\x39.injective.exchange.v1beta1.QueryBalanceMismatchesRequest\x1a:.injective.exchange.v1beta1.QueryBalanceMismatchesResponse\"D\x82\xd3\xe4\x93\x02>\x12.injective.exchange.v1beta1.QueryHistoricalTradeRecordsRequest\x1a?.injective.exchange.v1beta1.QueryHistoricalTradeRecordsResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v1beta1/historical_trade_records\x12\xd7\x01\n\x13IsOptedOutOfRewards\x12;.injective.exchange.v1beta1.QueryIsOptedOutOfRewardsRequest\x1a<.injective.exchange.v1beta1.QueryIsOptedOutOfRewardsResponse\"E\x82\xd3\xe4\x93\x02?\x12=/injective/exchange/v1beta1/is_opted_out_of_rewards/{account}\x12\xe5\x01\n\x19OptedOutOfRewardsAccounts\x12\x41.injective.exchange.v1beta1.QueryOptedOutOfRewardsAccountsRequest\x1a\x42.injective.exchange.v1beta1.QueryOptedOutOfRewardsAccountsResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v1beta1/opted_out_of_rewards_accounts\x12\xca\x01\n\x10MarketVolatility\x12\x38.injective.exchange.v1beta1.QueryMarketVolatilityRequest\x1a\x39.injective.exchange.v1beta1.QueryMarketVolatilityResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v1beta1/market_volatility/{market_id}\x12\xc1\x01\n\x14\x42inaryOptionsMarkets\x12\x35.injective.exchange.v1beta1.QueryBinaryMarketsRequest\x1a\x36.injective.exchange.v1beta1.QueryBinaryMarketsResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/exchange/v1beta1/binary_options/markets\x12\x99\x02\n!TraderDerivativeConditionalOrders\x12I.injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersRequest\x1aJ.injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersResponse\"]\x82\xd3\xe4\x93\x02W\x12U/injective/exchange/v1beta1/derivative/orders/conditional/{market_id}/{subaccount_id}\x12\xfe\x01\n\"MarketAtomicExecutionFeeMultiplier\x12J.injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierRequest\x1aK.injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v1beta1/atomic_order_fee_multiplier\x12\xc9\x01\n\x10\x41\x63tiveStakeGrant\x12\x38.injective.exchange.v1beta1.QueryActiveStakeGrantRequest\x1a\x39.injective.exchange.v1beta1.QueryActiveStakeGrantResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/exchange/v1beta1/active_stake_grant/{grantee}\x12\xda\x01\n\x12GrantAuthorization\x12:.injective.exchange.v1beta1.QueryGrantAuthorizationRequest\x1a;.injective.exchange.v1beta1.QueryGrantAuthorizationResponse\"K\x82\xd3\xe4\x93\x02\x45\x12\x43/injective/exchange/v1beta1/grant_authorization/{granter}/{grantee}\x12\xd4\x01\n\x13GrantAuthorizations\x12;.injective.exchange.v1beta1.QueryGrantAuthorizationsRequest\x1a<.injective.exchange.v1beta1.QueryGrantAuthorizationsResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/grant_authorizations/{granter}B\x86\x02\n\x1e\x63om.injective.exchange.v1beta1B\nQueryProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&injective/exchange/v1beta1/query.proto\x12\x1ainjective.exchange.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a)injective/exchange/v1beta1/exchange.proto\x1a(injective/exchange/v1beta1/genesis.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x14gogoproto/gogo.proto\"O\n\nSubaccount\x12\x16\n\x06trader\x18\x01 \x01(\tR\x06trader\x12)\n\x10subaccount_nonce\x18\x02 \x01(\rR\x0fsubaccountNonce\"`\n\x1cQuerySubaccountOrdersRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\xc1\x01\n\x1dQuerySubaccountOrdersResponse\x12N\n\nbuy_orders\x18\x01 \x03(\x0b\x32/.injective.exchange.v1beta1.SubaccountOrderDataR\tbuyOrders\x12P\n\x0bsell_orders\x18\x02 \x03(\x0b\x32/.injective.exchange.v1beta1.SubaccountOrderDataR\nsellOrders\"\xaf\x01\n%SubaccountOrderbookMetadataWithMarket\x12S\n\x08metadata\x18\x01 \x01(\x0b\x32\x37.injective.exchange.v1beta1.SubaccountOrderbookMetadataR\x08metadata\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x14\n\x05isBuy\x18\x03 \x01(\x08R\x05isBuy\"\x1c\n\x1aQueryExchangeParamsRequest\"_\n\x1bQueryExchangeParamsResponse\x12@\n\x06params\x18\x01 \x01(\x0b\x32\".injective.exchange.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x93\x01\n\x1eQuerySubaccountDepositsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12L\n\nsubaccount\x18\x02 \x01(\x0b\x32&.injective.exchange.v1beta1.SubaccountB\x04\xc8\xde\x1f\x01R\nsubaccount\"\xea\x01\n\x1fQuerySubaccountDepositsResponse\x12\x65\n\x08\x64\x65posits\x18\x01 \x03(\x0b\x32I.injective.exchange.v1beta1.QuerySubaccountDepositsResponse.DepositsEntryR\x08\x64\x65posits\x1a`\n\rDepositsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositR\x05value:\x02\x38\x01\"\x1e\n\x1cQueryExchangeBalancesRequest\"f\n\x1dQueryExchangeBalancesResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32#.injective.exchange.v1beta1.BalanceB\x04\xc8\xde\x1f\x00R\x08\x62\x61lances\"7\n\x1bQueryAggregateVolumeRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"u\n\x1cQueryAggregateVolumeResponse\x12U\n\x11\x61ggregate_volumes\x18\x01 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\x10\x61ggregateVolumes\"Y\n\x1cQueryAggregateVolumesRequest\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"\xf9\x01\n\x1dQueryAggregateVolumesResponse\x12t\n\x19\x61ggregate_account_volumes\x18\x01 \x03(\x0b\x32\x38.injective.exchange.v1beta1.AggregateAccountVolumeRecordR\x17\x61ggregateAccountVolumes\x12\x62\n\x18\x61ggregate_market_volumes\x18\x02 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\x16\x61ggregateMarketVolumes\"@\n!QueryAggregateMarketVolumeRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"l\n\"QueryAggregateMarketVolumeResponse\x12\x46\n\x06volume\x18\x01 \x01(\x0b\x32(.injective.exchange.v1beta1.VolumeRecordB\x04\xc8\xde\x1f\x00R\x06volume\"0\n\x18QueryDenomDecimalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"5\n\x19QueryDenomDecimalResponse\x12\x18\n\x07\x64\x65\x63imal\x18\x01 \x01(\x04R\x07\x64\x65\x63imal\"3\n\x19QueryDenomDecimalsRequest\x12\x16\n\x06\x64\x65noms\x18\x01 \x03(\tR\x06\x64\x65noms\"t\n\x1aQueryDenomDecimalsResponse\x12V\n\x0e\x64\x65nom_decimals\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.DenomDecimalsB\x04\xc8\xde\x1f\x00R\rdenomDecimals\"C\n\"QueryAggregateMarketVolumesRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"i\n#QueryAggregateMarketVolumesResponse\x12\x42\n\x07volumes\x18\x01 \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\x07volumes\"Z\n\x1dQuerySubaccountDepositRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"a\n\x1eQuerySubaccountDepositResponse\x12?\n\x08\x64\x65posits\x18\x01 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositR\x08\x64\x65posits\"P\n\x17QuerySpotMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"\\\n\x18QuerySpotMarketsResponse\x12@\n\x07markets\x18\x01 \x03(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x07markets\"5\n\x16QuerySpotMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"Y\n\x17QuerySpotMarketResponse\x12>\n\x06market\x18\x01 \x01(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x06market\"\xd6\x02\n\x19QuerySpotOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12\x44\n\norder_side\x18\x03 \x01(\x0e\x32%.injective.exchange.v1beta1.OrderSideR\torderSide\x12_\n\x19limit_cumulative_notional\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeNotional\x12_\n\x19limit_cumulative_quantity\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeQuantity\"\xb8\x01\n\x1aQuerySpotOrderbookResponse\x12K\n\x10\x62uys_price_level\x18\x01 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0e\x62uysPriceLevel\x12M\n\x11sells_price_level\x18\x02 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0fsellsPriceLevel\"\xad\x01\n\x0e\x46ullSpotMarket\x12>\n\x06market\x18\x01 \x01(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x06market\x12[\n\x11mid_price_and_tob\x18\x02 \x01(\x0b\x32*.injective.exchange.v1beta1.MidPriceAndTOBB\x04\xc8\xde\x1f\x01R\x0emidPriceAndTob\"\x88\x01\n\x1bQueryFullSpotMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\x12\x32\n\x16with_mid_price_and_tob\x18\x03 \x01(\x08R\x12withMidPriceAndTob\"d\n\x1cQueryFullSpotMarketsResponse\x12\x44\n\x07markets\x18\x01 \x03(\x0b\x32*.injective.exchange.v1beta1.FullSpotMarketR\x07markets\"m\n\x1aQueryFullSpotMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x32\n\x16with_mid_price_and_tob\x18\x02 \x01(\x08R\x12withMidPriceAndTob\"a\n\x1bQueryFullSpotMarketResponse\x12\x42\n\x06market\x18\x01 \x01(\x0b\x32*.injective.exchange.v1beta1.FullSpotMarketR\x06market\"\x85\x01\n\x1eQuerySpotOrdersByHashesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12!\n\x0corder_hashes\x18\x03 \x03(\tR\x0borderHashes\"l\n\x1fQuerySpotOrdersByHashesResponse\x12I\n\x06orders\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.TrimmedSpotLimitOrderR\x06orders\"`\n\x1cQueryTraderSpotOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"l\n$QueryAccountAddressSpotOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x9b\x02\n\x15TrimmedSpotLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12?\n\x08\x66illable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12\x14\n\x05isBuy\x18\x04 \x01(\x08R\x05isBuy\x12\x1d\n\norder_hash\x18\x05 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id\"j\n\x1dQueryTraderSpotOrdersResponse\x12I\n\x06orders\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.TrimmedSpotLimitOrderR\x06orders\"r\n%QueryAccountAddressSpotOrdersResponse\x12I\n\x06orders\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.TrimmedSpotLimitOrderR\x06orders\"=\n\x1eQuerySpotMidPriceAndTOBRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\xfb\x01\n\x1fQuerySpotMidPriceAndTOBResponse\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"C\n$QueryDerivativeMidPriceAndTOBRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\x81\x02\n%QueryDerivativeMidPriceAndTOBResponse\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"\xb5\x01\n\x1fQueryDerivativeOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12_\n\x19limit_cumulative_notional\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeNotional\"\xbe\x01\n QueryDerivativeOrderbookResponse\x12K\n\x10\x62uys_price_level\x18\x01 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0e\x62uysPriceLevel\x12M\n\x11sells_price_level\x18\x02 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\x0fsellsPriceLevel\"\x9c\x03\n.QueryTraderSpotOrdersToCancelUpToAmountRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x44\n\x0b\x62\x61se_amount\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nbaseAmount\x12\x46\n\x0cquote_amount\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bquoteAmount\x12L\n\x08strategy\x18\x05 \x01(\x0e\x32\x30.injective.exchange.v1beta1.CancellationStrategyR\x08strategy\x12L\n\x0freference_price\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ereferencePrice\"\xdc\x02\n4QueryTraderDerivativeOrdersToCancelUpToAmountRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x46\n\x0cquote_amount\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bquoteAmount\x12L\n\x08strategy\x18\x04 \x01(\x0e\x32\x30.injective.exchange.v1beta1.CancellationStrategyR\x08strategy\x12L\n\x0freference_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ereferencePrice\"f\n\"QueryTraderDerivativeOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"r\n*QueryAccountAddressDerivativeOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xe9\x02\n\x1bTrimmedDerivativeLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12?\n\x08\x66illable\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12\x1f\n\x05isBuy\x18\x05 \x01(\x08\x42\t\xea\xde\x1f\x05isBuyR\x05isBuy\x12\x1d\n\norder_hash\x18\x06 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\"v\n#QueryTraderDerivativeOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective.exchange.v1beta1.TrimmedDerivativeLimitOrderR\x06orders\"~\n+QueryAccountAddressDerivativeOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective.exchange.v1beta1.TrimmedDerivativeLimitOrderR\x06orders\"\x8b\x01\n$QueryDerivativeOrdersByHashesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12!\n\x0corder_hashes\x18\x03 \x03(\tR\x0borderHashes\"x\n%QueryDerivativeOrdersByHashesResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective.exchange.v1beta1.TrimmedDerivativeLimitOrderR\x06orders\"\x8a\x01\n\x1dQueryDerivativeMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\x12\x32\n\x16with_mid_price_and_tob\x18\x03 \x01(\x08R\x12withMidPriceAndTob\"\x88\x01\n\nPriceLevel\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\"\xbf\x01\n\x14PerpetualMarketState\x12P\n\x0bmarket_info\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoR\nmarketInfo\x12U\n\x0c\x66unding_info\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingR\x0b\x66undingInfo\"\xba\x03\n\x14\x46ullDerivativeMarket\x12\x44\n\x06market\x18\x01 \x01(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketR\x06market\x12Y\n\x0eperpetual_info\x18\x02 \x01(\x0b\x32\x30.injective.exchange.v1beta1.PerpetualMarketStateH\x00R\rperpetualInfo\x12X\n\x0c\x66utures_info\x18\x03 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoH\x00R\x0b\x66uturesInfo\x12\x42\n\nmark_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tmarkPrice\x12[\n\x11mid_price_and_tob\x18\x05 \x01(\x0b\x32*.injective.exchange.v1beta1.MidPriceAndTOBB\x04\xc8\xde\x1f\x01R\x0emidPriceAndTobB\x06\n\x04info\"l\n\x1eQueryDerivativeMarketsResponse\x12J\n\x07markets\x18\x01 \x03(\x0b\x32\x30.injective.exchange.v1beta1.FullDerivativeMarketR\x07markets\";\n\x1cQueryDerivativeMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"i\n\x1dQueryDerivativeMarketResponse\x12H\n\x06market\x18\x01 \x01(\x0b\x32\x30.injective.exchange.v1beta1.FullDerivativeMarketR\x06market\"B\n#QueryDerivativeMarketAddressRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"e\n$QueryDerivativeMarketAddressResponse\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"G\n QuerySubaccountTradeNonceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"F\n\x1fQuerySubaccountPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"j\n&QuerySubaccountPositionInMarketRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"s\n/QuerySubaccountEffectivePositionInMarketRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"J\n#QuerySubaccountOrderMetadataRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"n\n QuerySubaccountPositionsResponse\x12J\n\x05state\x18\x01 \x03(\x0b\x32..injective.exchange.v1beta1.DerivativePositionB\x04\xc8\xde\x1f\x00R\x05state\"k\n\'QuerySubaccountPositionInMarketResponse\x12@\n\x05state\x18\x01 \x01(\x0b\x32$.injective.exchange.v1beta1.PositionB\x04\xc8\xde\x1f\x01R\x05state\"\x83\x02\n\x11\x45\x66\x66\x65\x63tivePosition\x12\x17\n\x07is_long\x18\x01 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12N\n\x10\x65\x66\x66\x65\x63tive_margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x65\x66\x66\x65\x63tiveMargin\"}\n0QuerySubaccountEffectivePositionInMarketResponse\x12I\n\x05state\x18\x01 \x01(\x0b\x32-.injective.exchange.v1beta1.EffectivePositionB\x04\xc8\xde\x1f\x01R\x05state\">\n\x1fQueryPerpetualMarketInfoRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"m\n QueryPerpetualMarketInfoResponse\x12I\n\x04info\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoB\x04\xc8\xde\x1f\x00R\x04info\"B\n#QueryExpiryFuturesMarketInfoRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"u\n$QueryExpiryFuturesMarketInfoResponse\x12M\n\x04info\x18\x01 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoB\x04\xc8\xde\x1f\x00R\x04info\"A\n\"QueryPerpetualMarketFundingRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"u\n#QueryPerpetualMarketFundingResponse\x12N\n\x05state\x18\x01 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingB\x04\xc8\xde\x1f\x00R\x05state\"\x8b\x01\n$QuerySubaccountOrderMetadataResponse\x12\x63\n\x08metadata\x18\x01 \x03(\x0b\x32\x41.injective.exchange.v1beta1.SubaccountOrderbookMetadataWithMarketB\x04\xc8\xde\x1f\x00R\x08metadata\"9\n!QuerySubaccountTradeNonceResponse\x12\x14\n\x05nonce\x18\x01 \x01(\rR\x05nonce\"\x19\n\x17QueryModuleStateRequest\"Z\n\x18QueryModuleStateResponse\x12>\n\x05state\x18\x01 \x01(\x0b\x32(.injective.exchange.v1beta1.GenesisStateR\x05state\"\x17\n\x15QueryPositionsRequest\"d\n\x16QueryPositionsResponse\x12J\n\x05state\x18\x01 \x03(\x0b\x32..injective.exchange.v1beta1.DerivativePositionB\x04\xc8\xde\x1f\x00R\x05state\"q\n\x1dQueryTradeRewardPointsRequest\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\x12\x34\n\x16pending_pool_timestamp\x18\x02 \x01(\x03R\x14pendingPoolTimestamp\"\x84\x01\n\x1eQueryTradeRewardPointsResponse\x12\x62\n\x1b\x61\x63\x63ount_trade_reward_points\x18\x01 \x03(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x61\x63\x63ountTradeRewardPoints\"!\n\x1fQueryTradeRewardCampaignRequest\"\xfe\x04\n QueryTradeRewardCampaignResponse\x12v\n\x1ctrading_reward_campaign_info\x18\x01 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x19tradingRewardCampaignInfo\x12\x80\x01\n%trading_reward_pool_campaign_schedule\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR!tradingRewardPoolCampaignSchedule\x12^\n\x19total_trade_reward_points\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16totalTradeRewardPoints\x12\x8f\x01\n-pending_trading_reward_pool_campaign_schedule\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR(pendingTradingRewardPoolCampaignSchedule\x12m\n!pending_total_trade_reward_points\x18\x05 \x03(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1dpendingTotalTradeRewardPoints\";\n\x1fQueryIsOptedOutOfRewardsRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"D\n QueryIsOptedOutOfRewardsResponse\x12 \n\x0cis_opted_out\x18\x01 \x01(\x08R\nisOptedOut\"\'\n%QueryOptedOutOfRewardsAccountsRequest\"D\n&QueryOptedOutOfRewardsAccountsResponse\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\">\n\"QueryFeeDiscountAccountInfoRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"\xe9\x01\n#QueryFeeDiscountAccountInfoResponse\x12\x1d\n\ntier_level\x18\x01 \x01(\x04R\ttierLevel\x12R\n\x0c\x61\x63\x63ount_info\x18\x02 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountTierInfoR\x0b\x61\x63\x63ountInfo\x12O\n\x0b\x61\x63\x63ount_ttl\x18\x03 \x01(\x0b\x32..injective.exchange.v1beta1.FeeDiscountTierTTLR\naccountTtl\"!\n\x1fQueryFeeDiscountScheduleRequest\"\x87\x01\n QueryFeeDiscountScheduleResponse\x12\x63\n\x15\x66\x65\x65_discount_schedule\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x13\x66\x65\x65\x44iscountSchedule\"@\n\x1dQueryBalanceMismatchesRequest\x12\x1f\n\x0b\x64ust_factor\x18\x01 \x01(\x03R\ndustFactor\"\xa2\x03\n\x0f\x42\x61lanceMismatch\x12\"\n\x0csubaccountId\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x41\n\tavailable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tavailable\x12\x39\n\x05total\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05total\x12\x46\n\x0c\x62\x61lance_hold\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\x12J\n\x0e\x65xpected_total\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rexpectedTotal\x12\x43\n\ndifference\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\ndifference\"|\n\x1eQueryBalanceMismatchesResponse\x12Z\n\x12\x62\x61lance_mismatches\x18\x01 \x03(\x0b\x32+.injective.exchange.v1beta1.BalanceMismatchR\x11\x62\x61lanceMismatches\"%\n#QueryBalanceWithBalanceHoldsRequest\"\x97\x02\n\x15\x42\x61lanceWithMarginHold\x12\"\n\x0csubaccountId\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x41\n\tavailable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tavailable\x12\x39\n\x05total\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05total\x12\x46\n\x0c\x62\x61lance_hold\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\"\x96\x01\n$QueryBalanceWithBalanceHoldsResponse\x12n\n\x1a\x62\x61lance_with_balance_holds\x18\x01 \x03(\x0b\x32\x31.injective.exchange.v1beta1.BalanceWithMarginHoldR\x17\x62\x61lanceWithBalanceHolds\"\'\n%QueryFeeDiscountTierStatisticsRequest\"9\n\rTierStatistic\x12\x12\n\x04tier\x18\x01 \x01(\x04R\x04tier\x12\x14\n\x05\x63ount\x18\x02 \x01(\x04R\x05\x63ount\"s\n&QueryFeeDiscountTierStatisticsResponse\x12I\n\nstatistics\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.TierStatisticR\nstatistics\"\x17\n\x15MitoVaultInfosRequest\"\xc4\x01\n\x16MitoVaultInfosResponse\x12)\n\x10master_addresses\x18\x01 \x03(\tR\x0fmasterAddresses\x12\x31\n\x14\x64\x65rivative_addresses\x18\x02 \x03(\tR\x13\x64\x65rivativeAddresses\x12%\n\x0espot_addresses\x18\x03 \x03(\tR\rspotAddresses\x12%\n\x0e\x63w20_addresses\x18\x04 \x03(\tR\rcw20Addresses\"D\n\x1dQueryMarketIDFromVaultRequest\x12#\n\rvault_address\x18\x01 \x01(\tR\x0cvaultAddress\"=\n\x1eQueryMarketIDFromVaultResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"A\n\"QueryHistoricalTradeRecordsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"t\n#QueryHistoricalTradeRecordsResponse\x12M\n\rtrade_records\x18\x01 \x03(\x0b\x32(.injective.exchange.v1beta1.TradeRecordsR\x0ctradeRecords\"\xb7\x01\n\x13TradeHistoryOptions\x12,\n\x12trade_grouping_sec\x18\x01 \x01(\x04R\x10tradeGroupingSec\x12\x17\n\x07max_age\x18\x02 \x01(\x04R\x06maxAge\x12.\n\x13include_raw_history\x18\x04 \x01(\x08R\x11includeRawHistory\x12)\n\x10include_metadata\x18\x05 \x01(\x08R\x0fincludeMetadata\"\xa0\x01\n\x1cQueryMarketVolatilityRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x63\n\x15trade_history_options\x18\x02 \x01(\x0b\x32/.injective.exchange.v1beta1.TradeHistoryOptionsR\x13tradeHistoryOptions\"\x83\x02\n\x1dQueryMarketVolatilityResponse\x12?\n\nvolatility\x18\x01 \x01(\tB\x1f\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nvolatility\x12W\n\x10history_metadata\x18\x02 \x01(\x0b\x32,.injective.oracle.v1beta1.MetadataStatisticsR\x0fhistoryMetadata\x12H\n\x0braw_history\x18\x03 \x03(\x0b\x32\'.injective.exchange.v1beta1.TradeRecordR\nrawHistory\"3\n\x19QueryBinaryMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\"g\n\x1aQueryBinaryMarketsResponse\x12I\n\x07markets\x18\x01 \x03(\x0b\x32/.injective.exchange.v1beta1.BinaryOptionsMarketR\x07markets\"q\n-QueryTraderDerivativeConditionalOrdersRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\x9e\x03\n!TrimmedDerivativeConditionalOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12G\n\x0ctriggerPrice\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1f\n\x05isBuy\x18\x05 \x01(\x08\x42\t\xea\xde\x1f\x05isBuyR\x05isBuy\x12%\n\x07isLimit\x18\x06 \x01(\x08\x42\x0b\xea\xde\x1f\x07isLimitR\x07isLimit\x12\x1d\n\norder_hash\x18\x07 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x08 \x01(\tR\x03\x63id\"\x87\x01\n.QueryTraderDerivativeConditionalOrdersResponse\x12U\n\x06orders\x18\x01 \x03(\x0b\x32=.injective.exchange.v1beta1.TrimmedDerivativeConditionalOrderR\x06orders\"<\n\x1dQueryFullSpotOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\xa6\x01\n\x1eQueryFullSpotOrderbookResponse\x12\x41\n\x04\x42ids\x18\x01 \x03(\x0b\x32-.injective.exchange.v1beta1.TrimmedLimitOrderR\x04\x42ids\x12\x41\n\x04\x41sks\x18\x02 \x03(\x0b\x32-.injective.exchange.v1beta1.TrimmedLimitOrderR\x04\x41sks\"B\n#QueryFullDerivativeOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\xac\x01\n$QueryFullDerivativeOrderbookResponse\x12\x41\n\x04\x42ids\x18\x01 \x03(\x0b\x32-.injective.exchange.v1beta1.TrimmedLimitOrderR\x04\x42ids\x12\x41\n\x04\x41sks\x18\x02 \x03(\x0b\x32-.injective.exchange.v1beta1.TrimmedLimitOrderR\x04\x41sks\"\xd3\x01\n\x11TrimmedLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x1d\n\norder_hash\x18\x03 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\"M\n.QueryMarketAtomicExecutionFeeMultiplierRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"v\n/QueryMarketAtomicExecutionFeeMultiplierResponse\x12\x43\n\nmultiplier\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nmultiplier\"8\n\x1cQueryActiveStakeGrantRequest\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\"\xb3\x01\n\x1dQueryActiveStakeGrantResponse\x12=\n\x05grant\x18\x01 \x01(\x0b\x32\'.injective.exchange.v1beta1.ActiveGrantR\x05grant\x12S\n\x0f\x65\x66\x66\x65\x63tive_grant\x18\x02 \x01(\x0b\x32*.injective.exchange.v1beta1.EffectiveGrantR\x0e\x65\x66\x66\x65\x63tiveGrant\"T\n\x1eQueryGrantAuthorizationRequest\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x18\n\x07grantee\x18\x02 \x01(\tR\x07grantee\"X\n\x1fQueryGrantAuthorizationResponse\x12\x35\n\x06\x61mount\x18\x01 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\";\n\x1fQueryGrantAuthorizationsRequest\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\"\xb7\x01\n QueryGrantAuthorizationsResponse\x12K\n\x12total_grant_amount\x18\x01 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10totalGrantAmount\x12\x46\n\x06grants\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.GrantAuthorizationR\x06grants*4\n\tOrderSide\x12\x14\n\x10Side_Unspecified\x10\x00\x12\x07\n\x03\x42uy\x10\x01\x12\x08\n\x04Sell\x10\x02*V\n\x14\x43\x61ncellationStrategy\x12\x14\n\x10UnspecifiedOrder\x10\x00\x12\x13\n\x0f\x46romWorstToBest\x10\x01\x12\x13\n\x0f\x46romBestToWorst\x10\x02\x32\xffh\n\x05Query\x12\xe2\x01\n\x15L3DerivativeOrderBook\x12?.injective.exchange.v1beta1.QueryFullDerivativeOrderbookRequest\x1a@.injective.exchange.v1beta1.QueryFullDerivativeOrderbookResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v1beta1/derivative/L3OrderBook/{market_id}\x12\xca\x01\n\x0fL3SpotOrderBook\x12\x39.injective.exchange.v1beta1.QueryFullSpotOrderbookRequest\x1a:.injective.exchange.v1beta1.QueryFullSpotOrderbookResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/exchange/v1beta1/spot/L3OrderBook/{market_id}\x12\xba\x01\n\x13QueryExchangeParams\x12\x36.injective.exchange.v1beta1.QueryExchangeParamsRequest\x1a\x37.injective.exchange.v1beta1.QueryExchangeParamsResponse\"2\x82\xd3\xe4\x93\x02,\x12*/injective/exchange/v1beta1/exchangeParams\x12\xce\x01\n\x12SubaccountDeposits\x12:.injective.exchange.v1beta1.QuerySubaccountDepositsRequest\x1a;.injective.exchange.v1beta1.QuerySubaccountDepositsResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v1beta1/exchange/subaccountDeposits\x12\xca\x01\n\x11SubaccountDeposit\x12\x39.injective.exchange.v1beta1.QuerySubaccountDepositRequest\x1a:.injective.exchange.v1beta1.QuerySubaccountDepositResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/exchange/subaccountDeposit\x12\xc6\x01\n\x10\x45xchangeBalances\x12\x38.injective.exchange.v1beta1.QueryExchangeBalancesRequest\x1a\x39.injective.exchange.v1beta1.QueryExchangeBalancesResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v1beta1/exchange/exchangeBalances\x12\xcc\x01\n\x0f\x41ggregateVolume\x12\x37.injective.exchange.v1beta1.QueryAggregateVolumeRequest\x1a\x38.injective.exchange.v1beta1.QueryAggregateVolumeResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v1beta1/exchange/aggregateVolume/{account}\x12\xc6\x01\n\x10\x41ggregateVolumes\x12\x38.injective.exchange.v1beta1.QueryAggregateVolumesRequest\x1a\x39.injective.exchange.v1beta1.QueryAggregateVolumesResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v1beta1/exchange/aggregateVolumes\x12\xe6\x01\n\x15\x41ggregateMarketVolume\x12=.injective.exchange.v1beta1.QueryAggregateMarketVolumeRequest\x1a>.injective.exchange.v1beta1.QueryAggregateMarketVolumeResponse\"N\x82\xd3\xe4\x93\x02H\x12\x46/injective/exchange/v1beta1/exchange/aggregateMarketVolume/{market_id}\x12\xde\x01\n\x16\x41ggregateMarketVolumes\x12>.injective.exchange.v1beta1.QueryAggregateMarketVolumesRequest\x1a?.injective.exchange.v1beta1.QueryAggregateMarketVolumesResponse\"C\x82\xd3\xe4\x93\x02=\x12;/injective/exchange/v1beta1/exchange/aggregateMarketVolumes\x12\xbf\x01\n\x0c\x44\x65nomDecimal\x12\x34.injective.exchange.v1beta1.QueryDenomDecimalRequest\x1a\x35.injective.exchange.v1beta1.QueryDenomDecimalResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/exchange/denom_decimal/{denom}\x12\xbb\x01\n\rDenomDecimals\x12\x35.injective.exchange.v1beta1.QueryDenomDecimalsRequest\x1a\x36.injective.exchange.v1beta1.QueryDenomDecimalsResponse\";\x82\xd3\xe4\x93\x02\x35\x12\x33/injective/exchange/v1beta1/exchange/denom_decimals\x12\xaa\x01\n\x0bSpotMarkets\x12\x33.injective.exchange.v1beta1.QuerySpotMarketsRequest\x1a\x34.injective.exchange.v1beta1.QuerySpotMarketsResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/exchange/v1beta1/spot/markets\x12\xb3\x01\n\nSpotMarket\x12\x32.injective.exchange.v1beta1.QuerySpotMarketRequest\x1a\x33.injective.exchange.v1beta1.QuerySpotMarketResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v1beta1/spot/markets/{market_id}\x12\xbb\x01\n\x0f\x46ullSpotMarkets\x12\x37.injective.exchange.v1beta1.QueryFullSpotMarketsRequest\x1a\x38.injective.exchange.v1beta1.QueryFullSpotMarketsResponse\"5\x82\xd3\xe4\x93\x02/\x12-/injective/exchange/v1beta1/spot/full_markets\x12\xc3\x01\n\x0e\x46ullSpotMarket\x12\x36.injective.exchange.v1beta1.QueryFullSpotMarketRequest\x1a\x37.injective.exchange.v1beta1.QueryFullSpotMarketResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/exchange/v1beta1/spot/full_market/{market_id}\x12\xbe\x01\n\rSpotOrderbook\x12\x35.injective.exchange.v1beta1.QuerySpotOrderbookRequest\x1a\x36.injective.exchange.v1beta1.QuerySpotOrderbookResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/spot/orderbook/{market_id}\x12\xd4\x01\n\x10TraderSpotOrders\x12\x38.injective.exchange.v1beta1.QueryTraderSpotOrdersRequest\x1a\x39.injective.exchange.v1beta1.QueryTraderSpotOrdersResponse\"K\x82\xd3\xe4\x93\x02\x45\x12\x43/injective/exchange/v1beta1/spot/orders/{market_id}/{subaccount_id}\x12\xf6\x01\n\x18\x41\x63\x63ountAddressSpotOrders\x12@.injective.exchange.v1beta1.QueryAccountAddressSpotOrdersRequest\x1a\x41.injective.exchange.v1beta1.QueryAccountAddressSpotOrdersResponse\"U\x82\xd3\xe4\x93\x02O\x12M/injective/exchange/v1beta1/spot/orders/{market_id}/account/{account_address}\x12\xe4\x01\n\x12SpotOrdersByHashes\x12:.injective.exchange.v1beta1.QuerySpotOrdersByHashesRequest\x1a;.injective.exchange.v1beta1.QuerySpotOrdersByHashesResponse\"U\x82\xd3\xe4\x93\x02O\x12M/injective/exchange/v1beta1/spot/orders_by_hashes/{market_id}/{subaccount_id}\x12\xc3\x01\n\x10SubaccountOrders\x12\x38.injective.exchange.v1beta1.QuerySubaccountOrdersRequest\x1a\x39.injective.exchange.v1beta1.QuerySubaccountOrdersResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/exchange/v1beta1/orders/{subaccount_id}\x12\xe7\x01\n\x19TraderSpotTransientOrders\x12\x38.injective.exchange.v1beta1.QueryTraderSpotOrdersRequest\x1a\x39.injective.exchange.v1beta1.QueryTraderSpotOrdersResponse\"U\x82\xd3\xe4\x93\x02O\x12M/injective/exchange/v1beta1/spot/transient_orders/{market_id}/{subaccount_id}\x12\xd5\x01\n\x12SpotMidPriceAndTOB\x12:.injective.exchange.v1beta1.QuerySpotMidPriceAndTOBRequest\x1a;.injective.exchange.v1beta1.QuerySpotMidPriceAndTOBResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v1beta1/spot/mid_price_and_tob/{market_id}\x12\xed\x01\n\x18\x44\x65rivativeMidPriceAndTOB\x12@.injective.exchange.v1beta1.QueryDerivativeMidPriceAndTOBRequest\x1a\x41.injective.exchange.v1beta1.QueryDerivativeMidPriceAndTOBResponse\"L\x82\xd3\xe4\x93\x02\x46\x12\x44/injective/exchange/v1beta1/derivative/mid_price_and_tob/{market_id}\x12\xd6\x01\n\x13\x44\x65rivativeOrderbook\x12;.injective.exchange.v1beta1.QueryDerivativeOrderbookRequest\x1a<.injective.exchange.v1beta1.QueryDerivativeOrderbookResponse\"D\x82\xd3\xe4\x93\x02>\x12.injective.exchange.v1beta1.QueryTraderDerivativeOrdersRequest\x1a?.injective.exchange.v1beta1.QueryTraderDerivativeOrdersResponse\"Q\x82\xd3\xe4\x93\x02K\x12I/injective/exchange/v1beta1/derivative/orders/{market_id}/{subaccount_id}\x12\x8e\x02\n\x1e\x41\x63\x63ountAddressDerivativeOrders\x12\x46.injective.exchange.v1beta1.QueryAccountAddressDerivativeOrdersRequest\x1aG.injective.exchange.v1beta1.QueryAccountAddressDerivativeOrdersResponse\"[\x82\xd3\xe4\x93\x02U\x12S/injective/exchange/v1beta1/derivative/orders/{market_id}/account/{account_address}\x12\xfc\x01\n\x18\x44\x65rivativeOrdersByHashes\x12@.injective.exchange.v1beta1.QueryDerivativeOrdersByHashesRequest\x1a\x41.injective.exchange.v1beta1.QueryDerivativeOrdersByHashesResponse\"[\x82\xd3\xe4\x93\x02U\x12S/injective/exchange/v1beta1/derivative/orders_by_hashes/{market_id}/{subaccount_id}\x12\xff\x01\n\x1fTraderDerivativeTransientOrders\x12>.injective.exchange.v1beta1.QueryTraderDerivativeOrdersRequest\x1a?.injective.exchange.v1beta1.QueryTraderDerivativeOrdersResponse\"[\x82\xd3\xe4\x93\x02U\x12S/injective/exchange/v1beta1/derivative/transient_orders/{market_id}/{subaccount_id}\x12\xc2\x01\n\x11\x44\x65rivativeMarkets\x12\x39.injective.exchange.v1beta1.QueryDerivativeMarketsRequest\x1a:.injective.exchange.v1beta1.QueryDerivativeMarketsResponse\"6\x82\xd3\xe4\x93\x02\x30\x12./injective/exchange/v1beta1/derivative/markets\x12\xcb\x01\n\x10\x44\x65rivativeMarket\x12\x38.injective.exchange.v1beta1.QueryDerivativeMarketRequest\x1a\x39.injective.exchange.v1beta1.QueryDerivativeMarketResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/derivative/markets/{market_id}\x12\xe7\x01\n\x17\x44\x65rivativeMarketAddress\x12?.injective.exchange.v1beta1.QueryDerivativeMarketAddressRequest\x1a@.injective.exchange.v1beta1.QueryDerivativeMarketAddressResponse\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/injective/exchange/v1beta1/derivative/market_address/{market_id}\x12\xd1\x01\n\x14SubaccountTradeNonce\x12<.injective.exchange.v1beta1.QuerySubaccountTradeNonceRequest\x1a=.injective.exchange.v1beta1.QuerySubaccountTradeNonceResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v1beta1/exchange/{subaccount_id}\x12\xb2\x01\n\x13\x45xchangeModuleState\x12\x33.injective.exchange.v1beta1.QueryModuleStateRequest\x1a\x34.injective.exchange.v1beta1.QueryModuleStateResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/exchange/v1beta1/module_state\x12\xa1\x01\n\tPositions\x12\x31.injective.exchange.v1beta1.QueryPositionsRequest\x1a\x32.injective.exchange.v1beta1.QueryPositionsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/injective/exchange/v1beta1/positions\x12\xcf\x01\n\x13SubaccountPositions\x12;.injective.exchange.v1beta1.QuerySubaccountPositionsRequest\x1a<.injective.exchange.v1beta1.QuerySubaccountPositionsResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v1beta1/positions/{subaccount_id}\x12\xf0\x01\n\x1aSubaccountPositionInMarket\x12\x42.injective.exchange.v1beta1.QuerySubaccountPositionInMarketRequest\x1a\x43.injective.exchange.v1beta1.QuerySubaccountPositionInMarketResponse\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/injective/exchange/v1beta1/positions/{subaccount_id}/{market_id}\x12\x95\x02\n#SubaccountEffectivePositionInMarket\x12K.injective.exchange.v1beta1.QuerySubaccountEffectivePositionInMarketRequest\x1aL.injective.exchange.v1beta1.QuerySubaccountEffectivePositionInMarketResponse\"S\x82\xd3\xe4\x93\x02M\x12K/injective/exchange/v1beta1/effective_positions/{subaccount_id}/{market_id}\x12\xd7\x01\n\x13PerpetualMarketInfo\x12;.injective.exchange.v1beta1.QueryPerpetualMarketInfoRequest\x1a<.injective.exchange.v1beta1.QueryPerpetualMarketInfoResponse\"E\x82\xd3\xe4\x93\x02?\x12=/injective/exchange/v1beta1/perpetual_market_info/{market_id}\x12\xe0\x01\n\x17\x45xpiryFuturesMarketInfo\x12?.injective.exchange.v1beta1.QueryExpiryFuturesMarketInfoRequest\x1a@.injective.exchange.v1beta1.QueryExpiryFuturesMarketInfoResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/expiry_market_info/{market_id}\x12\xe3\x01\n\x16PerpetualMarketFunding\x12>.injective.exchange.v1beta1.QueryPerpetualMarketFundingRequest\x1a?.injective.exchange.v1beta1.QueryPerpetualMarketFundingResponse\"H\x82\xd3\xe4\x93\x02\x42\x12@/injective/exchange/v1beta1/perpetual_market_funding/{market_id}\x12\xe0\x01\n\x17SubaccountOrderMetadata\x12?.injective.exchange.v1beta1.QuerySubaccountOrderMetadataRequest\x1a@.injective.exchange.v1beta1.QuerySubaccountOrderMetadataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/order_metadata/{subaccount_id}\x12\xc3\x01\n\x11TradeRewardPoints\x12\x39.injective.exchange.v1beta1.QueryTradeRewardPointsRequest\x1a:.injective.exchange.v1beta1.QueryTradeRewardPointsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v1beta1/trade_reward_points\x12\xd2\x01\n\x18PendingTradeRewardPoints\x12\x39.injective.exchange.v1beta1.QueryTradeRewardPointsRequest\x1a:.injective.exchange.v1beta1.QueryTradeRewardPointsResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v1beta1/pending_trade_reward_points\x12\xcb\x01\n\x13TradeRewardCampaign\x12;.injective.exchange.v1beta1.QueryTradeRewardCampaignRequest\x1a<.injective.exchange.v1beta1.QueryTradeRewardCampaignResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v1beta1/trade_reward_campaign\x12\xe2\x01\n\x16\x46\x65\x65\x44iscountAccountInfo\x12>.injective.exchange.v1beta1.QueryFeeDiscountAccountInfoRequest\x1a?.injective.exchange.v1beta1.QueryFeeDiscountAccountInfoResponse\"G\x82\xd3\xe4\x93\x02\x41\x12?/injective/exchange/v1beta1/fee_discount_account_info/{account}\x12\xcb\x01\n\x13\x46\x65\x65\x44iscountSchedule\x12;.injective.exchange.v1beta1.QueryFeeDiscountScheduleRequest\x1a<.injective.exchange.v1beta1.QueryFeeDiscountScheduleResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v1beta1/fee_discount_schedule\x12\xd0\x01\n\x11\x42\x61lanceMismatches\x12\x39.injective.exchange.v1beta1.QueryBalanceMismatchesRequest\x1a:.injective.exchange.v1beta1.QueryBalanceMismatchesResponse\"D\x82\xd3\xe4\x93\x02>\x12.injective.exchange.v1beta1.QueryHistoricalTradeRecordsRequest\x1a?.injective.exchange.v1beta1.QueryHistoricalTradeRecordsResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v1beta1/historical_trade_records\x12\xd7\x01\n\x13IsOptedOutOfRewards\x12;.injective.exchange.v1beta1.QueryIsOptedOutOfRewardsRequest\x1a<.injective.exchange.v1beta1.QueryIsOptedOutOfRewardsResponse\"E\x82\xd3\xe4\x93\x02?\x12=/injective/exchange/v1beta1/is_opted_out_of_rewards/{account}\x12\xe5\x01\n\x19OptedOutOfRewardsAccounts\x12\x41.injective.exchange.v1beta1.QueryOptedOutOfRewardsAccountsRequest\x1a\x42.injective.exchange.v1beta1.QueryOptedOutOfRewardsAccountsResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v1beta1/opted_out_of_rewards_accounts\x12\xca\x01\n\x10MarketVolatility\x12\x38.injective.exchange.v1beta1.QueryMarketVolatilityRequest\x1a\x39.injective.exchange.v1beta1.QueryMarketVolatilityResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v1beta1/market_volatility/{market_id}\x12\xc1\x01\n\x14\x42inaryOptionsMarkets\x12\x35.injective.exchange.v1beta1.QueryBinaryMarketsRequest\x1a\x36.injective.exchange.v1beta1.QueryBinaryMarketsResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/exchange/v1beta1/binary_options/markets\x12\x99\x02\n!TraderDerivativeConditionalOrders\x12I.injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersRequest\x1aJ.injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersResponse\"]\x82\xd3\xe4\x93\x02W\x12U/injective/exchange/v1beta1/derivative/orders/conditional/{market_id}/{subaccount_id}\x12\xfe\x01\n\"MarketAtomicExecutionFeeMultiplier\x12J.injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierRequest\x1aK.injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v1beta1/atomic_order_fee_multiplier\x12\xc9\x01\n\x10\x41\x63tiveStakeGrant\x12\x38.injective.exchange.v1beta1.QueryActiveStakeGrantRequest\x1a\x39.injective.exchange.v1beta1.QueryActiveStakeGrantResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/exchange/v1beta1/active_stake_grant/{grantee}\x12\xda\x01\n\x12GrantAuthorization\x12:.injective.exchange.v1beta1.QueryGrantAuthorizationRequest\x1a;.injective.exchange.v1beta1.QueryGrantAuthorizationResponse\"K\x82\xd3\xe4\x93\x02\x45\x12\x43/injective/exchange/v1beta1/grant_authorization/{granter}/{grantee}\x12\xd4\x01\n\x13GrantAuthorizations\x12;.injective.exchange.v1beta1.QueryGrantAuthorizationsRequest\x1a<.injective.exchange.v1beta1.QueryGrantAuthorizationsResponse\"B\x82\xd3\xe4\x93\x02<\x12:/injective/exchange/v1beta1/grant_authorizations/{granter}B\x86\x02\n\x1e\x63om.injective.exchange.v1beta1B\nQueryProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -151,12 +151,20 @@ _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isBuy']._serialized_options = b'\352\336\037\005isBuy' _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isLimit']._loaded_options = None _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isLimit']._serialized_options = b'\352\336\037\007isLimit' + _globals['_TRIMMEDLIMITORDER'].fields_by_name['price']._loaded_options = None + _globals['_TRIMMEDLIMITORDER'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDLIMITORDER'].fields_by_name['quantity']._loaded_options = None + _globals['_TRIMMEDLIMITORDER'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE'].fields_by_name['multiplier']._loaded_options = None _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE'].fields_by_name['multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _globals['_QUERYGRANTAUTHORIZATIONRESPONSE'].fields_by_name['amount']._loaded_options = None _globals['_QUERYGRANTAUTHORIZATIONRESPONSE'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE'].fields_by_name['total_grant_amount']._loaded_options = None _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE'].fields_by_name['total_grant_amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_QUERY'].methods_by_name['L3DerivativeOrderBook']._loaded_options = None + _globals['_QUERY'].methods_by_name['L3DerivativeOrderBook']._serialized_options = b'\202\323\344\223\002@\022>/injective/exchange/v1beta1/derivative/L3OrderBook/{market_id}' + _globals['_QUERY'].methods_by_name['L3SpotOrderBook']._loaded_options = None + _globals['_QUERY'].methods_by_name['L3SpotOrderBook']._serialized_options = b'\202\323\344\223\002:\0228/injective/exchange/v1beta1/spot/L3OrderBook/{market_id}' _globals['_QUERY'].methods_by_name['QueryExchangeParams']._loaded_options = None _globals['_QUERY'].methods_by_name['QueryExchangeParams']._serialized_options = b'\202\323\344\223\002,\022*/injective/exchange/v1beta1/exchangeParams' _globals['_QUERY'].methods_by_name['SubaccountDeposits']._loaded_options = None @@ -277,10 +285,10 @@ _globals['_QUERY'].methods_by_name['GrantAuthorization']._serialized_options = b'\202\323\344\223\002E\022C/injective/exchange/v1beta1/grant_authorization/{granter}/{grantee}' _globals['_QUERY'].methods_by_name['GrantAuthorizations']._loaded_options = None _globals['_QUERY'].methods_by_name['GrantAuthorizations']._serialized_options = b'\202\323\344\223\002<\022:/injective/exchange/v1beta1/grant_authorizations/{granter}' - _globals['_ORDERSIDE']._serialized_start=17324 - _globals['_ORDERSIDE']._serialized_end=17376 - _globals['_CANCELLATIONSTRATEGY']._serialized_start=17378 - _globals['_CANCELLATIONSTRATEGY']._serialized_end=17464 + _globals['_ORDERSIDE']._serialized_start=18012 + _globals['_ORDERSIDE']._serialized_end=18064 + _globals['_CANCELLATIONSTRATEGY']._serialized_start=18066 + _globals['_CANCELLATIONSTRATEGY']._serialized_end=18152 _globals['_SUBACCOUNT']._serialized_start=246 _globals['_SUBACCOUNT']._serialized_end=325 _globals['_QUERYSUBACCOUNTORDERSREQUEST']._serialized_start=327 @@ -527,22 +535,32 @@ _globals['_TRIMMEDDERIVATIVECONDITIONALORDER']._serialized_end=16322 _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSRESPONSE']._serialized_start=16325 _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSRESPONSE']._serialized_end=16460 - _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_start=16462 - _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_end=16539 - _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_start=16541 - _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_end=16659 - _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_start=16661 - _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_end=16717 - _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_start=16720 - _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_end=16899 - _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_start=16901 - _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_end=16985 - _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_start=16987 - _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_end=17075 - _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_start=17077 - _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_end=17136 - _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_start=17139 - _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_end=17322 - _globals['_QUERY']._serialized_start=17467 - _globals['_QUERY']._serialized_end=30472 + _globals['_QUERYFULLSPOTORDERBOOKREQUEST']._serialized_start=16462 + _globals['_QUERYFULLSPOTORDERBOOKREQUEST']._serialized_end=16522 + _globals['_QUERYFULLSPOTORDERBOOKRESPONSE']._serialized_start=16525 + _globals['_QUERYFULLSPOTORDERBOOKRESPONSE']._serialized_end=16691 + _globals['_QUERYFULLDERIVATIVEORDERBOOKREQUEST']._serialized_start=16693 + _globals['_QUERYFULLDERIVATIVEORDERBOOKREQUEST']._serialized_end=16759 + _globals['_QUERYFULLDERIVATIVEORDERBOOKRESPONSE']._serialized_start=16762 + _globals['_QUERYFULLDERIVATIVEORDERBOOKRESPONSE']._serialized_end=16934 + _globals['_TRIMMEDLIMITORDER']._serialized_start=16937 + _globals['_TRIMMEDLIMITORDER']._serialized_end=17148 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_start=17150 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_end=17227 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_start=17229 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_end=17347 + _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_start=17349 + _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_end=17405 + _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_start=17408 + _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_end=17587 + _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_start=17589 + _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_end=17673 + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_start=17675 + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_end=17763 + _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_start=17765 + _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_end=17824 + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_start=17827 + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_end=18010 + _globals['_QUERY']._serialized_start=18155 + _globals['_QUERY']._serialized_end=31594 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/query_pb2_grpc.py b/pyinjective/proto/injective/exchange/v1beta1/query_pb2_grpc.py index c5aa407e..08ff9a3a 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/query_pb2_grpc.py +++ b/pyinjective/proto/injective/exchange/v1beta1/query_pb2_grpc.py @@ -15,6 +15,16 @@ def __init__(self, channel): Args: channel: A grpc.Channel. """ + self.L3DerivativeOrderBook = channel.unary_unary( + '/injective.exchange.v1beta1.Query/L3DerivativeOrderBook', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullDerivativeOrderbookRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullDerivativeOrderbookResponse.FromString, + _registered_method=True) + self.L3SpotOrderBook = channel.unary_unary( + '/injective.exchange.v1beta1.Query/L3SpotOrderBook', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullSpotOrderbookRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullSpotOrderbookResponse.FromString, + _registered_method=True) self.QueryExchangeParams = channel.unary_unary( '/injective.exchange.v1beta1.Query/QueryExchangeParams', request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryExchangeParamsRequest.SerializeToString, @@ -321,6 +331,18 @@ class QueryServicer(object): """Query defines the gRPC querier service. """ + def L3DerivativeOrderBook(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def L3SpotOrderBook(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def QueryExchangeParams(self, request, context): """Retrieves exchange params """ @@ -748,6 +770,16 @@ def GrantAuthorizations(self, request, context): def add_QueryServicer_to_server(servicer, server): rpc_method_handlers = { + 'L3DerivativeOrderBook': grpc.unary_unary_rpc_method_handler( + servicer.L3DerivativeOrderBook, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullDerivativeOrderbookRequest.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullDerivativeOrderbookResponse.SerializeToString, + ), + 'L3SpotOrderBook': grpc.unary_unary_rpc_method_handler( + servicer.L3SpotOrderBook, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullSpotOrderbookRequest.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullSpotOrderbookResponse.SerializeToString, + ), 'QueryExchangeParams': grpc.unary_unary_rpc_method_handler( servicer.QueryExchangeParams, request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryExchangeParamsRequest.FromString, @@ -1060,6 +1092,60 @@ class Query(object): """Query defines the gRPC querier service. """ + @staticmethod + def L3DerivativeOrderBook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v1beta1.Query/L3DerivativeOrderBook', + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullDerivativeOrderbookRequest.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullDerivativeOrderbookResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def L3SpotOrderBook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v1beta1.Query/L3SpotOrderBook', + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullSpotOrderbookRequest.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryFullSpotOrderbookResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def QueryExchangeParams(request, target, diff --git a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py index 1308b852..70abb95c 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py @@ -22,7 +22,7 @@ from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/exchange/v1beta1/tx.proto\x12\x1ainjective.exchange.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a.cosmos/distribution/v1beta1/distribution.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a)injective/exchange/v1beta1/exchange.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\xa7\x03\n\x13MsgUpdateSpotMarket\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nnew_ticker\x18\x03 \x01(\tR\tnewTicker\x12Y\n\x17new_min_price_tick_size\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13newMinPriceTickSize\x12_\n\x1anew_min_quantity_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16newMinQuantityTickSize\x12M\n\x10new_min_notional\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0enewMinNotional:3\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x05\x61\x64min\x8a\xe7\xb0*\x1c\x65xchange/MsgUpdateSpotMarket\"\x1d\n\x1bMsgUpdateSpotMarketResponse\"\xf7\x04\n\x19MsgUpdateDerivativeMarket\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nnew_ticker\x18\x03 \x01(\tR\tnewTicker\x12Y\n\x17new_min_price_tick_size\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13newMinPriceTickSize\x12_\n\x1anew_min_quantity_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16newMinQuantityTickSize\x12M\n\x10new_min_notional\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0enewMinNotional\x12\\\n\x18new_initial_margin_ratio\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15newInitialMarginRatio\x12\x64\n\x1cnew_maintenance_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19newMaintenanceMarginRatio:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x05\x61\x64min\x8a\xe7\xb0*\"exchange/MsgUpdateDerivativeMarket\"#\n!MsgUpdateDerivativeMarketResponse\"\xb8\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12@\n\x06params\x18\x02 \x01(\x0b\x32\".injective.exchange.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:+\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x18\x65xchange/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse\"\xaf\x01\n\nMsgDeposit\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:+\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x13\x65xchange/MsgDeposit\"\x14\n\x12MsgDepositResponse\"\xb1\x01\n\x0bMsgWithdraw\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:,\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x14\x65xchange/MsgWithdraw\"\x15\n\x13MsgWithdrawResponse\"\xae\x01\n\x17MsgCreateSpotLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x00R\x05order:8\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0* exchange/MsgCreateSpotLimitOrder\"\\\n\x1fMsgCreateSpotLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbc\x01\n\x1dMsgBatchCreateSpotLimitOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x43\n\x06orders\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x00R\x06orders:>\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*&exchange/MsgBatchCreateSpotLimitOrders\"\xb2\x01\n%MsgBatchCreateSpotLimitOrdersResponse\x12!\n\x0corder_hashes\x18\x01 \x03(\tR\x0borderHashes\x12.\n\x13\x63reated_orders_cids\x18\x02 \x03(\tR\x11\x63reatedOrdersCids\x12,\n\x12\x66\x61iled_orders_cids\x18\x03 \x03(\tR\x10\x66\x61iledOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbf\x03\n\x1aMsgInstantSpotMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x03 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:;\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#exchange/MsgInstantSpotMarketLaunch\"$\n\"MsgInstantSpotMarketLaunchResponse\"\xb1\x07\n\x1fMsgInstantPerpetualMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x06 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x07 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12I\n\x0emaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12U\n\x14initial_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12R\n\x13min_price_tick_size\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*(exchange/MsgInstantPerpetualMarketLaunch\")\n\'MsgInstantPerpetualMarketLaunchResponse\"\x89\x07\n#MsgInstantBinaryOptionsMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x03 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x04 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x05 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x06 \x01(\rR\x11oracleScaleFactor\x12I\n\x0emaker_fee_rate\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12\x31\n\x14\x65xpiration_timestamp\x18\t \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\n \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\x0c \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgInstantBinaryOptionsMarketLaunch\"-\n+MsgInstantBinaryOptionsMarketLaunchResponse\"\xd1\x07\n#MsgInstantExpiryFuturesMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x45\n\x0boracle_type\x18\x06 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x16\n\x06\x65xpiry\x18\x08 \x01(\x03R\x06\x65xpiry\x12I\n\x0emaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12U\n\x14initial_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgInstantExpiryFuturesMarketLaunch\"-\n+MsgInstantExpiryFuturesMarketLaunchResponse\"\xb0\x01\n\x18MsgCreateSpotMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x00R\x05order:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgCreateSpotMarketOrder\"\xb1\x01\n MsgCreateSpotMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12R\n\x07results\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.SpotMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd5\x01\n\x16SpotMarketOrderResults\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x35\n\x03\x66\x65\x65\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbc\x01\n\x1dMsgCreateDerivativeLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order::\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*&exchange/MsgCreateDerivativeLimitOrder\"b\n%MsgCreateDerivativeLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc2\x01\n MsgCreateBinaryOptionsLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:=\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*)exchange/MsgCreateBinaryOptionsLimitOrder\"e\n(MsgCreateBinaryOptionsLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xca\x01\n#MsgBatchCreateDerivativeLimitOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12I\n\x06orders\x18\x02 \x03(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x06orders:@\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgBatchCreateDerivativeLimitOrders\"\xb8\x01\n+MsgBatchCreateDerivativeLimitOrdersResponse\x12!\n\x0corder_hashes\x18\x01 \x03(\tR\x0borderHashes\x12.\n\x13\x63reated_orders_cids\x18\x02 \x03(\tR\x11\x63reatedOrdersCids\x12,\n\x12\x66\x61iled_orders_cids\x18\x03 \x03(\tR\x10\x66\x61iledOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd0\x01\n\x12MsgCancelSpotOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id:/\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1b\x65xchange/MsgCancelSpotOrder\"\x1c\n\x1aMsgCancelSpotOrderResponse\"\xaa\x01\n\x18MsgBatchCancelSpotOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12?\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:5\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgBatchCancelSpotOrders\"F\n MsgBatchCancelSpotOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbc\x01\n!MsgBatchCancelBinaryOptionsOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12?\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:>\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgBatchCancelBinaryOptionsOrders\"O\n)MsgBatchCancelBinaryOptionsOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xf2\x07\n\x14MsgBatchUpdateOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12?\n\x1dspot_market_ids_to_cancel_all\x18\x03 \x03(\tR\x18spotMarketIdsToCancelAll\x12K\n#derivative_market_ids_to_cancel_all\x18\x04 \x03(\tR\x1e\x64\x65rivativeMarketIdsToCancelAll\x12^\n\x15spot_orders_to_cancel\x18\x05 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x01R\x12spotOrdersToCancel\x12j\n\x1b\x64\x65rivative_orders_to_cancel\x18\x06 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x01R\x18\x64\x65rivativeOrdersToCancel\x12^\n\x15spot_orders_to_create\x18\x07 \x03(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x01R\x12spotOrdersToCreate\x12p\n\x1b\x64\x65rivative_orders_to_create\x18\x08 \x03(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x18\x64\x65rivativeOrdersToCreate\x12q\n\x1f\x62inary_options_orders_to_cancel\x18\t \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x01R\x1b\x62inaryOptionsOrdersToCancel\x12R\n\'binary_options_market_ids_to_cancel_all\x18\n \x03(\tR!binaryOptionsMarketIdsToCancelAll\x12w\n\x1f\x62inary_options_orders_to_create\x18\x0b \x03(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x1b\x62inaryOptionsOrdersToCreate:1\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1d\x65xchange/MsgBatchUpdateOrders\"\x88\x06\n\x1cMsgBatchUpdateOrdersResponse\x12.\n\x13spot_cancel_success\x18\x01 \x03(\x08R\x11spotCancelSuccess\x12:\n\x19\x64\x65rivative_cancel_success\x18\x02 \x03(\x08R\x17\x64\x65rivativeCancelSuccess\x12*\n\x11spot_order_hashes\x18\x03 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x04 \x03(\tR\x15\x64\x65rivativeOrderHashes\x12\x41\n\x1d\x62inary_options_cancel_success\x18\x05 \x03(\x08R\x1a\x62inaryOptionsCancelSuccess\x12=\n\x1b\x62inary_options_order_hashes\x18\x06 \x03(\tR\x18\x62inaryOptionsOrderHashes\x12\x37\n\x18\x63reated_spot_orders_cids\x18\x07 \x03(\tR\x15\x63reatedSpotOrdersCids\x12\x35\n\x17\x66\x61iled_spot_orders_cids\x18\x08 \x03(\tR\x14\x66\x61iledSpotOrdersCids\x12\x43\n\x1e\x63reated_derivative_orders_cids\x18\t \x03(\tR\x1b\x63reatedDerivativeOrdersCids\x12\x41\n\x1d\x66\x61iled_derivative_orders_cids\x18\n \x03(\tR\x1a\x66\x61iledDerivativeOrdersCids\x12J\n\"created_binary_options_orders_cids\x18\x0b \x03(\tR\x1e\x63reatedBinaryOptionsOrdersCids\x12H\n!failed_binary_options_orders_cids\x18\x0c \x03(\tR\x1d\x66\x61iledBinaryOptionsOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbe\x01\n\x1eMsgCreateDerivativeMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:;\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgCreateDerivativeMarketOrder\"\xbd\x01\n&MsgCreateDerivativeMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12X\n\x07results\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v1beta1.DerivativeMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xf0\x02\n\x1c\x44\x65rivativeMarketOrderResults\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x35\n\x03\x66\x65\x65\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12V\n\x0eposition_delta\x18\x04 \x01(\x0b\x32).injective.exchange.v1beta1.PositionDeltaB\x04\xc8\xde\x1f\x00R\rpositionDelta\x12;\n\x06payout\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc4\x01\n!MsgCreateBinaryOptionsMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:>\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgCreateBinaryOptionsMarketOrder\"\xc0\x01\n)MsgCreateBinaryOptionsMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12X\n\x07results\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v1beta1.DerivativeMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xfb\x01\n\x18MsgCancelDerivativeOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x05 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id:5\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgCancelDerivativeOrder\"\"\n MsgCancelDerivativeOrderResponse\"\x81\x02\n\x1bMsgCancelBinaryOptionsOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x05 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id:8\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*$exchange/MsgCancelBinaryOptionsOrder\"%\n#MsgCancelBinaryOptionsOrderResponse\"\x9d\x01\n\tOrderData\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x03 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x04 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id\"\xb6\x01\n\x1eMsgBatchCancelDerivativeOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12?\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:;\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgBatchCancelDerivativeOrders\"L\n&MsgBatchCancelDerivativeOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x86\x02\n\x15MsgSubaccountTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x37\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgSubaccountTransfer\"\x1f\n\x1dMsgSubaccountTransferResponse\"\x82\x02\n\x13MsgExternalTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x37\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:,\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1c\x65xchange/MsgExternalTransfer\"\x1d\n\x1bMsgExternalTransferResponse\"\xe8\x01\n\x14MsgLiquidatePosition\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12G\n\x05order\x18\x04 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x05order:-\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1d\x65xchange/MsgLiquidatePosition\"\x1e\n\x1cMsgLiquidatePositionResponse\"\xa7\x01\n\x18MsgEmergencySettleMarket\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId:1\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgEmergencySettleMarket\"\"\n MsgEmergencySettleMarketResponse\"\xaf\x02\n\x19MsgIncreasePositionMargin\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\x12;\n\x06\x61mount\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount:2\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgIncreasePositionMargin\"#\n!MsgIncreasePositionMarginResponse\"\xaf\x02\n\x19MsgDecreasePositionMargin\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\x12;\n\x06\x61mount\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount:2\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgDecreasePositionMargin\"#\n!MsgDecreasePositionMarginResponse\"\xca\x01\n\x1cMsgPrivilegedExecuteContract\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05\x66unds\x18\x02 \x01(\tR\x05\x66unds\x12)\n\x10\x63ontract_address\x18\x03 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04\x64\x61ta\x18\x04 \x01(\tR\x04\x64\x61ta:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgPrivilegedExecuteContract\"\xa7\x01\n$MsgPrivilegedExecuteContractResponse\x12j\n\nfunds_diff\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\tfundsDiff:\x13\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\"]\n\x10MsgRewardsOptOut\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender:1\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x19\x65xchange/MsgRewardsOptOut\"\x1a\n\x18MsgRewardsOptOutResponse\"\xaf\x01\n\x15MsgReclaimLockedFunds\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x13lockedAccountPubKey\x18\x02 \x01(\x0cR\x13lockedAccountPubKey\x12\x1c\n\tsignature\x18\x03 \x01(\x0cR\tsignature:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgReclaimLockedFunds\"\x1f\n\x1dMsgReclaimLockedFundsResponse\"\x80\x01\n\x0bMsgSignData\x12S\n\x06Signer\x18\x01 \x01(\x0c\x42;\xea\xde\x1f\x06signer\xfa\xde\x1f-github.com/cosmos/cosmos-sdk/types.AccAddressR\x06Signer\x12\x1c\n\x04\x44\x61ta\x18\x02 \x01(\x0c\x42\x08\xea\xde\x1f\x04\x64\x61taR\x04\x44\x61ta\"x\n\nMsgSignDoc\x12%\n\tsign_type\x18\x01 \x01(\tB\x08\xea\xde\x1f\x04typeR\x08signType\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\'.injective.exchange.v1beta1.MsgSignDataB\x04\xc8\xde\x1f\x00R\x05value\"\x8c\x03\n!MsgAdminUpdateBinaryOptionsMarket\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x31\n\x14\x65xpiration_timestamp\x18\x04 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\x05 \x01(\x03R\x13settlementTimestamp\x12@\n\x06status\x18\x06 \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status::\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgAdminUpdateBinaryOptionsMarket\"+\n)MsgAdminUpdateBinaryOptionsMarketResponse\"\xab\x01\n\x17MsgAuthorizeStakeGrants\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x46\n\x06grants\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.GrantAuthorizationR\x06grants:0\x82\xe7\xb0*\x06sender\x8a\xe7\xb0* exchange/MsgAuthorizeStakeGrants\"!\n\x1fMsgAuthorizeStakeGrantsResponse\"y\n\x15MsgActivateStakeGrant\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x18\n\x07granter\x18\x02 \x01(\tR\x07granter:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgActivateStakeGrant\"\x1f\n\x1dMsgActivateStakeGrantResponse2\xd0\'\n\x03Msg\x12\x61\n\x07\x44\x65posit\x12&.injective.exchange.v1beta1.MsgDeposit\x1a..injective.exchange.v1beta1.MsgDepositResponse\x12\x64\n\x08Withdraw\x12\'.injective.exchange.v1beta1.MsgWithdraw\x1a/.injective.exchange.v1beta1.MsgWithdrawResponse\x12\x91\x01\n\x17InstantSpotMarketLaunch\x12\x36.injective.exchange.v1beta1.MsgInstantSpotMarketLaunch\x1a>.injective.exchange.v1beta1.MsgInstantSpotMarketLaunchResponse\x12\xa0\x01\n\x1cInstantPerpetualMarketLaunch\x12;.injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunch\x1a\x43.injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunchResponse\x12\xac\x01\n InstantExpiryFuturesMarketLaunch\x12?.injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunch\x1aG.injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunchResponse\x12\x88\x01\n\x14\x43reateSpotLimitOrder\x12\x33.injective.exchange.v1beta1.MsgCreateSpotLimitOrder\x1a;.injective.exchange.v1beta1.MsgCreateSpotLimitOrderResponse\x12\x9a\x01\n\x1a\x42\x61tchCreateSpotLimitOrders\x12\x39.injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrders\x1a\x41.injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrdersResponse\x12\x8b\x01\n\x15\x43reateSpotMarketOrder\x12\x34.injective.exchange.v1beta1.MsgCreateSpotMarketOrder\x1a<.injective.exchange.v1beta1.MsgCreateSpotMarketOrderResponse\x12y\n\x0f\x43\x61ncelSpotOrder\x12..injective.exchange.v1beta1.MsgCancelSpotOrder\x1a\x36.injective.exchange.v1beta1.MsgCancelSpotOrderResponse\x12\x8b\x01\n\x15\x42\x61tchCancelSpotOrders\x12\x34.injective.exchange.v1beta1.MsgBatchCancelSpotOrders\x1a<.injective.exchange.v1beta1.MsgBatchCancelSpotOrdersResponse\x12\x7f\n\x11\x42\x61tchUpdateOrders\x12\x30.injective.exchange.v1beta1.MsgBatchUpdateOrders\x1a\x38.injective.exchange.v1beta1.MsgBatchUpdateOrdersResponse\x12\x97\x01\n\x19PrivilegedExecuteContract\x12\x38.injective.exchange.v1beta1.MsgPrivilegedExecuteContract\x1a@.injective.exchange.v1beta1.MsgPrivilegedExecuteContractResponse\x12\x9a\x01\n\x1a\x43reateDerivativeLimitOrder\x12\x39.injective.exchange.v1beta1.MsgCreateDerivativeLimitOrder\x1a\x41.injective.exchange.v1beta1.MsgCreateDerivativeLimitOrderResponse\x12\xac\x01\n BatchCreateDerivativeLimitOrders\x12?.injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrders\x1aG.injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrdersResponse\x12\x9d\x01\n\x1b\x43reateDerivativeMarketOrder\x12:.injective.exchange.v1beta1.MsgCreateDerivativeMarketOrder\x1a\x42.injective.exchange.v1beta1.MsgCreateDerivativeMarketOrderResponse\x12\x8b\x01\n\x15\x43\x61ncelDerivativeOrder\x12\x34.injective.exchange.v1beta1.MsgCancelDerivativeOrder\x1a<.injective.exchange.v1beta1.MsgCancelDerivativeOrderResponse\x12\x9d\x01\n\x1b\x42\x61tchCancelDerivativeOrders\x12:.injective.exchange.v1beta1.MsgBatchCancelDerivativeOrders\x1a\x42.injective.exchange.v1beta1.MsgBatchCancelDerivativeOrdersResponse\x12\xac\x01\n InstantBinaryOptionsMarketLaunch\x12?.injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunch\x1aG.injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunchResponse\x12\xa3\x01\n\x1d\x43reateBinaryOptionsLimitOrder\x12<.injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrder\x1a\x44.injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrderResponse\x12\xa6\x01\n\x1e\x43reateBinaryOptionsMarketOrder\x12=.injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrder\x1a\x45.injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrderResponse\x12\x94\x01\n\x18\x43\x61ncelBinaryOptionsOrder\x12\x37.injective.exchange.v1beta1.MsgCancelBinaryOptionsOrder\x1a?.injective.exchange.v1beta1.MsgCancelBinaryOptionsOrderResponse\x12\xa6\x01\n\x1e\x42\x61tchCancelBinaryOptionsOrders\x12=.injective.exchange.v1beta1.MsgBatchCancelBinaryOptionsOrders\x1a\x45.injective.exchange.v1beta1.MsgBatchCancelBinaryOptionsOrdersResponse\x12\x82\x01\n\x12SubaccountTransfer\x12\x31.injective.exchange.v1beta1.MsgSubaccountTransfer\x1a\x39.injective.exchange.v1beta1.MsgSubaccountTransferResponse\x12|\n\x10\x45xternalTransfer\x12/.injective.exchange.v1beta1.MsgExternalTransfer\x1a\x37.injective.exchange.v1beta1.MsgExternalTransferResponse\x12\x7f\n\x11LiquidatePosition\x12\x30.injective.exchange.v1beta1.MsgLiquidatePosition\x1a\x38.injective.exchange.v1beta1.MsgLiquidatePositionResponse\x12\x8b\x01\n\x15\x45mergencySettleMarket\x12\x34.injective.exchange.v1beta1.MsgEmergencySettleMarket\x1a<.injective.exchange.v1beta1.MsgEmergencySettleMarketResponse\x12\x8e\x01\n\x16IncreasePositionMargin\x12\x35.injective.exchange.v1beta1.MsgIncreasePositionMargin\x1a=.injective.exchange.v1beta1.MsgIncreasePositionMarginResponse\x12\x8e\x01\n\x16\x44\x65\x63reasePositionMargin\x12\x35.injective.exchange.v1beta1.MsgDecreasePositionMargin\x1a=.injective.exchange.v1beta1.MsgDecreasePositionMarginResponse\x12s\n\rRewardsOptOut\x12,.injective.exchange.v1beta1.MsgRewardsOptOut\x1a\x34.injective.exchange.v1beta1.MsgRewardsOptOutResponse\x12\xa6\x01\n\x1e\x41\x64minUpdateBinaryOptionsMarket\x12=.injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket\x1a\x45.injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarketResponse\x12p\n\x0cUpdateParams\x12+.injective.exchange.v1beta1.MsgUpdateParams\x1a\x33.injective.exchange.v1beta1.MsgUpdateParamsResponse\x12|\n\x10UpdateSpotMarket\x12/.injective.exchange.v1beta1.MsgUpdateSpotMarket\x1a\x37.injective.exchange.v1beta1.MsgUpdateSpotMarketResponse\x12\x8e\x01\n\x16UpdateDerivativeMarket\x12\x35.injective.exchange.v1beta1.MsgUpdateDerivativeMarket\x1a=.injective.exchange.v1beta1.MsgUpdateDerivativeMarketResponse\x12\x88\x01\n\x14\x41uthorizeStakeGrants\x12\x33.injective.exchange.v1beta1.MsgAuthorizeStakeGrants\x1a;.injective.exchange.v1beta1.MsgAuthorizeStakeGrantsResponse\x12\x82\x01\n\x12\x41\x63tivateStakeGrant\x12\x31.injective.exchange.v1beta1.MsgActivateStakeGrant\x1a\x39.injective.exchange.v1beta1.MsgActivateStakeGrantResponse\x1a\x05\x80\xe7\xb0*\x01\x42\x83\x02\n\x1e\x63om.injective.exchange.v1beta1B\x07TxProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/exchange/v1beta1/tx.proto\x12\x1ainjective.exchange.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a.cosmos/distribution/v1beta1/distribution.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a)injective/exchange/v1beta1/exchange.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\xa3\x03\n\x13MsgUpdateSpotMarket\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nnew_ticker\x18\x03 \x01(\tR\tnewTicker\x12Y\n\x17new_min_price_tick_size\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13newMinPriceTickSize\x12_\n\x1anew_min_quantity_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16newMinQuantityTickSize\x12M\n\x10new_min_notional\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0enewMinNotional:/\xe8\xa0\x1f\x00\x82\xe7\xb0*\x05\x61\x64min\x8a\xe7\xb0*\x1c\x65xchange/MsgUpdateSpotMarket\"\x1d\n\x1bMsgUpdateSpotMarketResponse\"\xf7\x04\n\x19MsgUpdateDerivativeMarket\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nnew_ticker\x18\x03 \x01(\tR\tnewTicker\x12Y\n\x17new_min_price_tick_size\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13newMinPriceTickSize\x12_\n\x1anew_min_quantity_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16newMinQuantityTickSize\x12M\n\x10new_min_notional\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0enewMinNotional\x12\\\n\x18new_initial_margin_ratio\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15newInitialMarginRatio\x12\x64\n\x1cnew_maintenance_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19newMaintenanceMarginRatio:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x05\x61\x64min\x8a\xe7\xb0*\"exchange/MsgUpdateDerivativeMarket\"#\n!MsgUpdateDerivativeMarketResponse\"\xb8\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12@\n\x06params\x18\x02 \x01(\x0b\x32\".injective.exchange.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:+\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x18\x65xchange/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse\"\xaf\x01\n\nMsgDeposit\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:+\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x13\x65xchange/MsgDeposit\"\x14\n\x12MsgDepositResponse\"\xb1\x01\n\x0bMsgWithdraw\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:,\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x14\x65xchange/MsgWithdraw\"\x15\n\x13MsgWithdrawResponse\"\xae\x01\n\x17MsgCreateSpotLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x00R\x05order:8\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0* exchange/MsgCreateSpotLimitOrder\"\\\n\x1fMsgCreateSpotLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbc\x01\n\x1dMsgBatchCreateSpotLimitOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x43\n\x06orders\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x00R\x06orders:>\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*&exchange/MsgBatchCreateSpotLimitOrders\"\xb2\x01\n%MsgBatchCreateSpotLimitOrdersResponse\x12!\n\x0corder_hashes\x18\x01 \x03(\tR\x0borderHashes\x12.\n\x13\x63reated_orders_cids\x18\x02 \x03(\tR\x11\x63reatedOrdersCids\x12,\n\x12\x66\x61iled_orders_cids\x18\x03 \x03(\tR\x10\x66\x61iledOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8b\x04\n\x1aMsgInstantSpotMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x03 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12#\n\rbase_decimals\x18\x08 \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\t \x01(\rR\rquoteDecimals:;\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#exchange/MsgInstantSpotMarketLaunch\"$\n\"MsgInstantSpotMarketLaunchResponse\"\xb1\x07\n\x1fMsgInstantPerpetualMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x06 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x07 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12I\n\x0emaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12U\n\x14initial_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12R\n\x13min_price_tick_size\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*(exchange/MsgInstantPerpetualMarketLaunch\")\n\'MsgInstantPerpetualMarketLaunchResponse\"\x89\x07\n#MsgInstantBinaryOptionsMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x03 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x04 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x05 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x06 \x01(\rR\x11oracleScaleFactor\x12I\n\x0emaker_fee_rate\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12\x31\n\x14\x65xpiration_timestamp\x18\t \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\n \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\x0c \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgInstantBinaryOptionsMarketLaunch\"-\n+MsgInstantBinaryOptionsMarketLaunchResponse\"\xd1\x07\n#MsgInstantExpiryFuturesMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x45\n\x0boracle_type\x18\x06 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x16\n\x06\x65xpiry\x18\x08 \x01(\x03R\x06\x65xpiry\x12I\n\x0emaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12U\n\x14initial_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgInstantExpiryFuturesMarketLaunch\"-\n+MsgInstantExpiryFuturesMarketLaunchResponse\"\xb0\x01\n\x18MsgCreateSpotMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x00R\x05order:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgCreateSpotMarketOrder\"\xb1\x01\n MsgCreateSpotMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12R\n\x07results\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.SpotMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd5\x01\n\x16SpotMarketOrderResults\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x35\n\x03\x66\x65\x65\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbc\x01\n\x1dMsgCreateDerivativeLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order::\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*&exchange/MsgCreateDerivativeLimitOrder\"b\n%MsgCreateDerivativeLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc2\x01\n MsgCreateBinaryOptionsLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:=\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*)exchange/MsgCreateBinaryOptionsLimitOrder\"e\n(MsgCreateBinaryOptionsLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xca\x01\n#MsgBatchCreateDerivativeLimitOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12I\n\x06orders\x18\x02 \x03(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x06orders:@\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgBatchCreateDerivativeLimitOrders\"\xb8\x01\n+MsgBatchCreateDerivativeLimitOrdersResponse\x12!\n\x0corder_hashes\x18\x01 \x03(\tR\x0borderHashes\x12.\n\x13\x63reated_orders_cids\x18\x02 \x03(\tR\x11\x63reatedOrdersCids\x12,\n\x12\x66\x61iled_orders_cids\x18\x03 \x03(\tR\x10\x66\x61iledOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd0\x01\n\x12MsgCancelSpotOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id:/\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1b\x65xchange/MsgCancelSpotOrder\"\x1c\n\x1aMsgCancelSpotOrderResponse\"\xaa\x01\n\x18MsgBatchCancelSpotOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12?\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:5\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgBatchCancelSpotOrders\"F\n MsgBatchCancelSpotOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbc\x01\n!MsgBatchCancelBinaryOptionsOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12?\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:>\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgBatchCancelBinaryOptionsOrders\"O\n)MsgBatchCancelBinaryOptionsOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xf2\x07\n\x14MsgBatchUpdateOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12?\n\x1dspot_market_ids_to_cancel_all\x18\x03 \x03(\tR\x18spotMarketIdsToCancelAll\x12K\n#derivative_market_ids_to_cancel_all\x18\x04 \x03(\tR\x1e\x64\x65rivativeMarketIdsToCancelAll\x12^\n\x15spot_orders_to_cancel\x18\x05 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x01R\x12spotOrdersToCancel\x12j\n\x1b\x64\x65rivative_orders_to_cancel\x18\x06 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x01R\x18\x64\x65rivativeOrdersToCancel\x12^\n\x15spot_orders_to_create\x18\x07 \x03(\x0b\x32%.injective.exchange.v1beta1.SpotOrderB\x04\xc8\xde\x1f\x01R\x12spotOrdersToCreate\x12p\n\x1b\x64\x65rivative_orders_to_create\x18\x08 \x03(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x18\x64\x65rivativeOrdersToCreate\x12q\n\x1f\x62inary_options_orders_to_cancel\x18\t \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x01R\x1b\x62inaryOptionsOrdersToCancel\x12R\n\'binary_options_market_ids_to_cancel_all\x18\n \x03(\tR!binaryOptionsMarketIdsToCancelAll\x12w\n\x1f\x62inary_options_orders_to_create\x18\x0b \x03(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x1b\x62inaryOptionsOrdersToCreate:1\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1d\x65xchange/MsgBatchUpdateOrders\"\x88\x06\n\x1cMsgBatchUpdateOrdersResponse\x12.\n\x13spot_cancel_success\x18\x01 \x03(\x08R\x11spotCancelSuccess\x12:\n\x19\x64\x65rivative_cancel_success\x18\x02 \x03(\x08R\x17\x64\x65rivativeCancelSuccess\x12*\n\x11spot_order_hashes\x18\x03 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x04 \x03(\tR\x15\x64\x65rivativeOrderHashes\x12\x41\n\x1d\x62inary_options_cancel_success\x18\x05 \x03(\x08R\x1a\x62inaryOptionsCancelSuccess\x12=\n\x1b\x62inary_options_order_hashes\x18\x06 \x03(\tR\x18\x62inaryOptionsOrderHashes\x12\x37\n\x18\x63reated_spot_orders_cids\x18\x07 \x03(\tR\x15\x63reatedSpotOrdersCids\x12\x35\n\x17\x66\x61iled_spot_orders_cids\x18\x08 \x03(\tR\x14\x66\x61iledSpotOrdersCids\x12\x43\n\x1e\x63reated_derivative_orders_cids\x18\t \x03(\tR\x1b\x63reatedDerivativeOrdersCids\x12\x41\n\x1d\x66\x61iled_derivative_orders_cids\x18\n \x03(\tR\x1a\x66\x61iledDerivativeOrdersCids\x12J\n\"created_binary_options_orders_cids\x18\x0b \x03(\tR\x1e\x63reatedBinaryOptionsOrdersCids\x12H\n!failed_binary_options_orders_cids\x18\x0c \x03(\tR\x1d\x66\x61iledBinaryOptionsOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbe\x01\n\x1eMsgCreateDerivativeMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:;\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgCreateDerivativeMarketOrder\"\xbd\x01\n&MsgCreateDerivativeMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12X\n\x07results\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v1beta1.DerivativeMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xf0\x02\n\x1c\x44\x65rivativeMarketOrderResults\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x35\n\x03\x66\x65\x65\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12V\n\x0eposition_delta\x18\x04 \x01(\x0b\x32).injective.exchange.v1beta1.PositionDeltaB\x04\xc8\xde\x1f\x00R\rpositionDelta\x12;\n\x06payout\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc4\x01\n!MsgCreateBinaryOptionsMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:>\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgCreateBinaryOptionsMarketOrder\"\xc0\x01\n)MsgCreateBinaryOptionsMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12X\n\x07results\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v1beta1.DerivativeMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xfb\x01\n\x18MsgCancelDerivativeOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x05 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id:5\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgCancelDerivativeOrder\"\"\n MsgCancelDerivativeOrderResponse\"\x81\x02\n\x1bMsgCancelBinaryOptionsOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x05 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id:8\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*$exchange/MsgCancelBinaryOptionsOrder\"%\n#MsgCancelBinaryOptionsOrderResponse\"\x9d\x01\n\tOrderData\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x03 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x04 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id\"\xb6\x01\n\x1eMsgBatchCancelDerivativeOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12?\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32%.injective.exchange.v1beta1.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:;\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgBatchCancelDerivativeOrders\"L\n&MsgBatchCancelDerivativeOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x86\x02\n\x15MsgSubaccountTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x37\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgSubaccountTransfer\"\x1f\n\x1dMsgSubaccountTransferResponse\"\x82\x02\n\x13MsgExternalTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x37\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:,\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1c\x65xchange/MsgExternalTransfer\"\x1d\n\x1bMsgExternalTransferResponse\"\xe8\x01\n\x14MsgLiquidatePosition\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12G\n\x05order\x18\x04 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x05order:-\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1d\x65xchange/MsgLiquidatePosition\"\x1e\n\x1cMsgLiquidatePositionResponse\"\xa7\x01\n\x18MsgEmergencySettleMarket\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId:1\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgEmergencySettleMarket\"\"\n MsgEmergencySettleMarketResponse\"\xaf\x02\n\x19MsgIncreasePositionMargin\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\x12;\n\x06\x61mount\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount:2\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgIncreasePositionMargin\"#\n!MsgIncreasePositionMarginResponse\"\xaf\x02\n\x19MsgDecreasePositionMargin\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\x12;\n\x06\x61mount\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount:2\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgDecreasePositionMargin\"#\n!MsgDecreasePositionMarginResponse\"\xca\x01\n\x1cMsgPrivilegedExecuteContract\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05\x66unds\x18\x02 \x01(\tR\x05\x66unds\x12)\n\x10\x63ontract_address\x18\x03 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04\x64\x61ta\x18\x04 \x01(\tR\x04\x64\x61ta:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgPrivilegedExecuteContract\"\xa7\x01\n$MsgPrivilegedExecuteContractResponse\x12j\n\nfunds_diff\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\tfundsDiff:\x13\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\"]\n\x10MsgRewardsOptOut\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender:1\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x19\x65xchange/MsgRewardsOptOut\"\x1a\n\x18MsgRewardsOptOutResponse\"\xaf\x01\n\x15MsgReclaimLockedFunds\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x13lockedAccountPubKey\x18\x02 \x01(\x0cR\x13lockedAccountPubKey\x12\x1c\n\tsignature\x18\x03 \x01(\x0cR\tsignature:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgReclaimLockedFunds\"\x1f\n\x1dMsgReclaimLockedFundsResponse\"\x80\x01\n\x0bMsgSignData\x12S\n\x06Signer\x18\x01 \x01(\x0c\x42;\xea\xde\x1f\x06signer\xfa\xde\x1f-github.com/cosmos/cosmos-sdk/types.AccAddressR\x06Signer\x12\x1c\n\x04\x44\x61ta\x18\x02 \x01(\x0c\x42\x08\xea\xde\x1f\x04\x64\x61taR\x04\x44\x61ta\"x\n\nMsgSignDoc\x12%\n\tsign_type\x18\x01 \x01(\tB\x08\xea\xde\x1f\x04typeR\x08signType\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\'.injective.exchange.v1beta1.MsgSignDataB\x04\xc8\xde\x1f\x00R\x05value\"\x8c\x03\n!MsgAdminUpdateBinaryOptionsMarket\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x31\n\x14\x65xpiration_timestamp\x18\x04 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\x05 \x01(\x03R\x13settlementTimestamp\x12@\n\x06status\x18\x06 \x01(\x0e\x32(.injective.exchange.v1beta1.MarketStatusR\x06status::\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgAdminUpdateBinaryOptionsMarket\"+\n)MsgAdminUpdateBinaryOptionsMarketResponse\"\xab\x01\n\x17MsgAuthorizeStakeGrants\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x46\n\x06grants\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.GrantAuthorizationR\x06grants:0\x82\xe7\xb0*\x06sender\x8a\xe7\xb0* exchange/MsgAuthorizeStakeGrants\"!\n\x1fMsgAuthorizeStakeGrantsResponse\"y\n\x15MsgActivateStakeGrant\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x18\n\x07granter\x18\x02 \x01(\tR\x07granter:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgActivateStakeGrant\"\x1f\n\x1dMsgActivateStakeGrantResponse2\xd0\'\n\x03Msg\x12\x61\n\x07\x44\x65posit\x12&.injective.exchange.v1beta1.MsgDeposit\x1a..injective.exchange.v1beta1.MsgDepositResponse\x12\x64\n\x08Withdraw\x12\'.injective.exchange.v1beta1.MsgWithdraw\x1a/.injective.exchange.v1beta1.MsgWithdrawResponse\x12\x91\x01\n\x17InstantSpotMarketLaunch\x12\x36.injective.exchange.v1beta1.MsgInstantSpotMarketLaunch\x1a>.injective.exchange.v1beta1.MsgInstantSpotMarketLaunchResponse\x12\xa0\x01\n\x1cInstantPerpetualMarketLaunch\x12;.injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunch\x1a\x43.injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunchResponse\x12\xac\x01\n InstantExpiryFuturesMarketLaunch\x12?.injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunch\x1aG.injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunchResponse\x12\x88\x01\n\x14\x43reateSpotLimitOrder\x12\x33.injective.exchange.v1beta1.MsgCreateSpotLimitOrder\x1a;.injective.exchange.v1beta1.MsgCreateSpotLimitOrderResponse\x12\x9a\x01\n\x1a\x42\x61tchCreateSpotLimitOrders\x12\x39.injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrders\x1a\x41.injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrdersResponse\x12\x8b\x01\n\x15\x43reateSpotMarketOrder\x12\x34.injective.exchange.v1beta1.MsgCreateSpotMarketOrder\x1a<.injective.exchange.v1beta1.MsgCreateSpotMarketOrderResponse\x12y\n\x0f\x43\x61ncelSpotOrder\x12..injective.exchange.v1beta1.MsgCancelSpotOrder\x1a\x36.injective.exchange.v1beta1.MsgCancelSpotOrderResponse\x12\x8b\x01\n\x15\x42\x61tchCancelSpotOrders\x12\x34.injective.exchange.v1beta1.MsgBatchCancelSpotOrders\x1a<.injective.exchange.v1beta1.MsgBatchCancelSpotOrdersResponse\x12\x7f\n\x11\x42\x61tchUpdateOrders\x12\x30.injective.exchange.v1beta1.MsgBatchUpdateOrders\x1a\x38.injective.exchange.v1beta1.MsgBatchUpdateOrdersResponse\x12\x97\x01\n\x19PrivilegedExecuteContract\x12\x38.injective.exchange.v1beta1.MsgPrivilegedExecuteContract\x1a@.injective.exchange.v1beta1.MsgPrivilegedExecuteContractResponse\x12\x9a\x01\n\x1a\x43reateDerivativeLimitOrder\x12\x39.injective.exchange.v1beta1.MsgCreateDerivativeLimitOrder\x1a\x41.injective.exchange.v1beta1.MsgCreateDerivativeLimitOrderResponse\x12\xac\x01\n BatchCreateDerivativeLimitOrders\x12?.injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrders\x1aG.injective.exchange.v1beta1.MsgBatchCreateDerivativeLimitOrdersResponse\x12\x9d\x01\n\x1b\x43reateDerivativeMarketOrder\x12:.injective.exchange.v1beta1.MsgCreateDerivativeMarketOrder\x1a\x42.injective.exchange.v1beta1.MsgCreateDerivativeMarketOrderResponse\x12\x8b\x01\n\x15\x43\x61ncelDerivativeOrder\x12\x34.injective.exchange.v1beta1.MsgCancelDerivativeOrder\x1a<.injective.exchange.v1beta1.MsgCancelDerivativeOrderResponse\x12\x9d\x01\n\x1b\x42\x61tchCancelDerivativeOrders\x12:.injective.exchange.v1beta1.MsgBatchCancelDerivativeOrders\x1a\x42.injective.exchange.v1beta1.MsgBatchCancelDerivativeOrdersResponse\x12\xac\x01\n InstantBinaryOptionsMarketLaunch\x12?.injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunch\x1aG.injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunchResponse\x12\xa3\x01\n\x1d\x43reateBinaryOptionsLimitOrder\x12<.injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrder\x1a\x44.injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrderResponse\x12\xa6\x01\n\x1e\x43reateBinaryOptionsMarketOrder\x12=.injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrder\x1a\x45.injective.exchange.v1beta1.MsgCreateBinaryOptionsMarketOrderResponse\x12\x94\x01\n\x18\x43\x61ncelBinaryOptionsOrder\x12\x37.injective.exchange.v1beta1.MsgCancelBinaryOptionsOrder\x1a?.injective.exchange.v1beta1.MsgCancelBinaryOptionsOrderResponse\x12\xa6\x01\n\x1e\x42\x61tchCancelBinaryOptionsOrders\x12=.injective.exchange.v1beta1.MsgBatchCancelBinaryOptionsOrders\x1a\x45.injective.exchange.v1beta1.MsgBatchCancelBinaryOptionsOrdersResponse\x12\x82\x01\n\x12SubaccountTransfer\x12\x31.injective.exchange.v1beta1.MsgSubaccountTransfer\x1a\x39.injective.exchange.v1beta1.MsgSubaccountTransferResponse\x12|\n\x10\x45xternalTransfer\x12/.injective.exchange.v1beta1.MsgExternalTransfer\x1a\x37.injective.exchange.v1beta1.MsgExternalTransferResponse\x12\x7f\n\x11LiquidatePosition\x12\x30.injective.exchange.v1beta1.MsgLiquidatePosition\x1a\x38.injective.exchange.v1beta1.MsgLiquidatePositionResponse\x12\x8b\x01\n\x15\x45mergencySettleMarket\x12\x34.injective.exchange.v1beta1.MsgEmergencySettleMarket\x1a<.injective.exchange.v1beta1.MsgEmergencySettleMarketResponse\x12\x8e\x01\n\x16IncreasePositionMargin\x12\x35.injective.exchange.v1beta1.MsgIncreasePositionMargin\x1a=.injective.exchange.v1beta1.MsgIncreasePositionMarginResponse\x12\x8e\x01\n\x16\x44\x65\x63reasePositionMargin\x12\x35.injective.exchange.v1beta1.MsgDecreasePositionMargin\x1a=.injective.exchange.v1beta1.MsgDecreasePositionMarginResponse\x12s\n\rRewardsOptOut\x12,.injective.exchange.v1beta1.MsgRewardsOptOut\x1a\x34.injective.exchange.v1beta1.MsgRewardsOptOutResponse\x12\xa6\x01\n\x1e\x41\x64minUpdateBinaryOptionsMarket\x12=.injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket\x1a\x45.injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarketResponse\x12p\n\x0cUpdateParams\x12+.injective.exchange.v1beta1.MsgUpdateParams\x1a\x33.injective.exchange.v1beta1.MsgUpdateParamsResponse\x12|\n\x10UpdateSpotMarket\x12/.injective.exchange.v1beta1.MsgUpdateSpotMarket\x1a\x37.injective.exchange.v1beta1.MsgUpdateSpotMarketResponse\x12\x8e\x01\n\x16UpdateDerivativeMarket\x12\x35.injective.exchange.v1beta1.MsgUpdateDerivativeMarket\x1a=.injective.exchange.v1beta1.MsgUpdateDerivativeMarketResponse\x12\x88\x01\n\x14\x41uthorizeStakeGrants\x12\x33.injective.exchange.v1beta1.MsgAuthorizeStakeGrants\x1a;.injective.exchange.v1beta1.MsgAuthorizeStakeGrantsResponse\x12\x82\x01\n\x12\x41\x63tivateStakeGrant\x12\x31.injective.exchange.v1beta1.MsgActivateStakeGrant\x1a\x39.injective.exchange.v1beta1.MsgActivateStakeGrantResponse\x1a\x05\x80\xe7\xb0*\x01\x42\x83\x02\n\x1e\x63om.injective.exchange.v1beta1B\x07TxProtoP\x01ZNgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types\xa2\x02\x03IEX\xaa\x02\x1aInjective.Exchange.V1beta1\xca\x02\x1aInjective\\Exchange\\V1beta1\xe2\x02&Injective\\Exchange\\V1beta1\\GPBMetadata\xea\x02\x1cInjective::Exchange::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -37,7 +37,7 @@ _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_notional']._loaded_options = None _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _globals['_MSGUPDATESPOTMARKET']._loaded_options = None - _globals['_MSGUPDATESPOTMARKET']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\005admin\212\347\260*\034exchange/MsgUpdateSpotMarket' + _globals['_MSGUPDATESPOTMARKET']._serialized_options = b'\350\240\037\000\202\347\260*\005admin\212\347\260*\034exchange/MsgUpdateSpotMarket' _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_price_tick_size']._loaded_options = None _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_quantity_tick_size']._loaded_options = None @@ -281,159 +281,159 @@ _globals['_MSG']._loaded_options = None _globals['_MSG']._serialized_options = b'\200\347\260*\001' _globals['_MSGUPDATESPOTMARKET']._serialized_start=323 - _globals['_MSGUPDATESPOTMARKET']._serialized_end=746 - _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=748 - _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=777 - _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=780 - _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1411 - _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1413 - _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1448 - _globals['_MSGUPDATEPARAMS']._serialized_start=1451 - _globals['_MSGUPDATEPARAMS']._serialized_end=1635 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1637 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1662 - _globals['_MSGDEPOSIT']._serialized_start=1665 - _globals['_MSGDEPOSIT']._serialized_end=1840 - _globals['_MSGDEPOSITRESPONSE']._serialized_start=1842 - _globals['_MSGDEPOSITRESPONSE']._serialized_end=1862 - _globals['_MSGWITHDRAW']._serialized_start=1865 - _globals['_MSGWITHDRAW']._serialized_end=2042 - _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2044 - _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2065 - _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2068 - _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2242 - _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2244 - _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2336 - _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2339 - _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2527 - _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2530 - _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2708 - _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2711 - _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3158 - _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3160 - _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3196 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_start=3199 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_end=4144 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_start=4146 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_end=4187 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=4190 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=5095 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=5097 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=5142 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_start=5145 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_end=6122 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_start=6124 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_end=6169 - _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=6172 - _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=6348 - _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=6351 - _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=6528 - _globals['_SPOTMARKETORDERRESULTS']._serialized_start=6531 - _globals['_SPOTMARKETORDERRESULTS']._serialized_end=6744 - _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=6747 - _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=6935 - _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=6937 - _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=7035 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=7038 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=7232 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=7234 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=7335 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=7338 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=7540 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=7543 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=7727 - _globals['_MSGCANCELSPOTORDER']._serialized_start=7730 - _globals['_MSGCANCELSPOTORDER']._serialized_end=7938 - _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=7940 - _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=7968 - _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=7971 - _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=8141 - _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=8143 - _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=8213 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=8216 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=8404 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=8406 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=8485 - _globals['_MSGBATCHUPDATEORDERS']._serialized_start=8488 - _globals['_MSGBATCHUPDATEORDERS']._serialized_end=9498 - _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=9501 - _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=10277 - _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=10280 - _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=10470 - _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=10473 - _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=10662 - _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=10665 - _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=11033 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=11036 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=11232 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=11235 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=11427 - _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=11430 - _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=11681 - _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=11683 - _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=11717 - _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=11720 - _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=11977 - _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=11979 - _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=12016 - _globals['_ORDERDATA']._serialized_start=12019 - _globals['_ORDERDATA']._serialized_end=12176 - _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=12179 - _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=12361 - _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=12363 - _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=12439 - _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=12442 - _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=12704 - _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=12706 - _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=12737 - _globals['_MSGEXTERNALTRANSFER']._serialized_start=12740 - _globals['_MSGEXTERNALTRANSFER']._serialized_end=12998 - _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=13000 - _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=13029 - _globals['_MSGLIQUIDATEPOSITION']._serialized_start=13032 - _globals['_MSGLIQUIDATEPOSITION']._serialized_end=13264 - _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=13266 - _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=13296 - _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=13299 - _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=13466 - _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=13468 - _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=13502 - _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=13505 - _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=13808 - _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=13810 - _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=13845 - _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=13848 - _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=14151 - _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=14153 - _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=14188 - _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=14191 - _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=14393 - _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=14396 - _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=14563 - _globals['_MSGREWARDSOPTOUT']._serialized_start=14565 - _globals['_MSGREWARDSOPTOUT']._serialized_end=14658 - _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=14660 - _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=14686 - _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=14689 - _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=14864 - _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=14866 - _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=14897 - _globals['_MSGSIGNDATA']._serialized_start=14900 - _globals['_MSGSIGNDATA']._serialized_end=15028 - _globals['_MSGSIGNDOC']._serialized_start=15030 - _globals['_MSGSIGNDOC']._serialized_end=15150 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=15153 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=15549 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=15551 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=15594 - _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=15597 - _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=15768 - _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=15770 - _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=15803 - _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=15805 - _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=15926 - _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=15928 - _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=15959 - _globals['_MSG']._serialized_start=15962 - _globals['_MSG']._serialized_end=21034 + _globals['_MSGUPDATESPOTMARKET']._serialized_end=742 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=744 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=773 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=776 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1407 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1409 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1444 + _globals['_MSGUPDATEPARAMS']._serialized_start=1447 + _globals['_MSGUPDATEPARAMS']._serialized_end=1631 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1633 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1658 + _globals['_MSGDEPOSIT']._serialized_start=1661 + _globals['_MSGDEPOSIT']._serialized_end=1836 + _globals['_MSGDEPOSITRESPONSE']._serialized_start=1838 + _globals['_MSGDEPOSITRESPONSE']._serialized_end=1858 + _globals['_MSGWITHDRAW']._serialized_start=1861 + _globals['_MSGWITHDRAW']._serialized_end=2038 + _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2040 + _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2061 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2064 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2238 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2240 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2332 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2335 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2523 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2526 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2704 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2707 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3230 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3232 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3268 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_start=3271 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_end=4216 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_start=4218 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_end=4259 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=4262 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=5167 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=5169 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=5214 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_start=5217 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_end=6194 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_start=6196 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_end=6241 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=6244 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=6420 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=6423 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=6600 + _globals['_SPOTMARKETORDERRESULTS']._serialized_start=6603 + _globals['_SPOTMARKETORDERRESULTS']._serialized_end=6816 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=6819 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=7007 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=7009 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=7107 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=7110 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=7304 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=7306 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=7407 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=7410 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=7612 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=7615 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=7799 + _globals['_MSGCANCELSPOTORDER']._serialized_start=7802 + _globals['_MSGCANCELSPOTORDER']._serialized_end=8010 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=8012 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=8040 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=8043 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=8213 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=8215 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=8285 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=8288 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=8476 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=8478 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=8557 + _globals['_MSGBATCHUPDATEORDERS']._serialized_start=8560 + _globals['_MSGBATCHUPDATEORDERS']._serialized_end=9570 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=9573 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=10349 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=10352 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=10542 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=10545 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=10734 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=10737 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=11105 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=11108 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=11304 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=11307 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=11499 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=11502 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=11753 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=11755 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=11789 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=11792 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=12049 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=12051 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=12088 + _globals['_ORDERDATA']._serialized_start=12091 + _globals['_ORDERDATA']._serialized_end=12248 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=12251 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=12433 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=12435 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=12511 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=12514 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=12776 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=12778 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=12809 + _globals['_MSGEXTERNALTRANSFER']._serialized_start=12812 + _globals['_MSGEXTERNALTRANSFER']._serialized_end=13070 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=13072 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=13101 + _globals['_MSGLIQUIDATEPOSITION']._serialized_start=13104 + _globals['_MSGLIQUIDATEPOSITION']._serialized_end=13336 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=13338 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=13368 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=13371 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=13538 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=13540 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=13574 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=13577 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=13880 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=13882 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=13917 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=13920 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=14223 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=14225 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=14260 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=14263 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=14465 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=14468 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=14635 + _globals['_MSGREWARDSOPTOUT']._serialized_start=14637 + _globals['_MSGREWARDSOPTOUT']._serialized_end=14730 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=14732 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=14758 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=14761 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=14936 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=14938 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=14969 + _globals['_MSGSIGNDATA']._serialized_start=14972 + _globals['_MSGSIGNDATA']._serialized_end=15100 + _globals['_MSGSIGNDOC']._serialized_start=15102 + _globals['_MSGSIGNDOC']._serialized_end=15222 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=15225 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=15621 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=15623 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=15666 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=15669 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=15840 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=15842 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=15875 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=15877 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=15998 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=16000 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=16031 + _globals['_MSG']._serialized_start=16034 + _globals['_MSG']._serialized_end=21106 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/authz_pb2.py b/pyinjective/proto/injective/exchange/v2/authz_pb2.py new file mode 100644 index 00000000..49193d67 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/authz_pb2.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/authz.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!injective/exchange/v2/authz.proto\x12\x15injective.exchange.v2\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x11\x61mino/amino.proto\"\x99\x01\n\x19\x43reateSpotLimitOrderAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:8\xca\xb4-\rAuthorization\x8a\xe7\xb0*\"exchange/CreateSpotLimitOrderAuthz\"\x9b\x01\n\x1a\x43reateSpotMarketOrderAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:9\xca\xb4-\rAuthorization\x8a\xe7\xb0*#exchange/CreateSpotMarketOrderAuthz\"\xa5\x01\n\x1f\x42\x61tchCreateSpotLimitOrdersAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:>\xca\xb4-\rAuthorization\x8a\xe7\xb0*(exchange/BatchCreateSpotLimitOrdersAuthz\"\x8f\x01\n\x14\x43\x61ncelSpotOrderAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:3\xca\xb4-\rAuthorization\x8a\xe7\xb0*\x1d\x65xchange/CancelSpotOrderAuthz\"\x9b\x01\n\x1a\x42\x61tchCancelSpotOrdersAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:9\xca\xb4-\rAuthorization\x8a\xe7\xb0*#exchange/BatchCancelSpotOrdersAuthz\"\xa5\x01\n\x1f\x43reateDerivativeLimitOrderAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:>\xca\xb4-\rAuthorization\x8a\xe7\xb0*(exchange/CreateDerivativeLimitOrderAuthz\"\xa7\x01\n CreateDerivativeMarketOrderAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:?\xca\xb4-\rAuthorization\x8a\xe7\xb0*)exchange/CreateDerivativeMarketOrderAuthz\"\xb1\x01\n%BatchCreateDerivativeLimitOrdersAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:D\xca\xb4-\rAuthorization\x8a\xe7\xb0*.exchange/BatchCreateDerivativeLimitOrdersAuthz\"\x9b\x01\n\x1a\x43\x61ncelDerivativeOrderAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:9\xca\xb4-\rAuthorization\x8a\xe7\xb0*#exchange/CancelDerivativeOrderAuthz\"\xa7\x01\n BatchCancelDerivativeOrdersAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds:?\xca\xb4-\rAuthorization\x8a\xe7\xb0*)exchange/BatchCancelDerivativeOrdersAuthz\"\xc6\x01\n\x16\x42\x61tchUpdateOrdersAuthz\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12!\n\x0cspot_markets\x18\x02 \x03(\tR\x0bspotMarkets\x12-\n\x12\x64\x65rivative_markets\x18\x03 \x03(\tR\x11\x64\x65rivativeMarkets:5\xca\xb4-\rAuthorization\x8a\xe7\xb0*\x1f\x65xchange/BatchUpdateOrdersAuthzB\xf0\x01\n\x19\x63om.injective.exchange.v2B\nAuthzProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.authz_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\nAuthzProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_CREATESPOTLIMITORDERAUTHZ']._loaded_options = None + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*\"exchange/CreateSpotLimitOrderAuthz' + _globals['_CREATESPOTMARKETORDERAUTHZ']._loaded_options = None + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*#exchange/CreateSpotMarketOrderAuthz' + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._loaded_options = None + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*(exchange/BatchCreateSpotLimitOrdersAuthz' + _globals['_CANCELSPOTORDERAUTHZ']._loaded_options = None + _globals['_CANCELSPOTORDERAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*\035exchange/CancelSpotOrderAuthz' + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._loaded_options = None + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*#exchange/BatchCancelSpotOrdersAuthz' + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._loaded_options = None + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*(exchange/CreateDerivativeLimitOrderAuthz' + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._loaded_options = None + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*)exchange/CreateDerivativeMarketOrderAuthz' + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._loaded_options = None + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*.exchange/BatchCreateDerivativeLimitOrdersAuthz' + _globals['_CANCELDERIVATIVEORDERAUTHZ']._loaded_options = None + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*#exchange/CancelDerivativeOrderAuthz' + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._loaded_options = None + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*)exchange/BatchCancelDerivativeOrdersAuthz' + _globals['_BATCHUPDATEORDERSAUTHZ']._loaded_options = None + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_options = b'\312\264-\rAuthorization\212\347\260*\037exchange/BatchUpdateOrdersAuthz' + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_start=107 + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_end=260 + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_start=263 + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_end=418 + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_start=421 + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_end=586 + _globals['_CANCELSPOTORDERAUTHZ']._serialized_start=589 + _globals['_CANCELSPOTORDERAUTHZ']._serialized_end=732 + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_start=735 + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_end=890 + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_start=893 + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_end=1058 + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_start=1061 + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_end=1228 + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_start=1231 + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_end=1408 + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_start=1411 + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_end=1566 + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_start=1569 + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_end=1736 + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_start=1739 + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_end=1937 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/authz_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/authz_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/authz_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/events_pb2.py b/pyinjective/proto/injective/exchange/v2/events_pb2.py new file mode 100644 index 00000000..de2274e5 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/events_pb2.py @@ -0,0 +1,179 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/events.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as injective_dot_oracle_dot_v1beta1_dot_oracle__pb2 +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as injective_dot_exchange_dot_v2_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v2 import market_pb2 as injective_dot_exchange_dot_v2_dot_market__pb2 +from pyinjective.proto.injective.exchange.v2 import order_pb2 as injective_dot_exchange_dot_v2_dot_order__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"injective/exchange/v2/events.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a$injective/exchange/v2/exchange.proto\x1a\"injective/exchange/v2/market.proto\x1a!injective/exchange/v2/order.proto\"\xd2\x01\n\x17\x45ventBatchSpotExecution\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12J\n\rexecutionType\x18\x03 \x01(\x0e\x32$.injective.exchange.v2.ExecutionTypeR\rexecutionType\x12\x37\n\x06trades\x18\x04 \x03(\x0b\x32\x1f.injective.exchange.v2.TradeLogR\x06trades\"\xdd\x02\n\x1d\x45ventBatchDerivativeExecution\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12%\n\x0eis_liquidation\x18\x03 \x01(\x08R\risLiquidation\x12R\n\x12\x63umulative_funding\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x63umulativeFunding\x12J\n\rexecutionType\x18\x05 \x01(\x0e\x32$.injective.exchange.v2.ExecutionTypeR\rexecutionType\x12\x41\n\x06trades\x18\x06 \x03(\x0b\x32).injective.exchange.v2.DerivativeTradeLogR\x06trades\"\xc2\x02\n\x1d\x45ventLostFundsFromLiquidation\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\x0cR\x0csubaccountId\x12x\n\'lost_funds_from_available_during_payout\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"lostFundsFromAvailableDuringPayout\x12\x65\n\x1dlost_funds_from_order_cancels\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19lostFundsFromOrderCancels\"\x84\x01\n\x1c\x45ventBatchDerivativePosition\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12G\n\tpositions\x18\x02 \x03(\x0b\x32).injective.exchange.v2.SubaccountPositionR\tpositions\"\xbb\x01\n\x1b\x45ventDerivativeMarketPaused\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12!\n\x0csettle_price\x18\x02 \x01(\tR\x0bsettlePrice\x12.\n\x13total_missing_funds\x18\x03 \x01(\tR\x11totalMissingFunds\x12,\n\x12missing_funds_rate\x18\x04 \x01(\tR\x10missingFundsRate\"\x8f\x01\n\x1b\x45ventMarketBeyondBankruptcy\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12!\n\x0csettle_price\x18\x02 \x01(\tR\x0bsettlePrice\x12\x30\n\x14missing_market_funds\x18\x03 \x01(\tR\x12missingMarketFunds\"\x88\x01\n\x18\x45ventAllPositionsHaircut\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12!\n\x0csettle_price\x18\x02 \x01(\tR\x0bsettlePrice\x12,\n\x12missing_funds_rate\x18\x03 \x01(\tR\x10missingFundsRate\"j\n\x1e\x45ventBinaryOptionsMarketUpdate\x12H\n\x06market\x18\x01 \x01(\x0b\x32*.injective.exchange.v2.BinaryOptionsMarketB\x04\xc8\xde\x1f\x00R\x06market\"\xbf\x01\n\x12\x45ventNewSpotOrders\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x44\n\nbuy_orders\x18\x02 \x03(\x0b\x32%.injective.exchange.v2.SpotLimitOrderR\tbuyOrders\x12\x46\n\x0bsell_orders\x18\x03 \x03(\x0b\x32%.injective.exchange.v2.SpotLimitOrderR\nsellOrders\"\xd1\x01\n\x18\x45ventNewDerivativeOrders\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\nbuy_orders\x18\x02 \x03(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\tbuyOrders\x12L\n\x0bsell_orders\x18\x03 \x03(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\nsellOrders\"v\n\x14\x45ventCancelSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32%.injective.exchange.v2.SpotLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\"X\n\x15\x45ventSpotMarketUpdate\x12?\n\x06market\x18\x01 \x01(\x0b\x32!.injective.exchange.v2.SpotMarketB\x04\xc8\xde\x1f\x00R\x06market\"\x98\x02\n\x1a\x45ventPerpetualMarketUpdate\x12\x45\n\x06market\x18\x01 \x01(\x0b\x32\'.injective.exchange.v2.DerivativeMarketB\x04\xc8\xde\x1f\x00R\x06market\x12\x64\n\x15perpetual_market_info\x18\x02 \x01(\x0b\x32*.injective.exchange.v2.PerpetualMarketInfoB\x04\xc8\xde\x1f\x01R\x13perpetualMarketInfo\x12M\n\x07\x66unding\x18\x03 \x01(\x0b\x32-.injective.exchange.v2.PerpetualMarketFundingB\x04\xc8\xde\x1f\x01R\x07\x66unding\"\xda\x01\n\x1e\x45ventExpiryFuturesMarketUpdate\x12\x45\n\x06market\x18\x01 \x01(\x0b\x32\'.injective.exchange.v2.DerivativeMarketB\x04\xc8\xde\x1f\x00R\x06market\x12q\n\x1a\x65xpiry_futures_market_info\x18\x03 \x01(\x0b\x32..injective.exchange.v2.ExpiryFuturesMarketInfoB\x04\xc8\xde\x1f\x01R\x17\x65xpiryFuturesMarketInfo\"\xc7\x02\n!EventPerpetualMarketFundingUpdate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12M\n\x07\x66unding\x18\x02 \x01(\x0b\x32-.injective.exchange.v2.PerpetualMarketFundingB\x04\xc8\xde\x1f\x00R\x07\x66unding\x12*\n\x11is_hourly_funding\x18\x03 \x01(\x08R\x0fisHourlyFunding\x12\x46\n\x0c\x66unding_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x66undingRate\x12\x42\n\nmark_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tmarkPrice\"\x97\x01\n\x16\x45ventSubaccountDeposit\x12\x1f\n\x0bsrc_address\x18\x01 \x01(\tR\nsrcAddress\x12#\n\rsubaccount_id\x18\x02 \x01(\x0cR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\"\x98\x01\n\x17\x45ventSubaccountWithdraw\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12\x1f\n\x0b\x64st_address\x18\x02 \x01(\tR\ndstAddress\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\"\xb1\x01\n\x1e\x45ventSubaccountBalanceTransfer\x12*\n\x11src_subaccount_id\x18\x01 \x01(\tR\x0fsrcSubaccountId\x12*\n\x11\x64st_subaccount_id\x18\x02 \x01(\tR\x0f\x64stSubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\"h\n\x17\x45ventBatchDepositUpdate\x12M\n\x0f\x64\x65posit_updates\x18\x01 \x03(\x0b\x32$.injective.exchange.v2.DepositUpdateR\x0e\x64\x65positUpdates\"\xc2\x01\n\x1b\x44\x65rivativeMarketOrderCancel\x12U\n\x0cmarket_order\x18\x01 \x01(\x0b\x32,.injective.exchange.v2.DerivativeMarketOrderB\x04\xc8\xde\x1f\x01R\x0bmarketOrder\x12L\n\x0f\x63\x61ncel_quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0e\x63\x61ncelQuantity\"\x9d\x02\n\x1a\x45ventCancelDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12$\n\risLimitCancel\x18\x02 \x01(\x08R\risLimitCancel\x12R\n\x0blimit_order\x18\x03 \x01(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderB\x04\xc8\xde\x1f\x01R\nlimitOrder\x12h\n\x13market_order_cancel\x18\x04 \x01(\x0b\x32\x32.injective.exchange.v2.DerivativeMarketOrderCancelB\x04\xc8\xde\x1f\x01R\x11marketOrderCancel\"b\n\x18\x45ventFeeDiscountSchedule\x12\x46\n\x08schedule\x18\x01 \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountScheduleR\x08schedule\"\xd8\x01\n EventTradingRewardCampaignUpdate\x12U\n\rcampaign_info\x18\x01 \x01(\x0b\x32\x30.injective.exchange.v2.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12]\n\x15\x63\x61mpaign_reward_pools\x18\x02 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR\x13\x63\x61mpaignRewardPools\"p\n\x1e\x45ventTradingRewardDistribution\x12N\n\x0f\x61\x63\x63ount_rewards\x18\x01 \x03(\x0b\x32%.injective.exchange.v2.AccountRewardsR\x0e\x61\x63\x63ountRewards\"\xb0\x01\n\"EventNewConditionalDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12<\n\x05order\x18\x02 \x01(\x0b\x32&.injective.exchange.v2.DerivativeOrderR\x05order\x12\x12\n\x04hash\x18\x03 \x01(\x0cR\x04hash\x12\x1b\n\tis_market\x18\x04 \x01(\x08R\x08isMarket\"\x95\x02\n%EventCancelConditionalDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12$\n\risLimitCancel\x18\x02 \x01(\x08R\risLimitCancel\x12R\n\x0blimit_order\x18\x03 \x01(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderB\x04\xc8\xde\x1f\x01R\nlimitOrder\x12U\n\x0cmarket_order\x18\x04 \x01(\x0b\x32,.injective.exchange.v2.DerivativeMarketOrderB\x04\xc8\xde\x1f\x01R\x0bmarketOrder\"\xfb\x01\n&EventConditionalDerivativeOrderTrigger\x12\x1b\n\tmarket_id\x18\x01 \x01(\x0cR\x08marketId\x12&\n\x0eisLimitTrigger\x18\x02 \x01(\x08R\x0eisLimitTrigger\x12\x30\n\x14triggered_order_hash\x18\x03 \x01(\x0cR\x12triggeredOrderHash\x12*\n\x11placed_order_hash\x18\x04 \x01(\x0cR\x0fplacedOrderHash\x12.\n\x13triggered_order_cid\x18\x05 \x01(\tR\x11triggeredOrderCid\"l\n\x0e\x45ventOrderFail\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\x0cR\x07\x61\x63\x63ount\x12\x16\n\x06hashes\x18\x02 \x03(\x0cR\x06hashes\x12\x14\n\x05\x66lags\x18\x03 \x03(\rR\x05\x66lags\x12\x12\n\x04\x63ids\x18\x04 \x03(\tR\x04\x63ids\"\x8f\x01\n+EventAtomicMarketOrderFeeMultipliersUpdated\x12`\n\x16market_fee_multipliers\x18\x01 \x03(\x0b\x32*.injective.exchange.v2.MarketFeeMultiplierR\x14marketFeeMultipliers\"\xb8\x01\n\x14\x45ventOrderbookUpdate\x12I\n\x0cspot_updates\x18\x01 \x03(\x0b\x32&.injective.exchange.v2.OrderbookUpdateR\x0bspotUpdates\x12U\n\x12\x64\x65rivative_updates\x18\x02 \x03(\x0b\x32&.injective.exchange.v2.OrderbookUpdateR\x11\x64\x65rivativeUpdates\"c\n\x0fOrderbookUpdate\x12\x10\n\x03seq\x18\x01 \x01(\x04R\x03seq\x12>\n\torderbook\x18\x02 \x01(\x0b\x32 .injective.exchange.v2.OrderbookR\torderbook\"\xa4\x01\n\tOrderbook\x12\x1b\n\tmarket_id\x18\x01 \x01(\x0cR\x08marketId\x12;\n\nbuy_levels\x18\x02 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\tbuyLevels\x12=\n\x0bsell_levels\x18\x03 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\nsellLevels\"w\n\x18\x45ventGrantAuthorizations\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x41\n\x06grants\x18\x02 \x03(\x0b\x32).injective.exchange.v2.GrantAuthorizationR\x06grants\"\x81\x01\n\x14\x45ventGrantActivation\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12\x18\n\x07granter\x18\x02 \x01(\tR\x07granter\x12\x35\n\x06\x61mount\x18\x03 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"G\n\x11\x45ventInvalidGrant\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12\x18\n\x07granter\x18\x02 \x01(\tR\x07granter\"\xab\x01\n\x14\x45ventOrderCancelFail\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x03 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x04 \x01(\tR\x03\x63id\x12 \n\x0b\x64\x65scription\x18\x05 \x01(\tR\x0b\x64\x65scription\"\xfb\x01\n EventDerivativeOrdersV2Migration\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\x11\x62uy_order_changes\x18\x02 \x03(\x0b\x32/.injective.exchange.v2.DerivativeOrderV2ChangesR\x0f\x62uyOrderChanges\x12]\n\x12sell_order_changes\x18\x03 \x03(\x0b\x32/.injective.exchange.v2.DerivativeOrderV2ChangesR\x10sellOrderChanges\"\xc1\x02\n\x18\x44\x65rivativeOrderV2Changes\x12\x10\n\x03\x63id\x18\x01 \x01(\tR\x03\x63id\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\x12\x31\n\x01p\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01p\x12\x31\n\x01q\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01q\x12\x31\n\x01m\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01m\x12\x31\n\x01\x66\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01\x66\x12\x33\n\x02tp\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x02tp\"\xe9\x01\n\x1a\x45ventSpotOrdersV2Migration\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12U\n\x11\x62uy_order_changes\x18\x02 \x03(\x0b\x32).injective.exchange.v2.SpotOrderV2ChangesR\x0f\x62uyOrderChanges\x12W\n\x12sell_order_changes\x18\x03 \x03(\x0b\x32).injective.exchange.v2.SpotOrderV2ChangesR\x10sellOrderChanges\"\x88\x02\n\x12SpotOrderV2Changes\x12\x10\n\x03\x63id\x18\x01 \x01(\tR\x03\x63id\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\x12\x31\n\x01p\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01p\x12\x31\n\x01q\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01q\x12\x31\n\x01\x66\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01\x66\x12\x33\n\x02tp\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x02tp\"k\n\"EventDerivativePositionV2Migration\x12\x45\n\x08position\x18\x01 \x01(\x0b\x32).injective.exchange.v2.DerivativePositionR\x08positionB\xf1\x01\n\x19\x63om.injective.exchange.v2B\x0b\x45ventsProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\013EventsProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_EVENTBATCHDERIVATIVEEXECUTION'].fields_by_name['cumulative_funding']._loaded_options = None + _globals['_EVENTBATCHDERIVATIVEEXECUTION'].fields_by_name['cumulative_funding']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_available_during_payout']._loaded_options = None + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_available_during_payout']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_order_cancels']._loaded_options = None + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_order_cancels']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTBINARYOPTIONSMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTBINARYOPTIONSMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTCANCELSPOTORDER'].fields_by_name['order']._loaded_options = None + _globals['_EVENTCANCELSPOTORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSPOTMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTSPOTMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['perpetual_market_info']._loaded_options = None + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['perpetual_market_info']._serialized_options = b'\310\336\037\001' + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['funding']._loaded_options = None + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['funding']._serialized_options = b'\310\336\037\001' + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['expiry_futures_market_info']._loaded_options = None + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['expiry_futures_market_info']._serialized_options = b'\310\336\037\001' + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding']._loaded_options = None + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding']._serialized_options = b'\310\336\037\000' + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding_rate']._loaded_options = None + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['mark_price']._loaded_options = None + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['mark_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTSUBACCOUNTDEPOSIT'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTSUBACCOUNTDEPOSIT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSUBACCOUNTWITHDRAW'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTSUBACCOUNTWITHDRAW'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSUBACCOUNTBALANCETRANSFER'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTSUBACCOUNTBALANCETRANSFER'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['market_order']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['market_order']._serialized_options = b'\310\336\037\001' + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['cancel_quantity']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['cancel_quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['limit_order']._loaded_options = None + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['limit_order']._serialized_options = b'\310\336\037\001' + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['market_order_cancel']._loaded_options = None + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['market_order_cancel']._serialized_options = b'\310\336\037\001' + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['limit_order']._loaded_options = None + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['limit_order']._serialized_options = b'\310\336\037\001' + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['market_order']._loaded_options = None + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['market_order']._serialized_options = b'\310\336\037\001' + _globals['_EVENTGRANTACTIVATION'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTGRANTACTIVATION'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['p']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['p']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['q']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['q']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['m']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['m']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['f']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['f']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['tp']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['tp']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERV2CHANGES'].fields_by_name['p']._loaded_options = None + _globals['_SPOTORDERV2CHANGES'].fields_by_name['p']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERV2CHANGES'].fields_by_name['q']._loaded_options = None + _globals['_SPOTORDERV2CHANGES'].fields_by_name['q']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERV2CHANGES'].fields_by_name['f']._loaded_options = None + _globals['_SPOTORDERV2CHANGES'].fields_by_name['f']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERV2CHANGES'].fields_by_name['tp']._loaded_options = None + _globals['_SPOTORDERV2CHANGES'].fields_by_name['tp']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTBATCHSPOTEXECUTION']._serialized_start=264 + _globals['_EVENTBATCHSPOTEXECUTION']._serialized_end=474 + _globals['_EVENTBATCHDERIVATIVEEXECUTION']._serialized_start=477 + _globals['_EVENTBATCHDERIVATIVEEXECUTION']._serialized_end=826 + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION']._serialized_start=829 + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION']._serialized_end=1151 + _globals['_EVENTBATCHDERIVATIVEPOSITION']._serialized_start=1154 + _globals['_EVENTBATCHDERIVATIVEPOSITION']._serialized_end=1286 + _globals['_EVENTDERIVATIVEMARKETPAUSED']._serialized_start=1289 + _globals['_EVENTDERIVATIVEMARKETPAUSED']._serialized_end=1476 + _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_start=1479 + _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_end=1622 + _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_start=1625 + _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_end=1761 + _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_start=1763 + _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_end=1869 + _globals['_EVENTNEWSPOTORDERS']._serialized_start=1872 + _globals['_EVENTNEWSPOTORDERS']._serialized_end=2063 + _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_start=2066 + _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_end=2275 + _globals['_EVENTCANCELSPOTORDER']._serialized_start=2277 + _globals['_EVENTCANCELSPOTORDER']._serialized_end=2395 + _globals['_EVENTSPOTMARKETUPDATE']._serialized_start=2397 + _globals['_EVENTSPOTMARKETUPDATE']._serialized_end=2485 + _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_start=2488 + _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_end=2768 + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_start=2771 + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_end=2989 + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_start=2992 + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_end=3319 + _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_start=3322 + _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_end=3473 + _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_start=3476 + _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_end=3628 + _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_start=3631 + _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_end=3808 + _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_start=3810 + _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_end=3914 + _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_start=3917 + _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_end=4111 + _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_start=4114 + _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_end=4399 + _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_start=4401 + _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_end=4499 + _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_start=4502 + _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_end=4718 + _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_start=4720 + _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_end=4832 + _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_start=4835 + _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_end=5011 + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_start=5014 + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_end=5291 + _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_start=5294 + _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_end=5545 + _globals['_EVENTORDERFAIL']._serialized_start=5547 + _globals['_EVENTORDERFAIL']._serialized_end=5655 + _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_start=5658 + _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_end=5801 + _globals['_EVENTORDERBOOKUPDATE']._serialized_start=5804 + _globals['_EVENTORDERBOOKUPDATE']._serialized_end=5988 + _globals['_ORDERBOOKUPDATE']._serialized_start=5990 + _globals['_ORDERBOOKUPDATE']._serialized_end=6089 + _globals['_ORDERBOOK']._serialized_start=6092 + _globals['_ORDERBOOK']._serialized_end=6256 + _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_start=6258 + _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_end=6377 + _globals['_EVENTGRANTACTIVATION']._serialized_start=6380 + _globals['_EVENTGRANTACTIVATION']._serialized_end=6509 + _globals['_EVENTINVALIDGRANT']._serialized_start=6511 + _globals['_EVENTINVALIDGRANT']._serialized_end=6582 + _globals['_EVENTORDERCANCELFAIL']._serialized_start=6585 + _globals['_EVENTORDERCANCELFAIL']._serialized_end=6756 + _globals['_EVENTDERIVATIVEORDERSV2MIGRATION']._serialized_start=6759 + _globals['_EVENTDERIVATIVEORDERSV2MIGRATION']._serialized_end=7010 + _globals['_DERIVATIVEORDERV2CHANGES']._serialized_start=7013 + _globals['_DERIVATIVEORDERV2CHANGES']._serialized_end=7334 + _globals['_EVENTSPOTORDERSV2MIGRATION']._serialized_start=7337 + _globals['_EVENTSPOTORDERSV2MIGRATION']._serialized_end=7570 + _globals['_SPOTORDERV2CHANGES']._serialized_start=7573 + _globals['_SPOTORDERV2CHANGES']._serialized_end=7837 + _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_start=7839 + _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_end=7946 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/events_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/events_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/events_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/exchange_pb2.py b/pyinjective/proto/injective/exchange/v2/exchange_pb2.py new file mode 100644 index 00000000..e353a54f --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/exchange_pb2.py @@ -0,0 +1,225 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/exchange.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as injective_dot_oracle_dot_v1beta1_dot_oracle__pb2 +from pyinjective.proto.injective.exchange.v2 import market_pb2 as injective_dot_exchange_dot_v2_dot_market__pb2 +from pyinjective.proto.injective.exchange.v2 import order_pb2 as injective_dot_exchange_dot_v2_dot_order__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/exchange/v2/exchange.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a\x11\x61mino/amino.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\"injective/exchange/v2/market.proto\x1a!injective/exchange/v2/order.proto\"\xd7\x15\n\x06Params\x12\x65\n\x1fspot_market_instant_listing_fee\x18\x01 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x1bspotMarketInstantListingFee\x12q\n%derivative_market_instant_listing_fee\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R!derivativeMarketInstantListingFee\x12\x61\n\x1b\x64\x65\x66\x61ult_spot_maker_fee_rate\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17\x64\x65\x66\x61ultSpotMakerFeeRate\x12\x61\n\x1b\x64\x65\x66\x61ult_spot_taker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17\x64\x65\x66\x61ultSpotTakerFeeRate\x12m\n!default_derivative_maker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultDerivativeMakerFeeRate\x12m\n!default_derivative_taker_fee_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultDerivativeTakerFeeRate\x12\x64\n\x1c\x64\x65\x66\x61ult_initial_margin_ratio\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19\x64\x65\x66\x61ultInitialMarginRatio\x12l\n default_maintenance_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1d\x64\x65\x66\x61ultMaintenanceMarginRatio\x12\x38\n\x18\x64\x65\x66\x61ult_funding_interval\x18\t \x01(\x03R\x16\x64\x65\x66\x61ultFundingInterval\x12)\n\x10\x66unding_multiple\x18\n \x01(\x03R\x0f\x66undingMultiple\x12X\n\x16relayer_fee_share_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12i\n\x1f\x64\x65\x66\x61ult_hourly_funding_rate_cap\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1b\x64\x65\x66\x61ultHourlyFundingRateCap\x12\x64\n\x1c\x64\x65\x66\x61ult_hourly_interest_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19\x64\x65\x66\x61ultHourlyInterestRate\x12\x44\n\x1fmax_derivative_order_side_count\x18\x0e \x01(\rR\x1bmaxDerivativeOrderSideCount\x12s\n\'inj_reward_staked_requirement_threshold\x18\x0f \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR#injRewardStakedRequirementThreshold\x12G\n trading_rewards_vesting_duration\x18\x10 \x01(\x03R\x1dtradingRewardsVestingDuration\x12\x64\n\x1cliquidator_reward_share_rate\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19liquidatorRewardShareRate\x12x\n)binary_options_market_instant_listing_fee\x18\x12 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R$binaryOptionsMarketInstantListingFee\x12{\n atomic_market_order_access_level\x18\x13 \x01(\x0e\x32\x33.injective.exchange.v2.AtomicMarketOrderAccessLevelR\x1c\x61tomicMarketOrderAccessLevel\x12x\n\'spot_atomic_market_order_fee_multiplier\x18\x14 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"spotAtomicMarketOrderFeeMultiplier\x12\x84\x01\n-derivative_atomic_market_order_fee_multiplier\x18\x15 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR(derivativeAtomicMarketOrderFeeMultiplier\x12\x8b\x01\n1binary_options_atomic_market_order_fee_multiplier\x18\x16 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR+binaryOptionsAtomicMarketOrderFeeMultiplier\x12^\n\x19minimal_protocol_fee_rate\x18\x17 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16minimalProtocolFeeRate\x12[\n+is_instant_derivative_market_launch_enabled\x18\x18 \x01(\x08R&isInstantDerivativeMarketLaunchEnabled\x12\x44\n\x1fpost_only_mode_height_threshold\x18\x19 \x01(\x03R\x1bpostOnlyModeHeightThreshold\x12g\n1margin_decrease_price_timestamp_threshold_seconds\x18\x1a \x01(\x03R,marginDecreasePriceTimestampThresholdSeconds\x12\'\n\x0f\x65xchange_admins\x18\x1b \x03(\tR\x0e\x65xchangeAdmins\x12L\n\x13inj_auction_max_cap\x18\x1c \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10injAuctionMaxCap:\x18\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0f\x65xchange/Params\"=\n\x14NextFundingTimestamp\x12%\n\x0enext_timestamp\x18\x01 \x01(\x03R\rnextTimestamp\"\xea\x01\n\x0eMidPriceAndTOB\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"\xa5\x01\n\x07\x44\x65posit\x12P\n\x11\x61vailable_balance\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10\x61vailableBalance\x12H\n\rtotal_balance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctotalBalance\",\n\x14SubaccountTradeNonce\x12\x14\n\x05nonce\x18\x01 \x01(\rR\x05nonce\"\xc3\x01\n\x0fSubaccountOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\"\n\x0cisReduceOnly\x18\x03 \x01(\x08R\x0cisReduceOnly\x12\x10\n\x03\x63id\x18\x04 \x01(\tR\x03\x63id\"r\n\x13SubaccountOrderData\x12<\n\x05order\x18\x01 \x01(\x0b\x32&.injective.exchange.v2.SubaccountOrderR\x05order\x12\x1d\n\norder_hash\x18\x02 \x01(\x0cR\torderHash\"\xc5\x02\n\x08Position\x12\x16\n\x06isLong\x18\x01 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12;\n\x06margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12]\n\x18\x63umulative_funding_entry\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16\x63umulativeFundingEntry\"\x8a\x01\n\x07\x42\x61lance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12:\n\x08\x64\x65posits\x18\x03 \x01(\x0b\x32\x1e.injective.exchange.v2.DepositR\x08\x64\x65posits:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x9d\x01\n\x12\x44\x65rivativePosition\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12;\n\x08position\x18\x03 \x01(\x0b\x32\x1f.injective.exchange.v2.PositionR\x08position:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"I\n\x14MarketOrderIndicator\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05isBuy\x18\x02 \x01(\x08R\x05isBuy\"\xcd\x02\n\x08TradeLog\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12#\n\rsubaccount_id\x18\x03 \x01(\x0cR\x0csubaccountId\x12\x35\n\x03\x66\x65\x65\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\x06 \x01(\x0c\x42\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\"\x9a\x02\n\rPositionDelta\x12\x17\n\x07is_long\x18\x01 \x01(\x08R\x06isLong\x12R\n\x12\x65xecution_quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x65xecutionQuantity\x12N\n\x10\x65xecution_margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x65xecutionMargin\x12L\n\x0f\x65xecution_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0e\x65xecutionPrice\"\x9c\x03\n\x12\x44\x65rivativeTradeLog\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12K\n\x0eposition_delta\x18\x02 \x01(\x0b\x32$.injective.exchange.v2.PositionDeltaR\rpositionDelta\x12;\n\x06payout\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout\x12\x35\n\x03\x66\x65\x65\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\x06 \x01(\x0c\x42\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\x12\x35\n\x03pnl\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03pnl\"v\n\x12SubaccountPosition\x12;\n\x08position\x18\x01 \x01(\x0b\x32\x1f.injective.exchange.v2.PositionR\x08position\x12#\n\rsubaccount_id\x18\x02 \x01(\x0cR\x0csubaccountId\"r\n\x11SubaccountDeposit\x12#\n\rsubaccount_id\x18\x01 \x01(\x0cR\x0csubaccountId\x12\x38\n\x07\x64\x65posit\x18\x02 \x01(\x0b\x32\x1e.injective.exchange.v2.DepositR\x07\x64\x65posit\"k\n\rDepositUpdate\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x44\n\x08\x64\x65posits\x18\x02 \x03(\x0b\x32(.injective.exchange.v2.SubaccountDepositR\x08\x64\x65posits\"\xcc\x01\n\x10PointsMultiplier\x12[\n\x17maker_points_multiplier\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15makerPointsMultiplier\x12[\n\x17taker_points_multiplier\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15takerPointsMultiplier\"\xf4\x02\n\x1eTradingRewardCampaignBoostInfo\x12\x35\n\x17\x62oosted_spot_market_ids\x18\x01 \x03(\tR\x14\x62oostedSpotMarketIds\x12\x65\n\x17spot_market_multipliers\x18\x02 \x03(\x0b\x32\'.injective.exchange.v2.PointsMultiplierB\x04\xc8\xde\x1f\x00R\x15spotMarketMultipliers\x12\x41\n\x1d\x62oosted_derivative_market_ids\x18\x03 \x03(\tR\x1a\x62oostedDerivativeMarketIds\x12q\n\x1d\x64\x65rivative_market_multipliers\x18\x04 \x03(\x0b\x32\'.injective.exchange.v2.PointsMultiplierB\x04\xc8\xde\x1f\x00R\x1b\x64\x65rivativeMarketMultipliers\"\xbc\x01\n\x12\x43\x61mpaignRewardPool\x12\'\n\x0fstart_timestamp\x18\x01 \x01(\x03R\x0estartTimestamp\x12}\n\x14max_campaign_rewards\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x12maxCampaignRewards\"\xa4\x02\n\x19TradingRewardCampaignInfo\x12:\n\x19\x63\x61mpaign_duration_seconds\x18\x01 \x01(\x03R\x17\x63\x61mpaignDurationSeconds\x12!\n\x0cquote_denoms\x18\x02 \x03(\tR\x0bquoteDenoms\x12p\n\x19trading_reward_boost_info\x18\x03 \x01(\x0b\x32\x35.injective.exchange.v2.TradingRewardCampaignBoostInfoR\x16tradingRewardBoostInfo\x12\x36\n\x17\x64isqualified_market_ids\x18\x04 \x03(\tR\x15\x64isqualifiedMarketIds\"\xc0\x02\n\x13\x46\x65\x65\x44iscountTierInfo\x12S\n\x13maker_discount_rate\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11makerDiscountRate\x12S\n\x13taker_discount_rate\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11takerDiscountRate\x12\x42\n\rstaked_amount\x18\x03 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0cstakedAmount\x12;\n\x06volume\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06volume\"\x87\x02\n\x13\x46\x65\x65\x44iscountSchedule\x12!\n\x0c\x62ucket_count\x18\x01 \x01(\x04R\x0b\x62ucketCount\x12\'\n\x0f\x62ucket_duration\x18\x02 \x01(\x03R\x0e\x62ucketDuration\x12!\n\x0cquote_denoms\x18\x03 \x03(\tR\x0bquoteDenoms\x12I\n\ntier_infos\x18\x04 \x03(\x0b\x32*.injective.exchange.v2.FeeDiscountTierInfoR\ttierInfos\x12\x36\n\x17\x64isqualified_market_ids\x18\x05 \x03(\tR\x15\x64isqualifiedMarketIds\"M\n\x12\x46\x65\x65\x44iscountTierTTL\x12\x12\n\x04tier\x18\x01 \x01(\x04R\x04tier\x12#\n\rttl_timestamp\x18\x02 \x01(\x03R\x0cttlTimestamp\"\x91\x01\n\x0e\x41\x63\x63ountRewards\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x65\n\x07rewards\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x07rewards\"\x81\x01\n\x0cTradeRecords\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12T\n\x14latest_trade_records\x18\x02 \x03(\x0b\x32\".injective.exchange.v2.TradeRecordR\x12latestTradeRecords\"6\n\rSubaccountIDs\x12%\n\x0esubaccount_ids\x18\x01 \x03(\x0cR\rsubaccountIds\"\xa7\x01\n\x0bTradeRecord\x12\x1c\n\ttimestamp\x18\x01 \x01(\x03R\ttimestamp\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\"m\n\x05Level\x12\x31\n\x01p\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01p\x12\x31\n\x01q\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x01q\"\x92\x01\n\x1f\x41ggregateSubaccountVolumeRecord\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12J\n\x0emarket_volumes\x18\x02 \x03(\x0b\x32#.injective.exchange.v2.MarketVolumeR\rmarketVolumes\"\x84\x01\n\x1c\x41ggregateAccountVolumeRecord\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12J\n\x0emarket_volumes\x18\x02 \x03(\x0b\x32#.injective.exchange.v2.MarketVolumeR\rmarketVolumes\"A\n\rDenomDecimals\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x1a\n\x08\x64\x65\x63imals\x18\x02 \x01(\x04R\x08\x64\x65\x63imals\"e\n\x12GrantAuthorization\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12\x35\n\x06\x61mount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"^\n\x0b\x41\x63tiveGrant\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x35\n\x06\x61mount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\"\x90\x01\n\x0e\x45\x66\x66\x65\x63tiveGrant\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12I\n\x11net_granted_stake\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0fnetGrantedStake\x12\x19\n\x08is_valid\x18\x03 \x01(\x08R\x07isValid*\xaf\x01\n\rExecutionType\x12\x1c\n\x18UnspecifiedExecutionType\x10\x00\x12\n\n\x06Market\x10\x01\x12\r\n\tLimitFill\x10\x02\x12\x1a\n\x16LimitMatchRestingOrder\x10\x03\x12\x16\n\x12LimitMatchNewOrder\x10\x04\x12\x15\n\x11MarketLiquidation\x10\x05\x12\x1a\n\x16\x45xpiryMarketSettlement\x10\x06\x42\xf3\x01\n\x19\x63om.injective.exchange.v2B\rExchangeProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.exchange_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\rExchangeProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_PARAMS'].fields_by_name['spot_market_instant_listing_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['spot_market_instant_listing_fee']._serialized_options = b'\310\336\037\000' + _globals['_PARAMS'].fields_by_name['derivative_market_instant_listing_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['derivative_market_instant_listing_fee']._serialized_options = b'\310\336\037\000' + _globals['_PARAMS'].fields_by_name['default_spot_maker_fee_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_spot_maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_spot_taker_fee_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_spot_taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_derivative_maker_fee_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_derivative_maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_derivative_taker_fee_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_derivative_taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_initial_margin_ratio']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_maintenance_margin_ratio']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_hourly_funding_rate_cap']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_hourly_funding_rate_cap']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['default_hourly_interest_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_hourly_interest_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['inj_reward_staked_requirement_threshold']._loaded_options = None + _globals['_PARAMS'].fields_by_name['inj_reward_staked_requirement_threshold']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_PARAMS'].fields_by_name['liquidator_reward_share_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['liquidator_reward_share_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['binary_options_market_instant_listing_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['binary_options_market_instant_listing_fee']._serialized_options = b'\310\336\037\000' + _globals['_PARAMS'].fields_by_name['spot_atomic_market_order_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['spot_atomic_market_order_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['derivative_atomic_market_order_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['derivative_atomic_market_order_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['binary_options_atomic_market_order_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['binary_options_atomic_market_order_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['minimal_protocol_fee_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['minimal_protocol_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PARAMS'].fields_by_name['inj_auction_max_cap']._loaded_options = None + _globals['_PARAMS'].fields_by_name['inj_auction_max_cap']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_PARAMS']._loaded_options = None + _globals['_PARAMS']._serialized_options = b'\350\240\037\001\212\347\260*\017exchange/Params' + _globals['_MIDPRICEANDTOB'].fields_by_name['mid_price']._loaded_options = None + _globals['_MIDPRICEANDTOB'].fields_by_name['mid_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MIDPRICEANDTOB'].fields_by_name['best_buy_price']._loaded_options = None + _globals['_MIDPRICEANDTOB'].fields_by_name['best_buy_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MIDPRICEANDTOB'].fields_by_name['best_sell_price']._loaded_options = None + _globals['_MIDPRICEANDTOB'].fields_by_name['best_sell_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DEPOSIT'].fields_by_name['available_balance']._loaded_options = None + _globals['_DEPOSIT'].fields_by_name['available_balance']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DEPOSIT'].fields_by_name['total_balance']._loaded_options = None + _globals['_DEPOSIT'].fields_by_name['total_balance']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SUBACCOUNTORDER'].fields_by_name['price']._loaded_options = None + _globals['_SUBACCOUNTORDER'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SUBACCOUNTORDER'].fields_by_name['quantity']._loaded_options = None + _globals['_SUBACCOUNTORDER'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['quantity']._loaded_options = None + _globals['_POSITION'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['entry_price']._loaded_options = None + _globals['_POSITION'].fields_by_name['entry_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['margin']._loaded_options = None + _globals['_POSITION'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['cumulative_funding_entry']._loaded_options = None + _globals['_POSITION'].fields_by_name['cumulative_funding_entry']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCE']._loaded_options = None + _globals['_BALANCE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_DERIVATIVEPOSITION']._loaded_options = None + _globals['_DERIVATIVEPOSITION']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_TRADELOG'].fields_by_name['quantity']._loaded_options = None + _globals['_TRADELOG'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADELOG'].fields_by_name['price']._loaded_options = None + _globals['_TRADELOG'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADELOG'].fields_by_name['fee']._loaded_options = None + _globals['_TRADELOG'].fields_by_name['fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADELOG'].fields_by_name['fee_recipient_address']._loaded_options = None + _globals['_TRADELOG'].fields_by_name['fee_recipient_address']._serialized_options = b'\310\336\037\001' + _globals['_POSITIONDELTA'].fields_by_name['execution_quantity']._loaded_options = None + _globals['_POSITIONDELTA'].fields_by_name['execution_quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITIONDELTA'].fields_by_name['execution_margin']._loaded_options = None + _globals['_POSITIONDELTA'].fields_by_name['execution_margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITIONDELTA'].fields_by_name['execution_price']._loaded_options = None + _globals['_POSITIONDELTA'].fields_by_name['execution_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVETRADELOG'].fields_by_name['payout']._loaded_options = None + _globals['_DERIVATIVETRADELOG'].fields_by_name['payout']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVETRADELOG'].fields_by_name['fee']._loaded_options = None + _globals['_DERIVATIVETRADELOG'].fields_by_name['fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVETRADELOG'].fields_by_name['fee_recipient_address']._loaded_options = None + _globals['_DERIVATIVETRADELOG'].fields_by_name['fee_recipient_address']._serialized_options = b'\310\336\037\001' + _globals['_DERIVATIVETRADELOG'].fields_by_name['pnl']._loaded_options = None + _globals['_DERIVATIVETRADELOG'].fields_by_name['pnl']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POINTSMULTIPLIER'].fields_by_name['maker_points_multiplier']._loaded_options = None + _globals['_POINTSMULTIPLIER'].fields_by_name['maker_points_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POINTSMULTIPLIER'].fields_by_name['taker_points_multiplier']._loaded_options = None + _globals['_POINTSMULTIPLIER'].fields_by_name['taker_points_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO'].fields_by_name['spot_market_multipliers']._loaded_options = None + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO'].fields_by_name['spot_market_multipliers']._serialized_options = b'\310\336\037\000' + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO'].fields_by_name['derivative_market_multipliers']._loaded_options = None + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO'].fields_by_name['derivative_market_multipliers']._serialized_options = b'\310\336\037\000' + _globals['_CAMPAIGNREWARDPOOL'].fields_by_name['max_campaign_rewards']._loaded_options = None + _globals['_CAMPAIGNREWARDPOOL'].fields_by_name['max_campaign_rewards']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['maker_discount_rate']._loaded_options = None + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['maker_discount_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['taker_discount_rate']._loaded_options = None + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['taker_discount_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['staked_amount']._loaded_options = None + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['staked_amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['volume']._loaded_options = None + _globals['_FEEDISCOUNTTIERINFO'].fields_by_name['volume']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_ACCOUNTREWARDS'].fields_by_name['rewards']._loaded_options = None + _globals['_ACCOUNTREWARDS'].fields_by_name['rewards']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' + _globals['_TRADERECORD'].fields_by_name['price']._loaded_options = None + _globals['_TRADERECORD'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADERECORD'].fields_by_name['quantity']._loaded_options = None + _globals['_TRADERECORD'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_LEVEL'].fields_by_name['p']._loaded_options = None + _globals['_LEVEL'].fields_by_name['p']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_LEVEL'].fields_by_name['q']._loaded_options = None + _globals['_LEVEL'].fields_by_name['q']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_GRANTAUTHORIZATION'].fields_by_name['amount']._loaded_options = None + _globals['_GRANTAUTHORIZATION'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_ACTIVEGRANT'].fields_by_name['amount']._loaded_options = None + _globals['_ACTIVEGRANT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_EFFECTIVEGRANT'].fields_by_name['net_granted_stake']._loaded_options = None + _globals['_EFFECTIVEGRANT'].fields_by_name['net_granted_stake']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_EXECUTIONTYPE']._serialized_start=8988 + _globals['_EXECUTIONTYPE']._serialized_end=9163 + _globals['_PARAMS']._serialized_start=247 + _globals['_PARAMS']._serialized_end=3022 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=3024 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=3085 + _globals['_MIDPRICEANDTOB']._serialized_start=3088 + _globals['_MIDPRICEANDTOB']._serialized_end=3322 + _globals['_DEPOSIT']._serialized_start=3325 + _globals['_DEPOSIT']._serialized_end=3490 + _globals['_SUBACCOUNTTRADENONCE']._serialized_start=3492 + _globals['_SUBACCOUNTTRADENONCE']._serialized_end=3536 + _globals['_SUBACCOUNTORDER']._serialized_start=3539 + _globals['_SUBACCOUNTORDER']._serialized_end=3734 + _globals['_SUBACCOUNTORDERDATA']._serialized_start=3736 + _globals['_SUBACCOUNTORDERDATA']._serialized_end=3850 + _globals['_POSITION']._serialized_start=3853 + _globals['_POSITION']._serialized_end=4178 + _globals['_BALANCE']._serialized_start=4181 + _globals['_BALANCE']._serialized_end=4319 + _globals['_DERIVATIVEPOSITION']._serialized_start=4322 + _globals['_DERIVATIVEPOSITION']._serialized_end=4479 + _globals['_MARKETORDERINDICATOR']._serialized_start=4481 + _globals['_MARKETORDERINDICATOR']._serialized_end=4554 + _globals['_TRADELOG']._serialized_start=4557 + _globals['_TRADELOG']._serialized_end=4890 + _globals['_POSITIONDELTA']._serialized_start=4893 + _globals['_POSITIONDELTA']._serialized_end=5175 + _globals['_DERIVATIVETRADELOG']._serialized_start=5178 + _globals['_DERIVATIVETRADELOG']._serialized_end=5590 + _globals['_SUBACCOUNTPOSITION']._serialized_start=5592 + _globals['_SUBACCOUNTPOSITION']._serialized_end=5710 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=5712 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=5826 + _globals['_DEPOSITUPDATE']._serialized_start=5828 + _globals['_DEPOSITUPDATE']._serialized_end=5935 + _globals['_POINTSMULTIPLIER']._serialized_start=5938 + _globals['_POINTSMULTIPLIER']._serialized_end=6142 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=6145 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=6517 + _globals['_CAMPAIGNREWARDPOOL']._serialized_start=6520 + _globals['_CAMPAIGNREWARDPOOL']._serialized_end=6708 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=6711 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=7003 + _globals['_FEEDISCOUNTTIERINFO']._serialized_start=7006 + _globals['_FEEDISCOUNTTIERINFO']._serialized_end=7326 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=7329 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=7592 + _globals['_FEEDISCOUNTTIERTTL']._serialized_start=7594 + _globals['_FEEDISCOUNTTIERTTL']._serialized_end=7671 + _globals['_ACCOUNTREWARDS']._serialized_start=7674 + _globals['_ACCOUNTREWARDS']._serialized_end=7819 + _globals['_TRADERECORDS']._serialized_start=7822 + _globals['_TRADERECORDS']._serialized_end=7951 + _globals['_SUBACCOUNTIDS']._serialized_start=7953 + _globals['_SUBACCOUNTIDS']._serialized_end=8007 + _globals['_TRADERECORD']._serialized_start=8010 + _globals['_TRADERECORD']._serialized_end=8177 + _globals['_LEVEL']._serialized_start=8179 + _globals['_LEVEL']._serialized_end=8288 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=8291 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=8437 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=8440 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=8572 + _globals['_DENOMDECIMALS']._serialized_start=8574 + _globals['_DENOMDECIMALS']._serialized_end=8639 + _globals['_GRANTAUTHORIZATION']._serialized_start=8641 + _globals['_GRANTAUTHORIZATION']._serialized_end=8742 + _globals['_ACTIVEGRANT']._serialized_start=8744 + _globals['_ACTIVEGRANT']._serialized_end=8838 + _globals['_EFFECTIVEGRANT']._serialized_start=8841 + _globals['_EFFECTIVEGRANT']._serialized_end=8985 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/exchange_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/exchange_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/exchange_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/genesis_pb2.py b/pyinjective/proto/injective/exchange/v2/genesis_pb2.py new file mode 100644 index 00000000..5169d995 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/genesis_pb2.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/genesis.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as injective_dot_exchange_dot_v2_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v2 import market_pb2 as injective_dot_exchange_dot_v2_dot_market__pb2 +from pyinjective.proto.injective.exchange.v2 import orderbook_pb2 as injective_dot_exchange_dot_v2_dot_orderbook__pb2 +from pyinjective.proto.injective.exchange.v2 import tx_pb2 as injective_dot_exchange_dot_v2_dot_tx__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/exchange/v2/genesis.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a$injective/exchange/v2/exchange.proto\x1a\"injective/exchange/v2/market.proto\x1a%injective/exchange/v2/orderbook.proto\x1a\x1einjective/exchange/v2/tx.proto\"\x93\x1c\n\x0cGenesisState\x12;\n\x06params\x18\x01 \x01(\x0b\x32\x1d.injective.exchange.v2.ParamsB\x04\xc8\xde\x1f\x00R\x06params\x12\x44\n\x0cspot_markets\x18\x02 \x03(\x0b\x32!.injective.exchange.v2.SpotMarketR\x0bspotMarkets\x12V\n\x12\x64\x65rivative_markets\x18\x03 \x03(\x0b\x32\'.injective.exchange.v2.DerivativeMarketR\x11\x64\x65rivativeMarkets\x12Q\n\x0espot_orderbook\x18\x04 \x03(\x0b\x32$.injective.exchange.v2.SpotOrderBookB\x04\xc8\xde\x1f\x00R\rspotOrderbook\x12\x63\n\x14\x64\x65rivative_orderbook\x18\x05 \x03(\x0b\x32*.injective.exchange.v2.DerivativeOrderBookB\x04\xc8\xde\x1f\x00R\x13\x64\x65rivativeOrderbook\x12@\n\x08\x62\x61lances\x18\x06 \x03(\x0b\x32\x1e.injective.exchange.v2.BalanceB\x04\xc8\xde\x1f\x00R\x08\x62\x61lances\x12M\n\tpositions\x18\x07 \x03(\x0b\x32).injective.exchange.v2.DerivativePositionB\x04\xc8\xde\x1f\x00R\tpositions\x12\x64\n\x17subaccount_trade_nonces\x18\x08 \x03(\x0b\x32&.injective.exchange.v2.SubaccountNonceB\x04\xc8\xde\x1f\x00R\x15subaccountTradeNonces\x12\x81\x01\n expiry_futures_market_info_state\x18\t \x03(\x0b\x32\x33.injective.exchange.v2.ExpiryFuturesMarketInfoStateB\x04\xc8\xde\x1f\x00R\x1c\x65xpiryFuturesMarketInfoState\x12\x64\n\x15perpetual_market_info\x18\n \x03(\x0b\x32*.injective.exchange.v2.PerpetualMarketInfoB\x04\xc8\xde\x1f\x00R\x13perpetualMarketInfo\x12}\n\x1eperpetual_market_funding_state\x18\x0b \x03(\x0b\x32\x32.injective.exchange.v2.PerpetualMarketFundingStateB\x04\xc8\xde\x1f\x00R\x1bperpetualMarketFundingState\x12\x90\x01\n&derivative_market_settlement_scheduled\x18\x0c \x03(\x0b\x32\x35.injective.exchange.v2.DerivativeMarketSettlementInfoB\x04\xc8\xde\x1f\x00R#derivativeMarketSettlementScheduled\x12\x37\n\x18is_spot_exchange_enabled\x18\r \x01(\x08R\x15isSpotExchangeEnabled\x12\x45\n\x1fis_derivatives_exchange_enabled\x18\x0e \x01(\x08R\x1cisDerivativesExchangeEnabled\x12q\n\x1ctrading_reward_campaign_info\x18\x0f \x01(\x0b\x32\x30.injective.exchange.v2.TradingRewardCampaignInfoR\x19tradingRewardCampaignInfo\x12{\n%trading_reward_pool_campaign_schedule\x18\x10 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR!tradingRewardPoolCampaignSchedule\x12\x8d\x01\n&trading_reward_campaign_account_points\x18\x11 \x03(\x0b\x32\x39.injective.exchange.v2.TradingRewardCampaignAccountPointsR\"tradingRewardCampaignAccountPoints\x12^\n\x15\x66\x65\x65_discount_schedule\x18\x12 \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountScheduleR\x13\x66\x65\x65\x44iscountSchedule\x12r\n\x1d\x66\x65\x65_discount_account_tier_ttl\x18\x13 \x03(\x0b\x32\x30.injective.exchange.v2.FeeDiscountAccountTierTTLR\x19\x66\x65\x65\x44iscountAccountTierTtl\x12\x84\x01\n#fee_discount_bucket_volume_accounts\x18\x14 \x03(\x0b\x32\x36.injective.exchange.v2.FeeDiscountBucketVolumeAccountsR\x1f\x66\x65\x65\x44iscountBucketVolumeAccounts\x12<\n\x1bis_first_fee_cycle_finished\x18\x15 \x01(\x08R\x17isFirstFeeCycleFinished\x12\x8a\x01\n-pending_trading_reward_pool_campaign_schedule\x18\x16 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR(pendingTradingRewardPoolCampaignSchedule\x12\xa3\x01\n.pending_trading_reward_campaign_account_points\x18\x17 \x03(\x0b\x32@.injective.exchange.v2.TradingRewardCampaignAccountPendingPointsR)pendingTradingRewardCampaignAccountPoints\x12\x39\n\x19rewards_opt_out_addresses\x18\x18 \x03(\tR\x16rewardsOptOutAddresses\x12]\n\x18historical_trade_records\x18\x19 \x03(\x0b\x32#.injective.exchange.v2.TradeRecordsR\x16historicalTradeRecords\x12`\n\x16\x62inary_options_markets\x18\x1a \x03(\x0b\x32*.injective.exchange.v2.BinaryOptionsMarketR\x14\x62inaryOptionsMarkets\x12h\n2binary_options_market_ids_scheduled_for_settlement\x18\x1b \x03(\tR,binaryOptionsMarketIdsScheduledForSettlement\x12T\n(spot_market_ids_scheduled_to_force_close\x18\x1c \x03(\tR\"spotMarketIdsScheduledToForceClose\x12Q\n\x0e\x64\x65nom_decimals\x18\x1d \x03(\x0b\x32$.injective.exchange.v2.DenomDecimalsB\x04\xc8\xde\x1f\x00R\rdenomDecimals\x12\x81\x01\n!conditional_derivative_orderbooks\x18\x1e \x03(\x0b\x32\x35.injective.exchange.v2.ConditionalDerivativeOrderBookR\x1f\x63onditionalDerivativeOrderbooks\x12`\n\x16market_fee_multipliers\x18\x1f \x03(\x0b\x32*.injective.exchange.v2.MarketFeeMultiplierR\x14marketFeeMultipliers\x12Y\n\x13orderbook_sequences\x18 \x03(\x0b\x32(.injective.exchange.v2.OrderbookSequenceR\x12orderbookSequences\x12\x65\n\x12subaccount_volumes\x18! \x03(\x0b\x32\x36.injective.exchange.v2.AggregateSubaccountVolumeRecordR\x11subaccountVolumes\x12J\n\x0emarket_volumes\x18\" \x03(\x0b\x32#.injective.exchange.v2.MarketVolumeR\rmarketVolumes\x12\x61\n\x14grant_authorizations\x18# \x03(\x0b\x32..injective.exchange.v2.FullGrantAuthorizationsR\x13grantAuthorizations\x12K\n\ractive_grants\x18$ \x03(\x0b\x32&.injective.exchange.v2.FullActiveGrantR\x0c\x61\x63tiveGrants\"L\n\x11OrderbookSequence\x12\x1a\n\x08sequence\x18\x01 \x01(\x04R\x08sequence\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"{\n\x19\x46\x65\x65\x44iscountAccountTierTTL\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x44\n\x08tier_ttl\x18\x02 \x01(\x0b\x32).injective.exchange.v2.FeeDiscountTierTTLR\x07tierTtl\"\xa4\x01\n\x1f\x46\x65\x65\x44iscountBucketVolumeAccounts\x12\x34\n\x16\x62ucket_start_timestamp\x18\x01 \x01(\x03R\x14\x62ucketStartTimestamp\x12K\n\x0e\x61\x63\x63ount_volume\x18\x02 \x03(\x0b\x32$.injective.exchange.v2.AccountVolumeR\raccountVolume\"f\n\rAccountVolume\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12;\n\x06volume\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06volume\"{\n\"TradingRewardCampaignAccountPoints\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12;\n\x06points\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06points\"\xcc\x01\n)TradingRewardCampaignAccountPendingPoints\x12=\n\x1breward_pool_start_timestamp\x18\x01 \x01(\x03R\x18rewardPoolStartTimestamp\x12`\n\x0e\x61\x63\x63ount_points\x18\x02 \x03(\x0b\x32\x39.injective.exchange.v2.TradingRewardCampaignAccountPointsR\raccountPoints\"\xa9\x01\n\x0fSubaccountNonce\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12g\n\x16subaccount_trade_nonce\x18\x02 \x01(\x0b\x32+.injective.exchange.v2.SubaccountTradeNonceB\x04\xc8\xde\x1f\x00R\x14subaccountTradeNonce:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x86\x02\n\x17\x46ullGrantAuthorizations\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12K\n\x12total_grant_amount\x18\x02 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10totalGrantAmount\x12\x41\n\x1dlast_delegations_checked_time\x18\x03 \x01(\x03R\x1alastDelegationsCheckedTime\x12\x41\n\x06grants\x18\x04 \x03(\x0b\x32).injective.exchange.v2.GrantAuthorizationR\x06grants\"r\n\x0f\x46ullActiveGrant\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12\x45\n\x0c\x61\x63tive_grant\x18\x02 \x01(\x0b\x32\".injective.exchange.v2.ActiveGrantR\x0b\x61\x63tiveGrantB\xf2\x01\n\x19\x63om.injective.exchange.v2B\x0cGenesisProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.genesis_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\014GenesisProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_GENESISSTATE'].fields_by_name['params']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['spot_orderbook']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['spot_orderbook']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['derivative_orderbook']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['derivative_orderbook']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['balances']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['balances']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['positions']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['positions']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['subaccount_trade_nonces']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['subaccount_trade_nonces']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['expiry_futures_market_info_state']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['expiry_futures_market_info_state']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['perpetual_market_info']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['perpetual_market_info']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['perpetual_market_funding_state']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['perpetual_market_funding_state']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['derivative_market_settlement_scheduled']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['derivative_market_settlement_scheduled']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['denom_decimals']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['denom_decimals']._serialized_options = b'\310\336\037\000' + _globals['_ACCOUNTVOLUME'].fields_by_name['volume']._loaded_options = None + _globals['_ACCOUNTVOLUME'].fields_by_name['volume']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS'].fields_by_name['points']._loaded_options = None + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS'].fields_by_name['points']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SUBACCOUNTNONCE'].fields_by_name['subaccount_trade_nonce']._loaded_options = None + _globals['_SUBACCOUNTNONCE'].fields_by_name['subaccount_trade_nonce']._serialized_options = b'\310\336\037\000' + _globals['_SUBACCOUNTNONCE']._loaded_options = None + _globals['_SUBACCOUNTNONCE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_FULLGRANTAUTHORIZATIONS'].fields_by_name['total_grant_amount']._loaded_options = None + _globals['_FULLGRANTAUTHORIZATIONS'].fields_by_name['total_grant_amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_GENESISSTATE']._serialized_start=230 + _globals['_GENESISSTATE']._serialized_end=3833 + _globals['_ORDERBOOKSEQUENCE']._serialized_start=3835 + _globals['_ORDERBOOKSEQUENCE']._serialized_end=3911 + _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_start=3913 + _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_end=4036 + _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_start=4039 + _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_end=4203 + _globals['_ACCOUNTVOLUME']._serialized_start=4205 + _globals['_ACCOUNTVOLUME']._serialized_end=4307 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_start=4309 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_end=4432 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_start=4435 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_end=4639 + _globals['_SUBACCOUNTNONCE']._serialized_start=4642 + _globals['_SUBACCOUNTNONCE']._serialized_end=4811 + _globals['_FULLGRANTAUTHORIZATIONS']._serialized_start=4814 + _globals['_FULLGRANTAUTHORIZATIONS']._serialized_end=5076 + _globals['_FULLACTIVEGRANT']._serialized_start=5078 + _globals['_FULLACTIVEGRANT']._serialized_end=5192 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/genesis_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/genesis_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/genesis_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/market_pb2.py b/pyinjective/proto/injective/exchange/v2/market_pb2.py new file mode 100644 index 00000000..2794d5a3 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/market_pb2.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/market.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as injective_dot_oracle_dot_v1beta1_dot_oracle__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"injective/exchange/v2/market.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a%injective/oracle/v1beta1/oracle.proto\"\x84\x01\n\x13MarketFeeMultiplier\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12J\n\x0e\x66\x65\x65_multiplier\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rfeeMultiplier:\x04\x88\xa0\x1f\x00\"\xb3\x06\n\nSpotMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12\x1b\n\tmarket_id\x18\x07 \x01(\tR\x08marketId\x12;\n\x06status\x18\x08 \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x14\n\x05\x61\x64min\x18\x0c \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\r \x01(\rR\x10\x61\x64minPermissions\x12#\n\rbase_decimals\x18\x0e \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\x0f \x01(\rR\rquoteDecimals\"\xf9\x08\n\x13\x42inaryOptionsMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x02 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x03 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x05 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x06 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\x07 \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\x08 \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\t \x01(\tR\nquoteDenom\x12\x1b\n\tmarket_id\x18\n \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12;\n\x06status\x18\x0e \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12N\n\x10settlement_price\x18\x11 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x46\n\x0cmin_notional\x18\x12 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12+\n\x11\x61\x64min_permissions\x18\x13 \x01(\rR\x10\x61\x64minPermissions\x12%\n\x0equote_decimals\x18\x14 \x01(\rR\rquoteDecimals:\x04\x88\xa0\x1f\x00\"\x8e\t\n\x10\x44\x65rivativeMarket\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x02 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x03 \x01(\tR\x0boracleQuote\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x05 \x01(\rR\x11oracleScaleFactor\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12\x1b\n\tmarket_id\x18\x07 \x01(\tR\x08marketId\x12U\n\x14initial_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12 \n\x0bisPerpetual\x18\r \x01(\x08R\x0bisPerpetual\x12;\n\x06status\x18\x0e \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status\x12R\n\x13min_price_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12\x14\n\x05\x61\x64min\x18\x12 \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\x13 \x01(\rR\x10\x61\x64minPermissions\x12%\n\x0equote_decimals\x18\x14 \x01(\rR\rquoteDecimals:\x04\x88\xa0\x1f\x00\"\x8d\x01\n\x1e\x44\x65rivativeMarketSettlementInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\"n\n\x0cMarketVolume\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x41\n\x06volume\x18\x02 \x01(\x0b\x32#.injective.exchange.v2.VolumeRecordB\x04\xc8\xde\x1f\x00R\x06volume\"\x9e\x01\n\x0cVolumeRecord\x12\x46\n\x0cmaker_volume\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bmakerVolume\x12\x46\n\x0ctaker_volume\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0btakerVolume\"\x8c\x01\n\x1c\x45xpiryFuturesMarketInfoState\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\x0bmarket_info\x18\x02 \x01(\x0b\x32..injective.exchange.v2.ExpiryFuturesMarketInfoR\nmarketInfo\"\x83\x01\n\x1bPerpetualMarketFundingState\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12G\n\x07\x66unding\x18\x02 \x01(\x0b\x32-.injective.exchange.v2.PerpetualMarketFundingR\x07\x66unding\"\xe4\x02\n\x17\x45xpiryFuturesMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x31\n\x14\x65xpiration_timestamp\x18\x02 \x01(\x03R\x13\x65xpirationTimestamp\x12\x30\n\x14twap_start_timestamp\x18\x03 \x01(\x03R\x12twapStartTimestamp\x12w\n&expiration_twap_start_price_cumulative\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\"expirationTwapStartPriceCumulative\x12N\n\x10settlement_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\"\xc6\x02\n\x13PerpetualMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Z\n\x17hourly_funding_rate_cap\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14hourlyFundingRateCap\x12U\n\x14hourly_interest_rate\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x04 \x01(\x03R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x05 \x01(\x03R\x0f\x66undingInterval\"\xe3\x01\n\x16PerpetualMarketFunding\x12R\n\x12\x63umulative_funding\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11\x63umulativeFunding\x12N\n\x10\x63umulative_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x03R\rlastTimestamp*T\n\x0cMarketStatus\x12\x0f\n\x0bUnspecified\x10\x00\x12\n\n\x06\x41\x63tive\x10\x01\x12\n\n\x06Paused\x10\x02\x12\x0e\n\nDemolished\x10\x03\x12\x0b\n\x07\x45xpired\x10\x04\x42\xf1\x01\n\x19\x63om.injective.exchange.v2B\x0bMarketProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.market_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\013MarketProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_MARKETFEEMULTIPLIER'].fields_by_name['fee_multiplier']._loaded_options = None + _globals['_MARKETFEEMULTIPLIER'].fields_by_name['fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MARKETFEEMULTIPLIER']._loaded_options = None + _globals['_MARKETFEEMULTIPLIER']._serialized_options = b'\210\240\037\000' + _globals['_SPOTMARKET'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_SPOTMARKET'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKET'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_SPOTMARKET'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKET'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_SPOTMARKET'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKET'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_SPOTMARKET'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKET'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_SPOTMARKET'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKET'].fields_by_name['min_notional']._loaded_options = None + _globals['_SPOTMARKET'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['settlement_price']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['settlement_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET'].fields_by_name['min_notional']._loaded_options = None + _globals['_BINARYOPTIONSMARKET'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKET']._loaded_options = None + _globals['_BINARYOPTIONSMARKET']._serialized_options = b'\210\240\037\000' + _globals['_DERIVATIVEMARKET'].fields_by_name['initial_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['maintenance_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET'].fields_by_name['min_notional']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKET']._loaded_options = None + _globals['_DERIVATIVEMARKET']._serialized_options = b'\210\240\037\000' + _globals['_DERIVATIVEMARKETSETTLEMENTINFO'].fields_by_name['settlement_price']._loaded_options = None + _globals['_DERIVATIVEMARKETSETTLEMENTINFO'].fields_by_name['settlement_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MARKETVOLUME'].fields_by_name['volume']._loaded_options = None + _globals['_MARKETVOLUME'].fields_by_name['volume']._serialized_options = b'\310\336\037\000' + _globals['_VOLUMERECORD'].fields_by_name['maker_volume']._loaded_options = None + _globals['_VOLUMERECORD'].fields_by_name['maker_volume']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_VOLUMERECORD'].fields_by_name['taker_volume']._loaded_options = None + _globals['_VOLUMERECORD'].fields_by_name['taker_volume']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETINFO'].fields_by_name['expiration_twap_start_price_cumulative']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETINFO'].fields_by_name['expiration_twap_start_price_cumulative']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETINFO'].fields_by_name['settlement_price']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETINFO'].fields_by_name['settlement_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETINFO'].fields_by_name['hourly_funding_rate_cap']._loaded_options = None + _globals['_PERPETUALMARKETINFO'].fields_by_name['hourly_funding_rate_cap']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETINFO'].fields_by_name['hourly_interest_rate']._loaded_options = None + _globals['_PERPETUALMARKETINFO'].fields_by_name['hourly_interest_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETFUNDING'].fields_by_name['cumulative_funding']._loaded_options = None + _globals['_PERPETUALMARKETFUNDING'].fields_by_name['cumulative_funding']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETFUNDING'].fields_by_name['cumulative_price']._loaded_options = None + _globals['_PERPETUALMARKETFUNDING'].fields_by_name['cumulative_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MARKETSTATUS']._serialized_start=5008 + _globals['_MARKETSTATUS']._serialized_end=5092 + _globals['_MARKETFEEMULTIPLIER']._serialized_start=123 + _globals['_MARKETFEEMULTIPLIER']._serialized_end=255 + _globals['_SPOTMARKET']._serialized_start=258 + _globals['_SPOTMARKET']._serialized_end=1077 + _globals['_BINARYOPTIONSMARKET']._serialized_start=1080 + _globals['_BINARYOPTIONSMARKET']._serialized_end=2225 + _globals['_DERIVATIVEMARKET']._serialized_start=2228 + _globals['_DERIVATIVEMARKET']._serialized_end=3394 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=3397 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=3538 + _globals['_MARKETVOLUME']._serialized_start=3540 + _globals['_MARKETVOLUME']._serialized_end=3650 + _globals['_VOLUMERECORD']._serialized_start=3653 + _globals['_VOLUMERECORD']._serialized_end=3811 + _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_start=3814 + _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_end=3954 + _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_start=3957 + _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_end=4088 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=4091 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=4447 + _globals['_PERPETUALMARKETINFO']._serialized_start=4450 + _globals['_PERPETUALMARKETINFO']._serialized_end=4776 + _globals['_PERPETUALMARKETFUNDING']._serialized_start=4779 + _globals['_PERPETUALMARKETFUNDING']._serialized_end=5006 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/market_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/market_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/market_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/order_pb2.py b/pyinjective/proto/injective/exchange/v2/order_pb2.py new file mode 100644 index 00000000..38aaeada --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/order_pb2.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/order.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!injective/exchange/v2/order.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\"\xe3\x01\n\tOrderInfo\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12#\n\rfee_recipient\x18\x02 \x01(\tR\x0c\x66\x65\x65Recipient\x12\x39\n\x05price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id\"\xfa\x01\n\tSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x45\n\norder_info\x18\x02 \x01(\x0b\x32 .injective.exchange.v2.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12?\n\norder_type\x18\x03 \x01(\x0e\x32 .injective.exchange.v2.OrderTypeR\torderType\x12H\n\rtrigger_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xca\x02\n\x0fSpotMarketOrder\x12\x45\n\norder_info\x18\x01 \x01(\x0b\x32 .injective.exchange.v2.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12\x46\n\x0c\x62\x61lance_hold\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\x12\x1d\n\norder_hash\x18\x03 \x01(\x0cR\torderHash\x12?\n\norder_type\x18\x04 \x01(\x0e\x32 .injective.exchange.v2.OrderTypeR\torderType\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\xc2\x02\n\x0eSpotLimitOrder\x12\x45\n\norder_info\x18\x01 \x01(\x0b\x32 .injective.exchange.v2.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12?\n\norder_type\x18\x02 \x01(\x0e\x32 .injective.exchange.v2.OrderTypeR\torderType\x12?\n\x08\x66illable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12H\n\rtrigger_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x05 \x01(\x0cR\torderHash\"\xbd\x02\n\x0f\x44\x65rivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x45\n\norder_info\x18\x02 \x01(\x0b\x32 .injective.exchange.v2.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12?\n\norder_type\x18\x03 \x01(\x0e\x32 .injective.exchange.v2.OrderTypeR\torderType\x12;\n\x06margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\"\x8b\x03\n\x15\x44\x65rivativeMarketOrder\x12\x45\n\norder_info\x18\x01 \x01(\x0b\x32 .injective.exchange.v2.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12?\n\norder_type\x18\x02 \x01(\x0e\x32 .injective.exchange.v2.OrderTypeR\torderType\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12\x44\n\x0bmargin_hold\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nmarginHold\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x06 \x01(\x0cR\torderHash\"\x85\x03\n\x14\x44\x65rivativeLimitOrder\x12\x45\n\norder_info\x18\x01 \x01(\x0b\x32 .injective.exchange.v2.OrderInfoB\x04\xc8\xde\x1f\x00R\torderInfo\x12?\n\norder_type\x18\x02 \x01(\x0e\x32 .injective.exchange.v2.OrderTypeR\torderType\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12?\n\x08\x66illable\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12H\n\rtrigger_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1d\n\norder_hash\x18\x06 \x01(\x0cR\torderHash*\xbb\x02\n\tOrderType\x12 \n\x0bUNSPECIFIED\x10\x00\x1a\x0f\x8a\x9d \x0bUNSPECIFIED\x12\x10\n\x03\x42UY\x10\x01\x1a\x07\x8a\x9d \x03\x42UY\x12\x12\n\x04SELL\x10\x02\x1a\x08\x8a\x9d \x04SELL\x12\x1a\n\x08STOP_BUY\x10\x03\x1a\x0c\x8a\x9d \x08STOP_BUY\x12\x1c\n\tSTOP_SELL\x10\x04\x1a\r\x8a\x9d \tSTOP_SELL\x12\x1a\n\x08TAKE_BUY\x10\x05\x1a\x0c\x8a\x9d \x08TAKE_BUY\x12\x1c\n\tTAKE_SELL\x10\x06\x1a\r\x8a\x9d \tTAKE_SELL\x12\x16\n\x06\x42UY_PO\x10\x07\x1a\n\x8a\x9d \x06\x42UY_PO\x12\x18\n\x07SELL_PO\x10\x08\x1a\x0b\x8a\x9d \x07SELL_PO\x12\x1e\n\nBUY_ATOMIC\x10\t\x1a\x0e\x8a\x9d \nBUY_ATOMIC\x12 \n\x0bSELL_ATOMIC\x10\n\x1a\x0f\x8a\x9d \x0bSELL_ATOMIC*\x89\x02\n\tOrderMask\x12\x16\n\x06UNUSED\x10\x00\x1a\n\x8a\x9d \x06UNUSED\x12\x10\n\x03\x41NY\x10\x01\x1a\x07\x8a\x9d \x03\x41NY\x12\x18\n\x07REGULAR\x10\x02\x1a\x0b\x8a\x9d \x07REGULAR\x12 \n\x0b\x43ONDITIONAL\x10\x04\x1a\x0f\x8a\x9d \x0b\x43ONDITIONAL\x12.\n\x17\x44IRECTION_BUY_OR_HIGHER\x10\x08\x1a\x11\x8a\x9d \rBUY_OR_HIGHER\x12.\n\x17\x44IRECTION_SELL_OR_LOWER\x10\x10\x1a\x11\x8a\x9d \rSELL_OR_LOWER\x12\x1b\n\x0bTYPE_MARKET\x10 \x1a\n\x8a\x9d \x06MARKET\x12\x19\n\nTYPE_LIMIT\x10@\x1a\t\x8a\x9d \x05LIMIT*t\n\x1c\x41tomicMarketOrderAccessLevel\x12\n\n\x06Nobody\x10\x00\x12\"\n\x1e\x42\x65ginBlockerSmartContractsOnly\x10\x01\x12\x16\n\x12SmartContractsOnly\x10\x02\x12\x0c\n\x08\x45veryone\x10\x03\x42\xf0\x01\n\x19\x63om.injective.exchange.v2B\nOrderProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.order_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\nOrderProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_ORDERTYPE'].values_by_name["UNSPECIFIED"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["UNSPECIFIED"]._serialized_options = b'\212\235 \013UNSPECIFIED' + _globals['_ORDERTYPE'].values_by_name["BUY"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["BUY"]._serialized_options = b'\212\235 \003BUY' + _globals['_ORDERTYPE'].values_by_name["SELL"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["SELL"]._serialized_options = b'\212\235 \004SELL' + _globals['_ORDERTYPE'].values_by_name["STOP_BUY"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["STOP_BUY"]._serialized_options = b'\212\235 \010STOP_BUY' + _globals['_ORDERTYPE'].values_by_name["STOP_SELL"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["STOP_SELL"]._serialized_options = b'\212\235 \tSTOP_SELL' + _globals['_ORDERTYPE'].values_by_name["TAKE_BUY"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["TAKE_BUY"]._serialized_options = b'\212\235 \010TAKE_BUY' + _globals['_ORDERTYPE'].values_by_name["TAKE_SELL"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["TAKE_SELL"]._serialized_options = b'\212\235 \tTAKE_SELL' + _globals['_ORDERTYPE'].values_by_name["BUY_PO"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["BUY_PO"]._serialized_options = b'\212\235 \006BUY_PO' + _globals['_ORDERTYPE'].values_by_name["SELL_PO"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["SELL_PO"]._serialized_options = b'\212\235 \007SELL_PO' + _globals['_ORDERTYPE'].values_by_name["BUY_ATOMIC"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["BUY_ATOMIC"]._serialized_options = b'\212\235 \nBUY_ATOMIC' + _globals['_ORDERTYPE'].values_by_name["SELL_ATOMIC"]._loaded_options = None + _globals['_ORDERTYPE'].values_by_name["SELL_ATOMIC"]._serialized_options = b'\212\235 \013SELL_ATOMIC' + _globals['_ORDERMASK'].values_by_name["UNUSED"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["UNUSED"]._serialized_options = b'\212\235 \006UNUSED' + _globals['_ORDERMASK'].values_by_name["ANY"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["ANY"]._serialized_options = b'\212\235 \003ANY' + _globals['_ORDERMASK'].values_by_name["REGULAR"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["REGULAR"]._serialized_options = b'\212\235 \007REGULAR' + _globals['_ORDERMASK'].values_by_name["CONDITIONAL"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["CONDITIONAL"]._serialized_options = b'\212\235 \013CONDITIONAL' + _globals['_ORDERMASK'].values_by_name["DIRECTION_BUY_OR_HIGHER"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["DIRECTION_BUY_OR_HIGHER"]._serialized_options = b'\212\235 \rBUY_OR_HIGHER' + _globals['_ORDERMASK'].values_by_name["DIRECTION_SELL_OR_LOWER"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["DIRECTION_SELL_OR_LOWER"]._serialized_options = b'\212\235 \rSELL_OR_LOWER' + _globals['_ORDERMASK'].values_by_name["TYPE_MARKET"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["TYPE_MARKET"]._serialized_options = b'\212\235 \006MARKET' + _globals['_ORDERMASK'].values_by_name["TYPE_LIMIT"]._loaded_options = None + _globals['_ORDERMASK'].values_by_name["TYPE_LIMIT"]._serialized_options = b'\212\235 \005LIMIT' + _globals['_ORDERINFO'].fields_by_name['price']._loaded_options = None + _globals['_ORDERINFO'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_ORDERINFO'].fields_by_name['quantity']._loaded_options = None + _globals['_ORDERINFO'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDER'].fields_by_name['order_info']._loaded_options = None + _globals['_SPOTORDER'].fields_by_name['order_info']._serialized_options = b'\310\336\037\000' + _globals['_SPOTORDER'].fields_by_name['trigger_price']._loaded_options = None + _globals['_SPOTORDER'].fields_by_name['trigger_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETORDER'].fields_by_name['order_info']._loaded_options = None + _globals['_SPOTMARKETORDER'].fields_by_name['order_info']._serialized_options = b'\310\336\037\000' + _globals['_SPOTMARKETORDER'].fields_by_name['balance_hold']._loaded_options = None + _globals['_SPOTMARKETORDER'].fields_by_name['balance_hold']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETORDER'].fields_by_name['trigger_price']._loaded_options = None + _globals['_SPOTMARKETORDER'].fields_by_name['trigger_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTLIMITORDER'].fields_by_name['order_info']._loaded_options = None + _globals['_SPOTLIMITORDER'].fields_by_name['order_info']._serialized_options = b'\310\336\037\000' + _globals['_SPOTLIMITORDER'].fields_by_name['fillable']._loaded_options = None + _globals['_SPOTLIMITORDER'].fields_by_name['fillable']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTLIMITORDER'].fields_by_name['trigger_price']._loaded_options = None + _globals['_SPOTLIMITORDER'].fields_by_name['trigger_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDER'].fields_by_name['order_info']._loaded_options = None + _globals['_DERIVATIVEORDER'].fields_by_name['order_info']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVEORDER'].fields_by_name['margin']._loaded_options = None + _globals['_DERIVATIVEORDER'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDER'].fields_by_name['trigger_price']._loaded_options = None + _globals['_DERIVATIVEORDER'].fields_by_name['trigger_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['order_info']._loaded_options = None + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['order_info']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['margin']._loaded_options = None + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['margin_hold']._loaded_options = None + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['margin_hold']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['trigger_price']._loaded_options = None + _globals['_DERIVATIVEMARKETORDER'].fields_by_name['trigger_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVELIMITORDER'].fields_by_name['order_info']._loaded_options = None + _globals['_DERIVATIVELIMITORDER'].fields_by_name['order_info']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVELIMITORDER'].fields_by_name['margin']._loaded_options = None + _globals['_DERIVATIVELIMITORDER'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVELIMITORDER'].fields_by_name['fillable']._loaded_options = None + _globals['_DERIVATIVELIMITORDER'].fields_by_name['fillable']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVELIMITORDER'].fields_by_name['trigger_price']._loaded_options = None + _globals['_DERIVATIVELIMITORDER'].fields_by_name['trigger_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_ORDERTYPE']._serialized_start=2334 + _globals['_ORDERTYPE']._serialized_end=2649 + _globals['_ORDERMASK']._serialized_start=2652 + _globals['_ORDERMASK']._serialized_end=2917 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=2919 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=3035 + _globals['_ORDERINFO']._serialized_start=83 + _globals['_ORDERINFO']._serialized_end=310 + _globals['_SPOTORDER']._serialized_start=313 + _globals['_SPOTORDER']._serialized_end=563 + _globals['_SPOTMARKETORDER']._serialized_start=566 + _globals['_SPOTMARKETORDER']._serialized_end=896 + _globals['_SPOTLIMITORDER']._serialized_start=899 + _globals['_SPOTLIMITORDER']._serialized_end=1221 + _globals['_DERIVATIVEORDER']._serialized_start=1224 + _globals['_DERIVATIVEORDER']._serialized_end=1541 + _globals['_DERIVATIVEMARKETORDER']._serialized_start=1544 + _globals['_DERIVATIVEMARKETORDER']._serialized_end=1939 + _globals['_DERIVATIVELIMITORDER']._serialized_start=1942 + _globals['_DERIVATIVELIMITORDER']._serialized_end=2331 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/order_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/order_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/order_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/orderbook_pb2.py b/pyinjective/proto/injective/exchange/v2/orderbook_pb2.py new file mode 100644 index 00000000..d9f9e5d0 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/orderbook_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/orderbook.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.injective.exchange.v2 import order_pb2 as injective_dot_exchange_dot_v2_dot_order__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%injective/exchange/v2/orderbook.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a!injective/exchange/v2/order.proto\"\x93\x01\n\rSpotOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1c\n\tisBuySide\x18\x02 \x01(\x08R\tisBuySide\x12=\n\x06orders\x18\x03 \x03(\x0b\x32%.injective.exchange.v2.SpotLimitOrderR\x06orders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x9f\x01\n\x13\x44\x65rivativeOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1c\n\tisBuySide\x18\x02 \x01(\x08R\tisBuySide\x12\x43\n\x06orders\x18\x03 \x03(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\x06orders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xad\x03\n\x1e\x43onditionalDerivativeOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12U\n\x10limit_buy_orders\x18\x02 \x03(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\x0elimitBuyOrders\x12X\n\x11market_buy_orders\x18\x03 \x03(\x0b\x32,.injective.exchange.v2.DerivativeMarketOrderR\x0fmarketBuyOrders\x12W\n\x11limit_sell_orders\x18\x04 \x03(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\x0flimitSellOrders\x12Z\n\x12market_sell_orders\x18\x05 \x03(\x0b\x32,.injective.exchange.v2.DerivativeMarketOrderR\x10marketSellOrders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xfc\x03\n\x1bSubaccountOrderbookMetadata\x12\x39\n\x19vanilla_limit_order_count\x18\x01 \x01(\rR\x16vanillaLimitOrderCount\x12@\n\x1dreduce_only_limit_order_count\x18\x02 \x01(\rR\x19reduceOnlyLimitOrderCount\x12h\n\x1e\x61ggregate_reduce_only_quantity\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1b\x61ggregateReduceOnlyQuantity\x12\x61\n\x1a\x61ggregate_vanilla_quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x61ggregateVanillaQuantity\x12\x45\n\x1fvanilla_conditional_order_count\x18\x05 \x01(\rR\x1cvanillaConditionalOrderCount\x12L\n#reduce_only_conditional_order_count\x18\x06 \x01(\rR\x1freduceOnlyConditionalOrderCountB\xf4\x01\n\x19\x63om.injective.exchange.v2B\x0eOrderbookProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.orderbook_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\016OrderbookProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_SPOTORDERBOOK']._loaded_options = None + _globals['_SPOTORDERBOOK']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_DERIVATIVEORDERBOOK']._loaded_options = None + _globals['_DERIVATIVEORDERBOOK']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_CONDITIONALDERIVATIVEORDERBOOK']._loaded_options = None + _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_SUBACCOUNTORDERBOOKMETADATA'].fields_by_name['aggregate_reduce_only_quantity']._loaded_options = None + _globals['_SUBACCOUNTORDERBOOKMETADATA'].fields_by_name['aggregate_reduce_only_quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SUBACCOUNTORDERBOOKMETADATA'].fields_by_name['aggregate_vanilla_quantity']._loaded_options = None + _globals['_SUBACCOUNTORDERBOOKMETADATA'].fields_by_name['aggregate_vanilla_quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERBOOK']._serialized_start=122 + _globals['_SPOTORDERBOOK']._serialized_end=269 + _globals['_DERIVATIVEORDERBOOK']._serialized_start=272 + _globals['_DERIVATIVEORDERBOOK']._serialized_end=431 + _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_start=434 + _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_end=863 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_start=866 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_end=1374 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/orderbook_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/orderbook_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/orderbook_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/proposal_pb2.py b/pyinjective/proto/injective/exchange/v2/proposal_pb2.py new file mode 100644 index 00000000..4c8950fe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/proposal_pb2.py @@ -0,0 +1,222 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/proposal.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 +from pyinjective.proto.cosmos.msg.v1 import msg_pb2 as cosmos_dot_msg_dot_v1_dot_msg__pb2 +from pyinjective.proto.cosmos.distribution.v1beta1 import distribution_pb2 as cosmos_dot_distribution_dot_v1beta1_dot_distribution__pb2 +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as injective_dot_exchange_dot_v2_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v2 import market_pb2 as injective_dot_exchange_dot_v2_dot_market__pb2 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as injective_dot_oracle_dot_v1beta1_dot_oracle__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/exchange/v2/proposal.proto\x12\x15injective.exchange.v2\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a\x11\x61mino/amino.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a.cosmos/distribution/v1beta1/distribution.proto\x1a$injective/exchange/v2/exchange.proto\x1a\"injective/exchange/v2/market.proto\x1a%injective/oracle/v1beta1/oracle.proto\"\x95\x07\n\x1dSpotMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12;\n\x06status\x18\t \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status\x12\x1c\n\x06ticker\x18\n \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12?\n\nadmin_info\x18\x0c \x01(\x0b\x32 .injective.exchange.v2.AdminInfoR\tadminInfo\x12#\n\rbase_decimals\x18\r \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\x0e \x01(\rR\rquoteDecimals:Q\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*&exchange/SpotMarketParamUpdateProposal\"\xc7\x01\n\x16\x45xchangeEnableProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12G\n\x0c\x65xchangeType\x18\x03 \x01(\x0e\x32#.injective.exchange.v2.ExchangeTypeR\x0c\x65xchangeType:,\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x8a\xe7\xb0*\x1f\x65xchange/ExchangeEnableProposal\"\xde\x0c\n!BatchExchangeModificationProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x80\x01\n\"spot_market_param_update_proposals\x18\x03 \x03(\x0b\x32\x34.injective.exchange.v2.SpotMarketParamUpdateProposalR\x1espotMarketParamUpdateProposals\x12\x92\x01\n(derivative_market_param_update_proposals\x18\x04 \x03(\x0b\x32:.injective.exchange.v2.DerivativeMarketParamUpdateProposalR$derivativeMarketParamUpdateProposals\x12p\n\x1cspot_market_launch_proposals\x18\x05 \x03(\x0b\x32/.injective.exchange.v2.SpotMarketLaunchProposalR\x19spotMarketLaunchProposals\x12\x7f\n!perpetual_market_launch_proposals\x18\x06 \x03(\x0b\x32\x34.injective.exchange.v2.PerpetualMarketLaunchProposalR\x1eperpetualMarketLaunchProposals\x12\x8c\x01\n&expiry_futures_market_launch_proposals\x18\x07 \x03(\x0b\x32\x38.injective.exchange.v2.ExpiryFuturesMarketLaunchProposalR\"expiryFuturesMarketLaunchProposals\x12\x90\x01\n\'trading_reward_campaign_update_proposal\x18\x08 \x01(\x0b\x32:.injective.exchange.v2.TradingRewardCampaignUpdateProposalR#tradingRewardCampaignUpdateProposal\x12\x8c\x01\n&binary_options_market_launch_proposals\x18\t \x03(\x0b\x32\x38.injective.exchange.v2.BinaryOptionsMarketLaunchProposalR\"binaryOptionsMarketLaunchProposals\x12\x8f\x01\n%binary_options_param_update_proposals\x18\n \x03(\x0b\x32=.injective.exchange.v2.BinaryOptionsMarketParamUpdateProposalR!binaryOptionsParamUpdateProposals\x12w\n\x1e\x64\x65nom_decimals_update_proposal\x18\x0b \x01(\x0b\x32\x32.injective.exchange.v2.UpdateDenomDecimalsProposalR\x1b\x64\x65nomDecimalsUpdateProposal\x12^\n\x15\x66\x65\x65_discount_proposal\x18\x0c \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountProposalR\x13\x66\x65\x65\x44iscountProposal\x12\x82\x01\n\"market_forced_settlement_proposals\x18\r \x03(\x0b\x32\x35.injective.exchange.v2.MarketForcedSettlementProposalR\x1fmarketForcedSettlementProposals:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/BatchExchangeModificationProposal\"\x91\x06\n\x18SpotMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x05 \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12I\n\x0emaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12\x46\n\x0cmin_notional\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12?\n\nadmin_info\x18\x0b \x01(\x0b\x32 .injective.exchange.v2.AdminInfoR\tadminInfo\x12#\n\rbase_decimals\x18\x0e \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\x0f \x01(\rR\rquoteDecimals:L\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*!exchange/SpotMarketLaunchProposal\"\xa1\x08\n\x1dPerpetualMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x05 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x06 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x08 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12U\n\x14initial_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12?\n\nadmin_info\x18\x10 \x01(\x0b\x32 .injective.exchange.v2.AdminInfoR\tadminInfo:Q\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*&exchange/PerpetualMarketLaunchProposal\"\xe5\x07\n!BinaryOptionsMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x04 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x05 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x06 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\n \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\x0b \x01(\tR\nquoteDenom\x12I\n\x0emaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12+\n\x11\x61\x64min_permissions\x18\x11 \x01(\rR\x10\x61\x64minPermissions:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/BinaryOptionsMarketLaunchProposal\"\xc1\x08\n!ExpiryFuturesMarketLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x05 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x06 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x08 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12\x16\n\x06\x65xpiry\x18\t \x01(\x03R\x06\x65xpiry\x12U\n\x14initial_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12R\n\x13min_price_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12?\n\nadmin_info\x18\x11 \x01(\x0b\x32 .injective.exchange.v2.AdminInfoR\tadminInfo:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/ExpiryFuturesMarketLaunchProposal\"\x83\n\n#DerivativeMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12U\n\x14initial_margin_ratio\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12I\n\x0emaker_fee_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\t \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\n \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12S\n\x12HourlyInterestRate\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12HourlyInterestRate\x12W\n\x14HourlyFundingRateCap\x18\x0c \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14HourlyFundingRateCap\x12;\n\x06status\x18\r \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status\x12H\n\roracle_params\x18\x0e \x01(\x0b\x32#.injective.exchange.v2.OracleParamsR\x0coracleParams\x12\x1c\n\x06ticker\x18\x0f \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12?\n\nadmin_info\x18\x11 \x01(\x0b\x32 .injective.exchange.v2.AdminInfoR\tadminInfo:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/DerivativeMarketParamUpdateProposal\"N\n\tAdminInfo\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12+\n\x11\x61\x64min_permissions\x18\x02 \x01(\rR\x10\x61\x64minPermissions\"\x99\x02\n\x1eMarketForcedSettlementProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice:R\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*\'exchange/MarketForcedSettlementProposal\"\xf3\x01\n\x1bUpdateDenomDecimalsProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12K\n\x0e\x64\x65nom_decimals\x18\x03 \x03(\x0b\x32$.injective.exchange.v2.DenomDecimalsR\rdenomDecimals:O\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*$exchange/UpdateDenomDecimalsProposal\"\xb8\x08\n&BinaryOptionsMarketParamUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12I\n\x0emaker_fee_rate\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12X\n\x16relayer_fee_share_rate\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13relayerFeeShareRate\x12R\n\x13min_price_tick_size\x18\x07 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x08 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x31\n\x14\x65xpiration_timestamp\x18\t \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\n \x01(\x03R\x13settlementTimestamp\x12N\n\x10settlement_price\x18\x0b \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x14\n\x05\x61\x64min\x18\x0c \x01(\tR\x05\x61\x64min\x12;\n\x06status\x18\r \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status\x12P\n\roracle_params\x18\x0e \x01(\x0b\x32+.injective.exchange.v2.ProviderOracleParamsR\x0coracleParams\x12\x1c\n\x06ticker\x18\x0f \x01(\tB\x04\xc8\xde\x1f\x01R\x06ticker\x12\x46\n\x0cmin_notional\x18\x10 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:Z\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*/exchange/BinaryOptionsMarketParamUpdateProposal\"\xc1\x01\n\x14ProviderOracleParams\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1a\n\x08provider\x18\x02 \x01(\tR\x08provider\x12.\n\x13oracle_scale_factor\x18\x03 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\"\xc9\x01\n\x0cOracleParams\x12\x1f\n\x0boracle_base\x18\x01 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x02 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x03 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x04 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\"\xec\x02\n#TradingRewardCampaignLaunchProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12U\n\rcampaign_info\x18\x03 \x01(\x0b\x32\x30.injective.exchange.v2.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12]\n\x15\x63\x61mpaign_reward_pools\x18\x04 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR\x13\x63\x61mpaignRewardPools:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/TradingRewardCampaignLaunchProposal\"\xed\x03\n#TradingRewardCampaignUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12U\n\rcampaign_info\x18\x03 \x01(\x0b\x32\x30.injective.exchange.v2.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12p\n\x1f\x63\x61mpaign_reward_pools_additions\x18\x04 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR\x1c\x63\x61mpaignRewardPoolsAdditions\x12l\n\x1d\x63\x61mpaign_reward_pools_updates\x18\x05 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR\x1a\x63\x61mpaignRewardPoolsUpdates:W\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*,exchange/TradingRewardCampaignUpdateProposal\"\x80\x01\n\x11RewardPointUpdate\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\nnew_points\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tnewPoints\"\xd2\x02\n(TradingRewardPendingPointsUpdateProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x34\n\x16pending_pool_timestamp\x18\x03 \x01(\x03R\x14pendingPoolTimestamp\x12Z\n\x14reward_point_updates\x18\x04 \x03(\x0b\x32(.injective.exchange.v2.RewardPointUpdateR\x12rewardPointUpdates:\\\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*1exchange/TradingRewardPendingPointsUpdateProposal\"\xde\x01\n\x13\x46\x65\x65\x44iscountProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x46\n\x08schedule\x18\x03 \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountScheduleR\x08schedule:G\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*\x1c\x65xchange/FeeDiscountProposal\"\x85\x02\n\x1f\x42\x61tchCommunityPoolSpendProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12U\n\tproposals\x18\x03 \x03(\x0b\x32\x37.cosmos.distribution.v1beta1.CommunityPoolSpendProposalR\tproposals:S\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*(exchange/BatchCommunityPoolSpendProposal\"\xae\x02\n.AtomicMarketOrderFeeMultiplierScheduleProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12`\n\x16market_fee_multipliers\x18\x03 \x03(\x0b\x32*.injective.exchange.v2.MarketFeeMultiplierR\x14marketFeeMultipliers:b\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*7exchange/AtomicMarketOrderFeeMultiplierScheduleProposal*x\n\x0c\x45xchangeType\x12\x32\n\x14\x45XCHANGE_UNSPECIFIED\x10\x00\x1a\x18\x8a\x9d \x14\x45XCHANGE_UNSPECIFIED\x12\x12\n\x04SPOT\x10\x01\x1a\x08\x8a\x9d \x04SPOT\x12 \n\x0b\x44\x45RIVATIVES\x10\x02\x1a\x0f\x8a\x9d \x0b\x44\x45RIVATIVESB\xf3\x01\n\x19\x63om.injective.exchange.v2B\rProposalProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.proposal_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\rProposalProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_EXCHANGETYPE'].values_by_name["EXCHANGE_UNSPECIFIED"]._loaded_options = None + _globals['_EXCHANGETYPE'].values_by_name["EXCHANGE_UNSPECIFIED"]._serialized_options = b'\212\235 \024EXCHANGE_UNSPECIFIED' + _globals['_EXCHANGETYPE'].values_by_name["SPOT"]._loaded_options = None + _globals['_EXCHANGETYPE'].values_by_name["SPOT"]._serialized_options = b'\212\235 \004SPOT' + _globals['_EXCHANGETYPE'].values_by_name["DERIVATIVES"]._loaded_options = None + _globals['_EXCHANGETYPE'].values_by_name["DERIVATIVES"]._serialized_options = b'\212\235 \013DERIVATIVES' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['ticker']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['ticker']._serialized_options = b'\310\336\037\001' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._loaded_options = None + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*&exchange/SpotMarketParamUpdateProposal' + _globals['_EXCHANGEENABLEPROPOSAL']._loaded_options = None + _globals['_EXCHANGEENABLEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\212\347\260*\037exchange/ExchangeEnableProposal' + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._loaded_options = None + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260**exchange/BatchExchangeModificationProposal' + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_SPOTMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETLAUNCHPROPOSAL']._loaded_options = None + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*!exchange/SpotMarketLaunchProposal' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['initial_margin_ratio']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['maintenance_margin_ratio']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*&exchange/PerpetualMarketLaunchProposal' + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._loaded_options = None + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260**exchange/BinaryOptionsMarketLaunchProposal' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['initial_margin_ratio']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['maintenance_margin_ratio']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260**exchange/ExpiryFuturesMarketLaunchProposal' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['initial_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['initial_margin_ratio']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maintenance_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maintenance_margin_ratio']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['HourlyInterestRate']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['HourlyInterestRate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['HourlyFundingRateCap']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['HourlyFundingRateCap']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['ticker']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['ticker']._serialized_options = b'\310\336\037\001' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*,exchange/DerivativeMarketParamUpdateProposal' + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL'].fields_by_name['settlement_price']._loaded_options = None + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL'].fields_by_name['settlement_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._loaded_options = None + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*\'exchange/MarketForcedSettlementProposal' + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._loaded_options = None + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*$exchange/UpdateDenomDecimalsProposal' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['relayer_fee_share_rate']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['relayer_fee_share_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['settlement_price']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['settlement_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['ticker']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['ticker']._serialized_options = b'\310\336\037\001' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._loaded_options = None + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*/exchange/BinaryOptionsMarketParamUpdateProposal' + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._loaded_options = None + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*,exchange/TradingRewardCampaignLaunchProposal' + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._loaded_options = None + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*,exchange/TradingRewardCampaignUpdateProposal' + _globals['_REWARDPOINTUPDATE'].fields_by_name['new_points']._loaded_options = None + _globals['_REWARDPOINTUPDATE'].fields_by_name['new_points']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._loaded_options = None + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*1exchange/TradingRewardPendingPointsUpdateProposal' + _globals['_FEEDISCOUNTPROPOSAL']._loaded_options = None + _globals['_FEEDISCOUNTPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*\034exchange/FeeDiscountProposal' + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._loaded_options = None + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*(exchange/BatchCommunityPoolSpendProposal' + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._loaded_options = None + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*7exchange/AtomicMarketOrderFeeMultiplierScheduleProposal' + _globals['_EXCHANGETYPE']._serialized_start=12552 + _globals['_EXCHANGETYPE']._serialized_end=12672 + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_start=350 + _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_end=1267 + _globals['_EXCHANGEENABLEPROPOSAL']._serialized_start=1270 + _globals['_EXCHANGEENABLEPROPOSAL']._serialized_end=1469 + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_start=1472 + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_end=3102 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_start=3105 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_end=3890 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_start=3893 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_end=4950 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_start=4953 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_end=5950 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_start=5953 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_end=7042 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_start=7045 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_end=8328 + _globals['_ADMININFO']._serialized_start=8330 + _globals['_ADMININFO']._serialized_end=8408 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_start=8411 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_end=8692 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_start=8695 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_end=8938 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_start=8941 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_end=10021 + _globals['_PROVIDERORACLEPARAMS']._serialized_start=10024 + _globals['_PROVIDERORACLEPARAMS']._serialized_end=10217 + _globals['_ORACLEPARAMS']._serialized_start=10220 + _globals['_ORACLEPARAMS']._serialized_end=10421 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_start=10424 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_end=10788 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_start=10791 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_end=11284 + _globals['_REWARDPOINTUPDATE']._serialized_start=11287 + _globals['_REWARDPOINTUPDATE']._serialized_end=11415 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_start=11418 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_end=11756 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_start=11759 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_end=11981 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_start=11984 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_end=12245 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_start=12248 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_end=12550 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/proposal_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/proposal_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/proposal_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/pyinjective/proto/injective/exchange/v2/query_pb2.py b/pyinjective/proto/injective/exchange/v2/query_pb2.py new file mode 100644 index 00000000..13849253 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/query_pb2.py @@ -0,0 +1,568 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/query.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as injective_dot_exchange_dot_v2_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v2 import orderbook_pb2 as injective_dot_exchange_dot_v2_dot_orderbook__pb2 +from pyinjective.proto.injective.exchange.v2 import market_pb2 as injective_dot_exchange_dot_v2_dot_market__pb2 +from pyinjective.proto.injective.exchange.v2 import genesis_pb2 as injective_dot_exchange_dot_v2_dot_genesis__pb2 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as injective_dot_oracle_dot_v1beta1_dot_oracle__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!injective/exchange/v2/query.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a$injective/exchange/v2/exchange.proto\x1a%injective/exchange/v2/orderbook.proto\x1a\"injective/exchange/v2/market.proto\x1a#injective/exchange/v2/genesis.proto\x1a%injective/oracle/v1beta1/oracle.proto\"O\n\nSubaccount\x12\x16\n\x06trader\x18\x01 \x01(\tR\x06trader\x12)\n\x10subaccount_nonce\x18\x02 \x01(\rR\x0fsubaccountNonce\"`\n\x1cQuerySubaccountOrdersRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\xb7\x01\n\x1dQuerySubaccountOrdersResponse\x12I\n\nbuy_orders\x18\x01 \x03(\x0b\x32*.injective.exchange.v2.SubaccountOrderDataR\tbuyOrders\x12K\n\x0bsell_orders\x18\x02 \x03(\x0b\x32*.injective.exchange.v2.SubaccountOrderDataR\nsellOrders\"\xaa\x01\n%SubaccountOrderbookMetadataWithMarket\x12N\n\x08metadata\x18\x01 \x01(\x0b\x32\x32.injective.exchange.v2.SubaccountOrderbookMetadataR\x08metadata\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x14\n\x05isBuy\x18\x03 \x01(\x08R\x05isBuy\"\x1c\n\x1aQueryExchangeParamsRequest\"Z\n\x1bQueryExchangeParamsResponse\x12;\n\x06params\x18\x01 \x01(\x0b\x32\x1d.injective.exchange.v2.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x8e\x01\n\x1eQuerySubaccountDepositsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12G\n\nsubaccount\x18\x02 \x01(\x0b\x32!.injective.exchange.v2.SubaccountB\x04\xc8\xde\x1f\x01R\nsubaccount\"\xe0\x01\n\x1fQuerySubaccountDepositsResponse\x12`\n\x08\x64\x65posits\x18\x01 \x03(\x0b\x32\x44.injective.exchange.v2.QuerySubaccountDepositsResponse.DepositsEntryR\x08\x64\x65posits\x1a[\n\rDepositsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x1e.injective.exchange.v2.DepositR\x05value:\x02\x38\x01\"\x1e\n\x1cQueryExchangeBalancesRequest\"a\n\x1dQueryExchangeBalancesResponse\x12@\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32\x1e.injective.exchange.v2.BalanceB\x04\xc8\xde\x1f\x00R\x08\x62\x61lances\"7\n\x1bQueryAggregateVolumeRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"p\n\x1cQueryAggregateVolumeResponse\x12P\n\x11\x61ggregate_volumes\x18\x01 \x03(\x0b\x32#.injective.exchange.v2.MarketVolumeR\x10\x61ggregateVolumes\"Y\n\x1cQueryAggregateVolumesRequest\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"\xef\x01\n\x1dQueryAggregateVolumesResponse\x12o\n\x19\x61ggregate_account_volumes\x18\x01 \x03(\x0b\x32\x33.injective.exchange.v2.AggregateAccountVolumeRecordR\x17\x61ggregateAccountVolumes\x12]\n\x18\x61ggregate_market_volumes\x18\x02 \x03(\x0b\x32#.injective.exchange.v2.MarketVolumeR\x16\x61ggregateMarketVolumes\"@\n!QueryAggregateMarketVolumeRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"g\n\"QueryAggregateMarketVolumeResponse\x12\x41\n\x06volume\x18\x01 \x01(\x0b\x32#.injective.exchange.v2.VolumeRecordB\x04\xc8\xde\x1f\x00R\x06volume\"0\n\x18QueryDenomDecimalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"5\n\x19QueryDenomDecimalResponse\x12\x18\n\x07\x64\x65\x63imal\x18\x01 \x01(\x04R\x07\x64\x65\x63imal\"3\n\x19QueryDenomDecimalsRequest\x12\x16\n\x06\x64\x65noms\x18\x01 \x03(\tR\x06\x64\x65noms\"o\n\x1aQueryDenomDecimalsResponse\x12Q\n\x0e\x64\x65nom_decimals\x18\x01 \x03(\x0b\x32$.injective.exchange.v2.DenomDecimalsB\x04\xc8\xde\x1f\x00R\rdenomDecimals\"C\n\"QueryAggregateMarketVolumesRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"d\n#QueryAggregateMarketVolumesResponse\x12=\n\x07volumes\x18\x01 \x03(\x0b\x32#.injective.exchange.v2.MarketVolumeR\x07volumes\"Z\n\x1dQuerySubaccountDepositRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"\\\n\x1eQuerySubaccountDepositResponse\x12:\n\x08\x64\x65posits\x18\x01 \x01(\x0b\x32\x1e.injective.exchange.v2.DepositR\x08\x64\x65posits\"P\n\x17QuerySpotMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"W\n\x18QuerySpotMarketsResponse\x12;\n\x07markets\x18\x01 \x03(\x0b\x32!.injective.exchange.v2.SpotMarketR\x07markets\"5\n\x16QuerySpotMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"T\n\x17QuerySpotMarketResponse\x12\x39\n\x06market\x18\x01 \x01(\x0b\x32!.injective.exchange.v2.SpotMarketR\x06market\"\xd1\x02\n\x19QuerySpotOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12?\n\norder_side\x18\x03 \x01(\x0e\x32 .injective.exchange.v2.OrderSideR\torderSide\x12_\n\x19limit_cumulative_notional\x18\x04 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeNotional\x12_\n\x19limit_cumulative_quantity\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeQuantity\"\xae\x01\n\x1aQuerySpotOrderbookResponse\x12\x46\n\x10\x62uys_price_level\x18\x01 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\x0e\x62uysPriceLevel\x12H\n\x11sells_price_level\x18\x02 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\x0fsellsPriceLevel\"\xa3\x01\n\x0e\x46ullSpotMarket\x12\x39\n\x06market\x18\x01 \x01(\x0b\x32!.injective.exchange.v2.SpotMarketR\x06market\x12V\n\x11mid_price_and_tob\x18\x02 \x01(\x0b\x32%.injective.exchange.v2.MidPriceAndTOBB\x04\xc8\xde\x1f\x01R\x0emidPriceAndTob\"\x88\x01\n\x1bQueryFullSpotMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\x12\x32\n\x16with_mid_price_and_tob\x18\x03 \x01(\x08R\x12withMidPriceAndTob\"_\n\x1cQueryFullSpotMarketsResponse\x12?\n\x07markets\x18\x01 \x03(\x0b\x32%.injective.exchange.v2.FullSpotMarketR\x07markets\"m\n\x1aQueryFullSpotMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x32\n\x16with_mid_price_and_tob\x18\x02 \x01(\x08R\x12withMidPriceAndTob\"\\\n\x1bQueryFullSpotMarketResponse\x12=\n\x06market\x18\x01 \x01(\x0b\x32%.injective.exchange.v2.FullSpotMarketR\x06market\"\x85\x01\n\x1eQuerySpotOrdersByHashesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12!\n\x0corder_hashes\x18\x03 \x03(\tR\x0borderHashes\"g\n\x1fQuerySpotOrdersByHashesResponse\x12\x44\n\x06orders\x18\x01 \x03(\x0b\x32,.injective.exchange.v2.TrimmedSpotLimitOrderR\x06orders\"`\n\x1cQueryTraderSpotOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"l\n$QueryAccountAddressSpotOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x9b\x02\n\x15TrimmedSpotLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12?\n\x08\x66illable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12\x14\n\x05isBuy\x18\x04 \x01(\x08R\x05isBuy\x12\x1d\n\norder_hash\x18\x05 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id\"e\n\x1dQueryTraderSpotOrdersResponse\x12\x44\n\x06orders\x18\x01 \x03(\x0b\x32,.injective.exchange.v2.TrimmedSpotLimitOrderR\x06orders\"m\n%QueryAccountAddressSpotOrdersResponse\x12\x44\n\x06orders\x18\x01 \x03(\x0b\x32,.injective.exchange.v2.TrimmedSpotLimitOrderR\x06orders\"=\n\x1eQuerySpotMidPriceAndTOBRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\xfb\x01\n\x1fQuerySpotMidPriceAndTOBResponse\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"C\n$QueryDerivativeMidPriceAndTOBRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\x81\x02\n%QueryDerivativeMidPriceAndTOBResponse\x12@\n\tmid_price\x18\x01 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08midPrice\x12I\n\x0e\x62\x65st_buy_price\x18\x02 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0c\x62\x65stBuyPrice\x12K\n\x0f\x62\x65st_sell_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rbestSellPrice\"\xb5\x01\n\x1fQueryDerivativeOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05limit\x18\x02 \x01(\x04R\x05limit\x12_\n\x19limit_cumulative_notional\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x17limitCumulativeNotional\"\xb4\x01\n QueryDerivativeOrderbookResponse\x12\x46\n\x10\x62uys_price_level\x18\x01 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\x0e\x62uysPriceLevel\x12H\n\x11sells_price_level\x18\x02 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\x0fsellsPriceLevel\"\x97\x03\n.QueryTraderSpotOrdersToCancelUpToAmountRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x44\n\x0b\x62\x61se_amount\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nbaseAmount\x12\x46\n\x0cquote_amount\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bquoteAmount\x12G\n\x08strategy\x18\x05 \x01(\x0e\x32+.injective.exchange.v2.CancellationStrategyR\x08strategy\x12L\n\x0freference_price\x18\x06 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ereferencePrice\"\xd7\x02\n4QueryTraderDerivativeOrdersToCancelUpToAmountRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x46\n\x0cquote_amount\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bquoteAmount\x12G\n\x08strategy\x18\x04 \x01(\x0e\x32+.injective.exchange.v2.CancellationStrategyR\x08strategy\x12L\n\x0freference_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ereferencePrice\"f\n\"QueryTraderDerivativeOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"r\n*QueryAccountAddressDerivativeOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xe9\x02\n\x1bTrimmedDerivativeLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12?\n\x08\x66illable\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08\x66illable\x12\x1f\n\x05isBuy\x18\x05 \x01(\x08\x42\t\xea\xde\x1f\x05isBuyR\x05isBuy\x12\x1d\n\norder_hash\x18\x06 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x07 \x01(\tR\x03\x63id\"q\n#QueryTraderDerivativeOrdersResponse\x12J\n\x06orders\x18\x01 \x03(\x0b\x32\x32.injective.exchange.v2.TrimmedDerivativeLimitOrderR\x06orders\"y\n+QueryAccountAddressDerivativeOrdersResponse\x12J\n\x06orders\x18\x01 \x03(\x0b\x32\x32.injective.exchange.v2.TrimmedDerivativeLimitOrderR\x06orders\"\x8b\x01\n$QueryDerivativeOrdersByHashesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12!\n\x0corder_hashes\x18\x03 \x03(\tR\x0borderHashes\"s\n%QueryDerivativeOrdersByHashesResponse\x12J\n\x06orders\x18\x01 \x03(\x0b\x32\x32.injective.exchange.v2.TrimmedDerivativeLimitOrderR\x06orders\"\x8a\x01\n\x1dQueryDerivativeMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\x12\x32\n\x16with_mid_price_and_tob\x18\x03 \x01(\x08R\x12withMidPriceAndTob\"\x88\x01\n\nPriceLevel\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\"\xb5\x01\n\x14PerpetualMarketState\x12K\n\x0bmarket_info\x18\x01 \x01(\x0b\x32*.injective.exchange.v2.PerpetualMarketInfoR\nmarketInfo\x12P\n\x0c\x66unding_info\x18\x02 \x01(\x0b\x32-.injective.exchange.v2.PerpetualMarketFundingR\x0b\x66undingInfo\"\xa6\x03\n\x14\x46ullDerivativeMarket\x12?\n\x06market\x18\x01 \x01(\x0b\x32\'.injective.exchange.v2.DerivativeMarketR\x06market\x12T\n\x0eperpetual_info\x18\x02 \x01(\x0b\x32+.injective.exchange.v2.PerpetualMarketStateH\x00R\rperpetualInfo\x12S\n\x0c\x66utures_info\x18\x03 \x01(\x0b\x32..injective.exchange.v2.ExpiryFuturesMarketInfoH\x00R\x0b\x66uturesInfo\x12\x42\n\nmark_price\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tmarkPrice\x12V\n\x11mid_price_and_tob\x18\x05 \x01(\x0b\x32%.injective.exchange.v2.MidPriceAndTOBB\x04\xc8\xde\x1f\x01R\x0emidPriceAndTobB\x06\n\x04info\"g\n\x1eQueryDerivativeMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective.exchange.v2.FullDerivativeMarketR\x07markets\";\n\x1cQueryDerivativeMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"d\n\x1dQueryDerivativeMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective.exchange.v2.FullDerivativeMarketR\x06market\"B\n#QueryDerivativeMarketAddressRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"e\n$QueryDerivativeMarketAddressResponse\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\"G\n QuerySubaccountTradeNonceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"F\n\x1fQuerySubaccountPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"j\n&QuerySubaccountPositionInMarketRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"s\n/QuerySubaccountEffectivePositionInMarketRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"J\n#QuerySubaccountOrderMetadataRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\"i\n QuerySubaccountPositionsResponse\x12\x45\n\x05state\x18\x01 \x03(\x0b\x32).injective.exchange.v2.DerivativePositionB\x04\xc8\xde\x1f\x00R\x05state\"f\n\'QuerySubaccountPositionInMarketResponse\x12;\n\x05state\x18\x01 \x01(\x0b\x32\x1f.injective.exchange.v2.PositionB\x04\xc8\xde\x1f\x01R\x05state\"\x83\x02\n\x11\x45\x66\x66\x65\x63tivePosition\x12\x17\n\x07is_long\x18\x01 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12N\n\x10\x65\x66\x66\x65\x63tive_margin\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0f\x65\x66\x66\x65\x63tiveMargin\"x\n0QuerySubaccountEffectivePositionInMarketResponse\x12\x44\n\x05state\x18\x01 \x01(\x0b\x32(.injective.exchange.v2.EffectivePositionB\x04\xc8\xde\x1f\x01R\x05state\">\n\x1fQueryPerpetualMarketInfoRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"h\n QueryPerpetualMarketInfoResponse\x12\x44\n\x04info\x18\x01 \x01(\x0b\x32*.injective.exchange.v2.PerpetualMarketInfoB\x04\xc8\xde\x1f\x00R\x04info\"B\n#QueryExpiryFuturesMarketInfoRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"p\n$QueryExpiryFuturesMarketInfoResponse\x12H\n\x04info\x18\x01 \x01(\x0b\x32..injective.exchange.v2.ExpiryFuturesMarketInfoB\x04\xc8\xde\x1f\x00R\x04info\"A\n\"QueryPerpetualMarketFundingRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"p\n#QueryPerpetualMarketFundingResponse\x12I\n\x05state\x18\x01 \x01(\x0b\x32-.injective.exchange.v2.PerpetualMarketFundingB\x04\xc8\xde\x1f\x00R\x05state\"\x86\x01\n$QuerySubaccountOrderMetadataResponse\x12^\n\x08metadata\x18\x01 \x03(\x0b\x32<.injective.exchange.v2.SubaccountOrderbookMetadataWithMarketB\x04\xc8\xde\x1f\x00R\x08metadata\"9\n!QuerySubaccountTradeNonceResponse\x12\x14\n\x05nonce\x18\x01 \x01(\rR\x05nonce\"\x19\n\x17QueryModuleStateRequest\"U\n\x18QueryModuleStateResponse\x12\x39\n\x05state\x18\x01 \x01(\x0b\x32#.injective.exchange.v2.GenesisStateR\x05state\"\x17\n\x15QueryPositionsRequest\"_\n\x16QueryPositionsResponse\x12\x45\n\x05state\x18\x01 \x03(\x0b\x32).injective.exchange.v2.DerivativePositionB\x04\xc8\xde\x1f\x00R\x05state\"q\n\x1dQueryTradeRewardPointsRequest\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\x12\x34\n\x16pending_pool_timestamp\x18\x02 \x01(\x03R\x14pendingPoolTimestamp\"\x84\x01\n\x1eQueryTradeRewardPointsResponse\x12\x62\n\x1b\x61\x63\x63ount_trade_reward_points\x18\x01 \x03(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x61\x63\x63ountTradeRewardPoints\"!\n\x1fQueryTradeRewardCampaignRequest\"\xee\x04\n QueryTradeRewardCampaignResponse\x12q\n\x1ctrading_reward_campaign_info\x18\x01 \x01(\x0b\x32\x30.injective.exchange.v2.TradingRewardCampaignInfoR\x19tradingRewardCampaignInfo\x12{\n%trading_reward_pool_campaign_schedule\x18\x02 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR!tradingRewardPoolCampaignSchedule\x12^\n\x19total_trade_reward_points\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16totalTradeRewardPoints\x12\x8a\x01\n-pending_trading_reward_pool_campaign_schedule\x18\x04 \x03(\x0b\x32).injective.exchange.v2.CampaignRewardPoolR(pendingTradingRewardPoolCampaignSchedule\x12m\n!pending_total_trade_reward_points\x18\x05 \x03(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1dpendingTotalTradeRewardPoints\";\n\x1fQueryIsOptedOutOfRewardsRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"D\n QueryIsOptedOutOfRewardsResponse\x12 \n\x0cis_opted_out\x18\x01 \x01(\x08R\nisOptedOut\"\'\n%QueryOptedOutOfRewardsAccountsRequest\"D\n&QueryOptedOutOfRewardsAccountsResponse\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\">\n\"QueryFeeDiscountAccountInfoRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n#QueryFeeDiscountAccountInfoResponse\x12\x1d\n\ntier_level\x18\x01 \x01(\x04R\ttierLevel\x12M\n\x0c\x61\x63\x63ount_info\x18\x02 \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountTierInfoR\x0b\x61\x63\x63ountInfo\x12J\n\x0b\x61\x63\x63ount_ttl\x18\x03 \x01(\x0b\x32).injective.exchange.v2.FeeDiscountTierTTLR\naccountTtl\"!\n\x1fQueryFeeDiscountScheduleRequest\"\x82\x01\n QueryFeeDiscountScheduleResponse\x12^\n\x15\x66\x65\x65_discount_schedule\x18\x01 \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountScheduleR\x13\x66\x65\x65\x44iscountSchedule\"@\n\x1dQueryBalanceMismatchesRequest\x12\x1f\n\x0b\x64ust_factor\x18\x01 \x01(\x03R\ndustFactor\"\xa2\x03\n\x0f\x42\x61lanceMismatch\x12\"\n\x0csubaccountId\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x41\n\tavailable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tavailable\x12\x39\n\x05total\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05total\x12\x46\n\x0c\x62\x61lance_hold\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\x12J\n\x0e\x65xpected_total\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\rexpectedTotal\x12\x43\n\ndifference\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\ndifference\"w\n\x1eQueryBalanceMismatchesResponse\x12U\n\x12\x62\x61lance_mismatches\x18\x01 \x03(\x0b\x32&.injective.exchange.v2.BalanceMismatchR\x11\x62\x61lanceMismatches\"%\n#QueryBalanceWithBalanceHoldsRequest\"\x97\x02\n\x15\x42\x61lanceWithMarginHold\x12\"\n\x0csubaccountId\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x41\n\tavailable\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tavailable\x12\x39\n\x05total\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05total\x12\x46\n\x0c\x62\x61lance_hold\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0b\x62\x61lanceHold\"\x91\x01\n$QueryBalanceWithBalanceHoldsResponse\x12i\n\x1a\x62\x61lance_with_balance_holds\x18\x01 \x03(\x0b\x32,.injective.exchange.v2.BalanceWithMarginHoldR\x17\x62\x61lanceWithBalanceHolds\"\'\n%QueryFeeDiscountTierStatisticsRequest\"9\n\rTierStatistic\x12\x12\n\x04tier\x18\x01 \x01(\x04R\x04tier\x12\x14\n\x05\x63ount\x18\x02 \x01(\x04R\x05\x63ount\"n\n&QueryFeeDiscountTierStatisticsResponse\x12\x44\n\nstatistics\x18\x01 \x03(\x0b\x32$.injective.exchange.v2.TierStatisticR\nstatistics\"\x17\n\x15MitoVaultInfosRequest\"\xc4\x01\n\x16MitoVaultInfosResponse\x12)\n\x10master_addresses\x18\x01 \x03(\tR\x0fmasterAddresses\x12\x31\n\x14\x64\x65rivative_addresses\x18\x02 \x03(\tR\x13\x64\x65rivativeAddresses\x12%\n\x0espot_addresses\x18\x03 \x03(\tR\rspotAddresses\x12%\n\x0e\x63w20_addresses\x18\x04 \x03(\tR\rcw20Addresses\"D\n\x1dQueryMarketIDFromVaultRequest\x12#\n\rvault_address\x18\x01 \x01(\tR\x0cvaultAddress\"=\n\x1eQueryMarketIDFromVaultResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"A\n\"QueryHistoricalTradeRecordsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"o\n#QueryHistoricalTradeRecordsResponse\x12H\n\rtrade_records\x18\x01 \x03(\x0b\x32#.injective.exchange.v2.TradeRecordsR\x0ctradeRecords\"\xb7\x01\n\x13TradeHistoryOptions\x12,\n\x12trade_grouping_sec\x18\x01 \x01(\x04R\x10tradeGroupingSec\x12\x17\n\x07max_age\x18\x02 \x01(\x04R\x06maxAge\x12.\n\x13include_raw_history\x18\x04 \x01(\x08R\x11includeRawHistory\x12)\n\x10include_metadata\x18\x05 \x01(\x08R\x0fincludeMetadata\"\x9b\x01\n\x1cQueryMarketVolatilityRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12^\n\x15trade_history_options\x18\x02 \x01(\x0b\x32*.injective.exchange.v2.TradeHistoryOptionsR\x13tradeHistoryOptions\"\xfe\x01\n\x1dQueryMarketVolatilityResponse\x12?\n\nvolatility\x18\x01 \x01(\tB\x1f\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nvolatility\x12W\n\x10history_metadata\x18\x02 \x01(\x0b\x32,.injective.oracle.v1beta1.MetadataStatisticsR\x0fhistoryMetadata\x12\x43\n\x0braw_history\x18\x03 \x03(\x0b\x32\".injective.exchange.v2.TradeRecordR\nrawHistory\"3\n\x19QueryBinaryMarketsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\"b\n\x1aQueryBinaryMarketsResponse\x12\x44\n\x07markets\x18\x01 \x03(\x0b\x32*.injective.exchange.v2.BinaryOptionsMarketR\x07markets\"q\n-QueryTraderDerivativeConditionalOrdersRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\x9e\x03\n!TrimmedDerivativeConditionalOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12;\n\x06margin\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12G\n\x0ctriggerPrice\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctriggerPrice\x12\x1f\n\x05isBuy\x18\x05 \x01(\x08\x42\t\xea\xde\x1f\x05isBuyR\x05isBuy\x12%\n\x07isLimit\x18\x06 \x01(\x08\x42\x0b\xea\xde\x1f\x07isLimitR\x07isLimit\x12\x1d\n\norder_hash\x18\x07 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x08 \x01(\tR\x03\x63id\"\x82\x01\n.QueryTraderDerivativeConditionalOrdersResponse\x12P\n\x06orders\x18\x01 \x03(\x0b\x32\x38.injective.exchange.v2.TrimmedDerivativeConditionalOrderR\x06orders\"<\n\x1dQueryFullSpotOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\x9c\x01\n\x1eQueryFullSpotOrderbookResponse\x12<\n\x04\x42ids\x18\x01 \x03(\x0b\x32(.injective.exchange.v2.TrimmedLimitOrderR\x04\x42ids\x12<\n\x04\x41sks\x18\x02 \x03(\x0b\x32(.injective.exchange.v2.TrimmedLimitOrderR\x04\x41sks\"B\n#QueryFullDerivativeOrderbookRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\xa2\x01\n$QueryFullDerivativeOrderbookResponse\x12<\n\x04\x42ids\x18\x01 \x03(\x0b\x32(.injective.exchange.v2.TrimmedLimitOrderR\x04\x42ids\x12<\n\x04\x41sks\x18\x02 \x03(\x0b\x32(.injective.exchange.v2.TrimmedLimitOrderR\x04\x41sks\"\xd3\x01\n\x11TrimmedLimitOrder\x12\x39\n\x05price\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12?\n\x08quantity\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x1d\n\norder_hash\x18\x03 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\"M\n.QueryMarketAtomicExecutionFeeMultiplierRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"v\n/QueryMarketAtomicExecutionFeeMultiplierResponse\x12\x43\n\nmultiplier\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nmultiplier\"8\n\x1cQueryActiveStakeGrantRequest\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\"\xa9\x01\n\x1dQueryActiveStakeGrantResponse\x12\x38\n\x05grant\x18\x01 \x01(\x0b\x32\".injective.exchange.v2.ActiveGrantR\x05grant\x12N\n\x0f\x65\x66\x66\x65\x63tive_grant\x18\x02 \x01(\x0b\x32%.injective.exchange.v2.EffectiveGrantR\x0e\x65\x66\x66\x65\x63tiveGrant\"T\n\x1eQueryGrantAuthorizationRequest\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x18\n\x07grantee\x18\x02 \x01(\tR\x07grantee\"X\n\x1fQueryGrantAuthorizationResponse\x12\x35\n\x06\x61mount\x18\x01 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\";\n\x1fQueryGrantAuthorizationsRequest\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\"\xb2\x01\n QueryGrantAuthorizationsResponse\x12K\n\x12total_grant_amount\x18\x01 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x10totalGrantAmount\x12\x41\n\x06grants\x18\x02 \x03(\x0b\x32).injective.exchange.v2.GrantAuthorizationR\x06grants*4\n\tOrderSide\x12\x14\n\x10Side_Unspecified\x10\x00\x12\x07\n\x03\x42uy\x10\x01\x12\x08\n\x04Sell\x10\x02*V\n\x14\x43\x61ncellationStrategy\x12\x14\n\x10UnspecifiedOrder\x10\x00\x12\x13\n\x0f\x46romWorstToBest\x10\x01\x12\x13\n\x0f\x46romBestToWorst\x10\x02\x32\xdd\x61\n\x05Query\x12\xd3\x01\n\x15L3DerivativeOrderBook\x12:.injective.exchange.v2.QueryFullDerivativeOrderbookRequest\x1a;.injective.exchange.v2.QueryFullDerivativeOrderbookResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v2/derivative/L3OrderBook/{market_id}\x12\xbb\x01\n\x0fL3SpotOrderBook\x12\x34.injective.exchange.v2.QueryFullSpotOrderbookRequest\x1a\x35.injective.exchange.v2.QueryFullSpotOrderbookResponse\";\x82\xd3\xe4\x93\x02\x35\x12\x33/injective/exchange/v2/spot/L3OrderBook/{market_id}\x12\xab\x01\n\x13QueryExchangeParams\x12\x31.injective.exchange.v2.QueryExchangeParamsRequest\x1a\x32.injective.exchange.v2.QueryExchangeParamsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/injective/exchange/v2/exchangeParams\x12\xbf\x01\n\x12SubaccountDeposits\x12\x35.injective.exchange.v2.QuerySubaccountDepositsRequest\x1a\x36.injective.exchange.v2.QuerySubaccountDepositsResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/exchange/v2/exchange/subaccountDeposits\x12\xbb\x01\n\x11SubaccountDeposit\x12\x34.injective.exchange.v2.QuerySubaccountDepositRequest\x1a\x35.injective.exchange.v2.QuerySubaccountDepositResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v2/exchange/subaccountDeposit\x12\xb7\x01\n\x10\x45xchangeBalances\x12\x33.injective.exchange.v2.QueryExchangeBalancesRequest\x1a\x34.injective.exchange.v2.QueryExchangeBalancesResponse\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/injective/exchange/v2/exchange/exchangeBalances\x12\xbd\x01\n\x0f\x41ggregateVolume\x12\x32.injective.exchange.v2.QueryAggregateVolumeRequest\x1a\x33.injective.exchange.v2.QueryAggregateVolumeResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v2/exchange/aggregateVolume/{account}\x12\xb7\x01\n\x10\x41ggregateVolumes\x12\x33.injective.exchange.v2.QueryAggregateVolumesRequest\x1a\x34.injective.exchange.v2.QueryAggregateVolumesResponse\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/injective/exchange/v2/exchange/aggregateVolumes\x12\xd7\x01\n\x15\x41ggregateMarketVolume\x12\x38.injective.exchange.v2.QueryAggregateMarketVolumeRequest\x1a\x39.injective.exchange.v2.QueryAggregateMarketVolumeResponse\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/injective/exchange/v2/exchange/aggregateMarketVolume/{market_id}\x12\xcf\x01\n\x16\x41ggregateMarketVolumes\x12\x39.injective.exchange.v2.QueryAggregateMarketVolumesRequest\x1a:.injective.exchange.v2.QueryAggregateMarketVolumesResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v2/exchange/aggregateMarketVolumes\x12\xb0\x01\n\x0c\x44\x65nomDecimal\x12/.injective.exchange.v2.QueryDenomDecimalRequest\x1a\x30.injective.exchange.v2.QueryDenomDecimalResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v2/exchange/denom_decimal/{denom}\x12\xac\x01\n\rDenomDecimals\x12\x30.injective.exchange.v2.QueryDenomDecimalsRequest\x1a\x31.injective.exchange.v2.QueryDenomDecimalsResponse\"6\x82\xd3\xe4\x93\x02\x30\x12./injective/exchange/v2/exchange/denom_decimals\x12\x9b\x01\n\x0bSpotMarkets\x12..injective.exchange.v2.QuerySpotMarketsRequest\x1a/.injective.exchange.v2.QuerySpotMarketsResponse\"+\x82\xd3\xe4\x93\x02%\x12#/injective/exchange/v2/spot/markets\x12\xa4\x01\n\nSpotMarket\x12-.injective.exchange.v2.QuerySpotMarketRequest\x1a..injective.exchange.v2.QuerySpotMarketResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v2/spot/markets/{market_id}\x12\xac\x01\n\x0f\x46ullSpotMarkets\x12\x32.injective.exchange.v2.QueryFullSpotMarketsRequest\x1a\x33.injective.exchange.v2.QueryFullSpotMarketsResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/exchange/v2/spot/full_markets\x12\xb4\x01\n\x0e\x46ullSpotMarket\x12\x31.injective.exchange.v2.QueryFullSpotMarketRequest\x1a\x32.injective.exchange.v2.QueryFullSpotMarketResponse\";\x82\xd3\xe4\x93\x02\x35\x12\x33/injective/exchange/v2/spot/full_market/{market_id}\x12\xaf\x01\n\rSpotOrderbook\x12\x30.injective.exchange.v2.QuerySpotOrderbookRequest\x1a\x31.injective.exchange.v2.QuerySpotOrderbookResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v2/spot/orderbook/{market_id}\x12\xc5\x01\n\x10TraderSpotOrders\x12\x33.injective.exchange.v2.QueryTraderSpotOrdersRequest\x1a\x34.injective.exchange.v2.QueryTraderSpotOrdersResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v2/spot/orders/{market_id}/{subaccount_id}\x12\xe7\x01\n\x18\x41\x63\x63ountAddressSpotOrders\x12;.injective.exchange.v2.QueryAccountAddressSpotOrdersRequest\x1a<.injective.exchange.v2.QueryAccountAddressSpotOrdersResponse\"P\x82\xd3\xe4\x93\x02J\x12H/injective/exchange/v2/spot/orders/{market_id}/account/{account_address}\x12\xd5\x01\n\x12SpotOrdersByHashes\x12\x35.injective.exchange.v2.QuerySpotOrdersByHashesRequest\x1a\x36.injective.exchange.v2.QuerySpotOrdersByHashesResponse\"P\x82\xd3\xe4\x93\x02J\x12H/injective/exchange/v2/spot/orders_by_hashes/{market_id}/{subaccount_id}\x12\xb4\x01\n\x10SubaccountOrders\x12\x33.injective.exchange.v2.QuerySubaccountOrdersRequest\x1a\x34.injective.exchange.v2.QuerySubaccountOrdersResponse\"5\x82\xd3\xe4\x93\x02/\x12-/injective/exchange/v2/orders/{subaccount_id}\x12\xd8\x01\n\x19TraderSpotTransientOrders\x12\x33.injective.exchange.v2.QueryTraderSpotOrdersRequest\x1a\x34.injective.exchange.v2.QueryTraderSpotOrdersResponse\"P\x82\xd3\xe4\x93\x02J\x12H/injective/exchange/v2/spot/transient_orders/{market_id}/{subaccount_id}\x12\xc6\x01\n\x12SpotMidPriceAndTOB\x12\x35.injective.exchange.v2.QuerySpotMidPriceAndTOBRequest\x1a\x36.injective.exchange.v2.QuerySpotMidPriceAndTOBResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/injective/exchange/v2/spot/mid_price_and_tob/{market_id}\x12\xde\x01\n\x18\x44\x65rivativeMidPriceAndTOB\x12;.injective.exchange.v2.QueryDerivativeMidPriceAndTOBRequest\x1a<.injective.exchange.v2.QueryDerivativeMidPriceAndTOBResponse\"G\x82\xd3\xe4\x93\x02\x41\x12?/injective/exchange/v2/derivative/mid_price_and_tob/{market_id}\x12\xc7\x01\n\x13\x44\x65rivativeOrderbook\x12\x36.injective.exchange.v2.QueryDerivativeOrderbookRequest\x1a\x37.injective.exchange.v2.QueryDerivativeOrderbookResponse\"?\x82\xd3\xe4\x93\x02\x39\x12\x37/injective/exchange/v2/derivative/orderbook/{market_id}\x12\xdd\x01\n\x16TraderDerivativeOrders\x12\x39.injective.exchange.v2.QueryTraderDerivativeOrdersRequest\x1a:.injective.exchange.v2.QueryTraderDerivativeOrdersResponse\"L\x82\xd3\xe4\x93\x02\x46\x12\x44/injective/exchange/v2/derivative/orders/{market_id}/{subaccount_id}\x12\xff\x01\n\x1e\x41\x63\x63ountAddressDerivativeOrders\x12\x41.injective.exchange.v2.QueryAccountAddressDerivativeOrdersRequest\x1a\x42.injective.exchange.v2.QueryAccountAddressDerivativeOrdersResponse\"V\x82\xd3\xe4\x93\x02P\x12N/injective/exchange/v2/derivative/orders/{market_id}/account/{account_address}\x12\xed\x01\n\x18\x44\x65rivativeOrdersByHashes\x12;.injective.exchange.v2.QueryDerivativeOrdersByHashesRequest\x1a<.injective.exchange.v2.QueryDerivativeOrdersByHashesResponse\"V\x82\xd3\xe4\x93\x02P\x12N/injective/exchange/v2/derivative/orders_by_hashes/{market_id}/{subaccount_id}\x12\xf0\x01\n\x1fTraderDerivativeTransientOrders\x12\x39.injective.exchange.v2.QueryTraderDerivativeOrdersRequest\x1a:.injective.exchange.v2.QueryTraderDerivativeOrdersResponse\"V\x82\xd3\xe4\x93\x02P\x12N/injective/exchange/v2/derivative/transient_orders/{market_id}/{subaccount_id}\x12\xb3\x01\n\x11\x44\x65rivativeMarkets\x12\x34.injective.exchange.v2.QueryDerivativeMarketsRequest\x1a\x35.injective.exchange.v2.QueryDerivativeMarketsResponse\"1\x82\xd3\xe4\x93\x02+\x12)/injective/exchange/v2/derivative/markets\x12\xbc\x01\n\x10\x44\x65rivativeMarket\x12\x33.injective.exchange.v2.QueryDerivativeMarketRequest\x1a\x34.injective.exchange.v2.QueryDerivativeMarketResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v2/derivative/markets/{market_id}\x12\xd8\x01\n\x17\x44\x65rivativeMarketAddress\x12:.injective.exchange.v2.QueryDerivativeMarketAddressRequest\x1a;.injective.exchange.v2.QueryDerivativeMarketAddressResponse\"D\x82\xd3\xe4\x93\x02>\x12.injective.exchange.v2.QuerySubaccountPositionInMarketResponse\"D\x82\xd3\xe4\x93\x02>\x12\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v2/vault_market_id/{vault_address}\x12\xc8\x01\n\x16HistoricalTradeRecords\x12\x39.injective.exchange.v2.QueryHistoricalTradeRecordsRequest\x1a:.injective.exchange.v2.QueryHistoricalTradeRecordsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v2/historical_trade_records\x12\xc8\x01\n\x13IsOptedOutOfRewards\x12\x36.injective.exchange.v2.QueryIsOptedOutOfRewardsRequest\x1a\x37.injective.exchange.v2.QueryIsOptedOutOfRewardsResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/exchange/v2/is_opted_out_of_rewards/{account}\x12\xd6\x01\n\x19OptedOutOfRewardsAccounts\x12<.injective.exchange.v2.QueryOptedOutOfRewardsAccountsRequest\x1a=.injective.exchange.v2.QueryOptedOutOfRewardsAccountsResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v2/opted_out_of_rewards_accounts\x12\xbb\x01\n\x10MarketVolatility\x12\x33.injective.exchange.v2.QueryMarketVolatilityRequest\x1a\x34.injective.exchange.v2.QueryMarketVolatilityResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/exchange/v2/market_volatility/{market_id}\x12\xb2\x01\n\x14\x42inaryOptionsMarkets\x12\x30.injective.exchange.v2.QueryBinaryMarketsRequest\x1a\x31.injective.exchange.v2.QueryBinaryMarketsResponse\"5\x82\xd3\xe4\x93\x02/\x12-/injective/exchange/v2/binary_options/markets\x12\x8a\x02\n!TraderDerivativeConditionalOrders\x12\x44.injective.exchange.v2.QueryTraderDerivativeConditionalOrdersRequest\x1a\x45.injective.exchange.v2.QueryTraderDerivativeConditionalOrdersResponse\"X\x82\xd3\xe4\x93\x02R\x12P/injective/exchange/v2/derivative/orders/conditional/{market_id}/{subaccount_id}\x12\xef\x01\n\"MarketAtomicExecutionFeeMultiplier\x12\x45.injective.exchange.v2.QueryMarketAtomicExecutionFeeMultiplierRequest\x1a\x46.injective.exchange.v2.QueryMarketAtomicExecutionFeeMultiplierResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/exchange/v2/atomic_order_fee_multiplier\x12\xba\x01\n\x10\x41\x63tiveStakeGrant\x12\x33.injective.exchange.v2.QueryActiveStakeGrantRequest\x1a\x34.injective.exchange.v2.QueryActiveStakeGrantResponse\";\x82\xd3\xe4\x93\x02\x35\x12\x33/injective/exchange/v2/active_stake_grant/{grantee}\x12\xcb\x01\n\x12GrantAuthorization\x12\x35.injective.exchange.v2.QueryGrantAuthorizationRequest\x1a\x36.injective.exchange.v2.QueryGrantAuthorizationResponse\"F\x82\xd3\xe4\x93\x02@\x12>/injective/exchange/v2/grant_authorization/{granter}/{grantee}\x12\xc5\x01\n\x13GrantAuthorizations\x12\x36.injective.exchange.v2.QueryGrantAuthorizationsRequest\x1a\x37.injective.exchange.v2.QueryGrantAuthorizationsResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/injective/exchange/v2/grant_authorizations/{granter}B\xf0\x01\n\x19\x63om.injective.exchange.v2B\nQueryProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\nQueryProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_QUERYEXCHANGEPARAMSRESPONSE'].fields_by_name['params']._loaded_options = None + _globals['_QUERYEXCHANGEPARAMSRESPONSE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_QUERYSUBACCOUNTDEPOSITSREQUEST'].fields_by_name['subaccount']._loaded_options = None + _globals['_QUERYSUBACCOUNTDEPOSITSREQUEST'].fields_by_name['subaccount']._serialized_options = b'\310\336\037\001' + _globals['_QUERYSUBACCOUNTDEPOSITSRESPONSE_DEPOSITSENTRY']._loaded_options = None + _globals['_QUERYSUBACCOUNTDEPOSITSRESPONSE_DEPOSITSENTRY']._serialized_options = b'8\001' + _globals['_QUERYEXCHANGEBALANCESRESPONSE'].fields_by_name['balances']._loaded_options = None + _globals['_QUERYEXCHANGEBALANCESRESPONSE'].fields_by_name['balances']._serialized_options = b'\310\336\037\000' + _globals['_QUERYAGGREGATEMARKETVOLUMERESPONSE'].fields_by_name['volume']._loaded_options = None + _globals['_QUERYAGGREGATEMARKETVOLUMERESPONSE'].fields_by_name['volume']._serialized_options = b'\310\336\037\000' + _globals['_QUERYDENOMDECIMALSRESPONSE'].fields_by_name['denom_decimals']._loaded_options = None + _globals['_QUERYDENOMDECIMALSRESPONSE'].fields_by_name['denom_decimals']._serialized_options = b'\310\336\037\000' + _globals['_QUERYSPOTORDERBOOKREQUEST'].fields_by_name['limit_cumulative_notional']._loaded_options = None + _globals['_QUERYSPOTORDERBOOKREQUEST'].fields_by_name['limit_cumulative_notional']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYSPOTORDERBOOKREQUEST'].fields_by_name['limit_cumulative_quantity']._loaded_options = None + _globals['_QUERYSPOTORDERBOOKREQUEST'].fields_by_name['limit_cumulative_quantity']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_FULLSPOTMARKET'].fields_by_name['mid_price_and_tob']._loaded_options = None + _globals['_FULLSPOTMARKET'].fields_by_name['mid_price_and_tob']._serialized_options = b'\310\336\037\001' + _globals['_TRIMMEDSPOTLIMITORDER'].fields_by_name['price']._loaded_options = None + _globals['_TRIMMEDSPOTLIMITORDER'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDSPOTLIMITORDER'].fields_by_name['quantity']._loaded_options = None + _globals['_TRIMMEDSPOTLIMITORDER'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDSPOTLIMITORDER'].fields_by_name['fillable']._loaded_options = None + _globals['_TRIMMEDSPOTLIMITORDER'].fields_by_name['fillable']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE'].fields_by_name['mid_price']._loaded_options = None + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE'].fields_by_name['mid_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE'].fields_by_name['best_buy_price']._loaded_options = None + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE'].fields_by_name['best_buy_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE'].fields_by_name['best_sell_price']._loaded_options = None + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE'].fields_by_name['best_sell_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE'].fields_by_name['mid_price']._loaded_options = None + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE'].fields_by_name['mid_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE'].fields_by_name['best_buy_price']._loaded_options = None + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE'].fields_by_name['best_buy_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE'].fields_by_name['best_sell_price']._loaded_options = None + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE'].fields_by_name['best_sell_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYDERIVATIVEORDERBOOKREQUEST'].fields_by_name['limit_cumulative_notional']._loaded_options = None + _globals['_QUERYDERIVATIVEORDERBOOKREQUEST'].fields_by_name['limit_cumulative_notional']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['base_amount']._loaded_options = None + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['base_amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['quote_amount']._loaded_options = None + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['quote_amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['reference_price']._loaded_options = None + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['reference_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADERDERIVATIVEORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['quote_amount']._loaded_options = None + _globals['_QUERYTRADERDERIVATIVEORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['quote_amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADERDERIVATIVEORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['reference_price']._loaded_options = None + _globals['_QUERYTRADERDERIVATIVEORDERSTOCANCELUPTOAMOUNTREQUEST'].fields_by_name['reference_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['price']._loaded_options = None + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['quantity']._loaded_options = None + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['margin']._loaded_options = None + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['fillable']._loaded_options = None + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['fillable']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['isBuy']._loaded_options = None + _globals['_TRIMMEDDERIVATIVELIMITORDER'].fields_by_name['isBuy']._serialized_options = b'\352\336\037\005isBuy' + _globals['_PRICELEVEL'].fields_by_name['price']._loaded_options = None + _globals['_PRICELEVEL'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_PRICELEVEL'].fields_by_name['quantity']._loaded_options = None + _globals['_PRICELEVEL'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_FULLDERIVATIVEMARKET'].fields_by_name['mark_price']._loaded_options = None + _globals['_FULLDERIVATIVEMARKET'].fields_by_name['mark_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_FULLDERIVATIVEMARKET'].fields_by_name['mid_price_and_tob']._loaded_options = None + _globals['_FULLDERIVATIVEMARKET'].fields_by_name['mid_price_and_tob']._serialized_options = b'\310\336\037\001' + _globals['_QUERYSUBACCOUNTPOSITIONSRESPONSE'].fields_by_name['state']._loaded_options = None + _globals['_QUERYSUBACCOUNTPOSITIONSRESPONSE'].fields_by_name['state']._serialized_options = b'\310\336\037\000' + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETRESPONSE'].fields_by_name['state']._loaded_options = None + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETRESPONSE'].fields_by_name['state']._serialized_options = b'\310\336\037\001' + _globals['_EFFECTIVEPOSITION'].fields_by_name['quantity']._loaded_options = None + _globals['_EFFECTIVEPOSITION'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EFFECTIVEPOSITION'].fields_by_name['entry_price']._loaded_options = None + _globals['_EFFECTIVEPOSITION'].fields_by_name['entry_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EFFECTIVEPOSITION'].fields_by_name['effective_margin']._loaded_options = None + _globals['_EFFECTIVEPOSITION'].fields_by_name['effective_margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETRESPONSE'].fields_by_name['state']._loaded_options = None + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETRESPONSE'].fields_by_name['state']._serialized_options = b'\310\336\037\001' + _globals['_QUERYPERPETUALMARKETINFORESPONSE'].fields_by_name['info']._loaded_options = None + _globals['_QUERYPERPETUALMARKETINFORESPONSE'].fields_by_name['info']._serialized_options = b'\310\336\037\000' + _globals['_QUERYEXPIRYFUTURESMARKETINFORESPONSE'].fields_by_name['info']._loaded_options = None + _globals['_QUERYEXPIRYFUTURESMARKETINFORESPONSE'].fields_by_name['info']._serialized_options = b'\310\336\037\000' + _globals['_QUERYPERPETUALMARKETFUNDINGRESPONSE'].fields_by_name['state']._loaded_options = None + _globals['_QUERYPERPETUALMARKETFUNDINGRESPONSE'].fields_by_name['state']._serialized_options = b'\310\336\037\000' + _globals['_QUERYSUBACCOUNTORDERMETADATARESPONSE'].fields_by_name['metadata']._loaded_options = None + _globals['_QUERYSUBACCOUNTORDERMETADATARESPONSE'].fields_by_name['metadata']._serialized_options = b'\310\336\037\000' + _globals['_QUERYPOSITIONSRESPONSE'].fields_by_name['state']._loaded_options = None + _globals['_QUERYPOSITIONSRESPONSE'].fields_by_name['state']._serialized_options = b'\310\336\037\000' + _globals['_QUERYTRADEREWARDPOINTSRESPONSE'].fields_by_name['account_trade_reward_points']._loaded_options = None + _globals['_QUERYTRADEREWARDPOINTSRESPONSE'].fields_by_name['account_trade_reward_points']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE'].fields_by_name['total_trade_reward_points']._loaded_options = None + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE'].fields_by_name['total_trade_reward_points']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE'].fields_by_name['pending_total_trade_reward_points']._loaded_options = None + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE'].fields_by_name['pending_total_trade_reward_points']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEMISMATCH'].fields_by_name['available']._loaded_options = None + _globals['_BALANCEMISMATCH'].fields_by_name['available']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEMISMATCH'].fields_by_name['total']._loaded_options = None + _globals['_BALANCEMISMATCH'].fields_by_name['total']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEMISMATCH'].fields_by_name['balance_hold']._loaded_options = None + _globals['_BALANCEMISMATCH'].fields_by_name['balance_hold']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEMISMATCH'].fields_by_name['expected_total']._loaded_options = None + _globals['_BALANCEMISMATCH'].fields_by_name['expected_total']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEMISMATCH'].fields_by_name['difference']._loaded_options = None + _globals['_BALANCEMISMATCH'].fields_by_name['difference']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEWITHMARGINHOLD'].fields_by_name['available']._loaded_options = None + _globals['_BALANCEWITHMARGINHOLD'].fields_by_name['available']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEWITHMARGINHOLD'].fields_by_name['total']._loaded_options = None + _globals['_BALANCEWITHMARGINHOLD'].fields_by_name['total']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_BALANCEWITHMARGINHOLD'].fields_by_name['balance_hold']._loaded_options = None + _globals['_BALANCEWITHMARGINHOLD'].fields_by_name['balance_hold']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYMARKETVOLATILITYRESPONSE'].fields_by_name['volatility']._loaded_options = None + _globals['_QUERYMARKETVOLATILITYRESPONSE'].fields_by_name['volatility']._serialized_options = b'\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['price']._loaded_options = None + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['quantity']._loaded_options = None + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['margin']._loaded_options = None + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['triggerPrice']._loaded_options = None + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['triggerPrice']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isBuy']._loaded_options = None + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isBuy']._serialized_options = b'\352\336\037\005isBuy' + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isLimit']._loaded_options = None + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER'].fields_by_name['isLimit']._serialized_options = b'\352\336\037\007isLimit' + _globals['_TRIMMEDLIMITORDER'].fields_by_name['price']._loaded_options = None + _globals['_TRIMMEDLIMITORDER'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_TRIMMEDLIMITORDER'].fields_by_name['quantity']._loaded_options = None + _globals['_TRIMMEDLIMITORDER'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE'].fields_by_name['multiplier']._loaded_options = None + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE'].fields_by_name['multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE'].fields_by_name['amount']._loaded_options = None + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE'].fields_by_name['total_grant_amount']._loaded_options = None + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE'].fields_by_name['total_grant_amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_QUERY'].methods_by_name['L3DerivativeOrderBook']._loaded_options = None + _globals['_QUERY'].methods_by_name['L3DerivativeOrderBook']._serialized_options = b'\202\323\344\223\002;\0229/injective/exchange/v2/derivative/L3OrderBook/{market_id}' + _globals['_QUERY'].methods_by_name['L3SpotOrderBook']._loaded_options = None + _globals['_QUERY'].methods_by_name['L3SpotOrderBook']._serialized_options = b'\202\323\344\223\0025\0223/injective/exchange/v2/spot/L3OrderBook/{market_id}' + _globals['_QUERY'].methods_by_name['QueryExchangeParams']._loaded_options = None + _globals['_QUERY'].methods_by_name['QueryExchangeParams']._serialized_options = b'\202\323\344\223\002\'\022%/injective/exchange/v2/exchangeParams' + _globals['_QUERY'].methods_by_name['SubaccountDeposits']._loaded_options = None + _globals['_QUERY'].methods_by_name['SubaccountDeposits']._serialized_options = b'\202\323\344\223\0024\0222/injective/exchange/v2/exchange/subaccountDeposits' + _globals['_QUERY'].methods_by_name['SubaccountDeposit']._loaded_options = None + _globals['_QUERY'].methods_by_name['SubaccountDeposit']._serialized_options = b'\202\323\344\223\0023\0221/injective/exchange/v2/exchange/subaccountDeposit' + _globals['_QUERY'].methods_by_name['ExchangeBalances']._loaded_options = None + _globals['_QUERY'].methods_by_name['ExchangeBalances']._serialized_options = b'\202\323\344\223\0022\0220/injective/exchange/v2/exchange/exchangeBalances' + _globals['_QUERY'].methods_by_name['AggregateVolume']._loaded_options = None + _globals['_QUERY'].methods_by_name['AggregateVolume']._serialized_options = b'\202\323\344\223\002;\0229/injective/exchange/v2/exchange/aggregateVolume/{account}' + _globals['_QUERY'].methods_by_name['AggregateVolumes']._loaded_options = None + _globals['_QUERY'].methods_by_name['AggregateVolumes']._serialized_options = b'\202\323\344\223\0022\0220/injective/exchange/v2/exchange/aggregateVolumes' + _globals['_QUERY'].methods_by_name['AggregateMarketVolume']._loaded_options = None + _globals['_QUERY'].methods_by_name['AggregateMarketVolume']._serialized_options = b'\202\323\344\223\002C\022A/injective/exchange/v2/exchange/aggregateMarketVolume/{market_id}' + _globals['_QUERY'].methods_by_name['AggregateMarketVolumes']._loaded_options = None + _globals['_QUERY'].methods_by_name['AggregateMarketVolumes']._serialized_options = b'\202\323\344\223\0028\0226/injective/exchange/v2/exchange/aggregateMarketVolumes' + _globals['_QUERY'].methods_by_name['DenomDecimal']._loaded_options = None + _globals['_QUERY'].methods_by_name['DenomDecimal']._serialized_options = b'\202\323\344\223\0027\0225/injective/exchange/v2/exchange/denom_decimal/{denom}' + _globals['_QUERY'].methods_by_name['DenomDecimals']._loaded_options = None + _globals['_QUERY'].methods_by_name['DenomDecimals']._serialized_options = b'\202\323\344\223\0020\022./injective/exchange/v2/exchange/denom_decimals' + _globals['_QUERY'].methods_by_name['SpotMarkets']._loaded_options = None + _globals['_QUERY'].methods_by_name['SpotMarkets']._serialized_options = b'\202\323\344\223\002%\022#/injective/exchange/v2/spot/markets' + _globals['_QUERY'].methods_by_name['SpotMarket']._loaded_options = None + _globals['_QUERY'].methods_by_name['SpotMarket']._serialized_options = b'\202\323\344\223\0021\022//injective/exchange/v2/spot/markets/{market_id}' + _globals['_QUERY'].methods_by_name['FullSpotMarkets']._loaded_options = None + _globals['_QUERY'].methods_by_name['FullSpotMarkets']._serialized_options = b'\202\323\344\223\002*\022(/injective/exchange/v2/spot/full_markets' + _globals['_QUERY'].methods_by_name['FullSpotMarket']._loaded_options = None + _globals['_QUERY'].methods_by_name['FullSpotMarket']._serialized_options = b'\202\323\344\223\0025\0223/injective/exchange/v2/spot/full_market/{market_id}' + _globals['_QUERY'].methods_by_name['SpotOrderbook']._loaded_options = None + _globals['_QUERY'].methods_by_name['SpotOrderbook']._serialized_options = b'\202\323\344\223\0023\0221/injective/exchange/v2/spot/orderbook/{market_id}' + _globals['_QUERY'].methods_by_name['TraderSpotOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraderSpotOrders']._serialized_options = b'\202\323\344\223\002@\022>/injective/exchange/v2/spot/orders/{market_id}/{subaccount_id}' + _globals['_QUERY'].methods_by_name['AccountAddressSpotOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['AccountAddressSpotOrders']._serialized_options = b'\202\323\344\223\002J\022H/injective/exchange/v2/spot/orders/{market_id}/account/{account_address}' + _globals['_QUERY'].methods_by_name['SpotOrdersByHashes']._loaded_options = None + _globals['_QUERY'].methods_by_name['SpotOrdersByHashes']._serialized_options = b'\202\323\344\223\002J\022H/injective/exchange/v2/spot/orders_by_hashes/{market_id}/{subaccount_id}' + _globals['_QUERY'].methods_by_name['SubaccountOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['SubaccountOrders']._serialized_options = b'\202\323\344\223\002/\022-/injective/exchange/v2/orders/{subaccount_id}' + _globals['_QUERY'].methods_by_name['TraderSpotTransientOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraderSpotTransientOrders']._serialized_options = b'\202\323\344\223\002J\022H/injective/exchange/v2/spot/transient_orders/{market_id}/{subaccount_id}' + _globals['_QUERY'].methods_by_name['SpotMidPriceAndTOB']._loaded_options = None + _globals['_QUERY'].methods_by_name['SpotMidPriceAndTOB']._serialized_options = b'\202\323\344\223\002;\0229/injective/exchange/v2/spot/mid_price_and_tob/{market_id}' + _globals['_QUERY'].methods_by_name['DerivativeMidPriceAndTOB']._loaded_options = None + _globals['_QUERY'].methods_by_name['DerivativeMidPriceAndTOB']._serialized_options = b'\202\323\344\223\002A\022?/injective/exchange/v2/derivative/mid_price_and_tob/{market_id}' + _globals['_QUERY'].methods_by_name['DerivativeOrderbook']._loaded_options = None + _globals['_QUERY'].methods_by_name['DerivativeOrderbook']._serialized_options = b'\202\323\344\223\0029\0227/injective/exchange/v2/derivative/orderbook/{market_id}' + _globals['_QUERY'].methods_by_name['TraderDerivativeOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraderDerivativeOrders']._serialized_options = b'\202\323\344\223\002F\022D/injective/exchange/v2/derivative/orders/{market_id}/{subaccount_id}' + _globals['_QUERY'].methods_by_name['AccountAddressDerivativeOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['AccountAddressDerivativeOrders']._serialized_options = b'\202\323\344\223\002P\022N/injective/exchange/v2/derivative/orders/{market_id}/account/{account_address}' + _globals['_QUERY'].methods_by_name['DerivativeOrdersByHashes']._loaded_options = None + _globals['_QUERY'].methods_by_name['DerivativeOrdersByHashes']._serialized_options = b'\202\323\344\223\002P\022N/injective/exchange/v2/derivative/orders_by_hashes/{market_id}/{subaccount_id}' + _globals['_QUERY'].methods_by_name['TraderDerivativeTransientOrders']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraderDerivativeTransientOrders']._serialized_options = b'\202\323\344\223\002P\022N/injective/exchange/v2/derivative/transient_orders/{market_id}/{subaccount_id}' + _globals['_QUERY'].methods_by_name['DerivativeMarkets']._loaded_options = None + _globals['_QUERY'].methods_by_name['DerivativeMarkets']._serialized_options = b'\202\323\344\223\002+\022)/injective/exchange/v2/derivative/markets' + _globals['_QUERY'].methods_by_name['DerivativeMarket']._loaded_options = None + _globals['_QUERY'].methods_by_name['DerivativeMarket']._serialized_options = b'\202\323\344\223\0027\0225/injective/exchange/v2/derivative/markets/{market_id}' + _globals['_QUERY'].methods_by_name['DerivativeMarketAddress']._loaded_options = None + _globals['_QUERY'].methods_by_name['DerivativeMarketAddress']._serialized_options = b'\202\323\344\223\002>\022\022/injective/exchange/v2/grant_authorization/{granter}/{grantee}' + _globals['_QUERY'].methods_by_name['GrantAuthorizations']._loaded_options = None + _globals['_QUERY'].methods_by_name['GrantAuthorizations']._serialized_options = b'\202\323\344\223\0027\0225/injective/exchange/v2/grant_authorizations/{granter}' + _globals['_ORDERSIDE']._serialized_start=17706 + _globals['_ORDERSIDE']._serialized_end=17758 + _globals['_CANCELLATIONSTRATEGY']._serialized_start=17760 + _globals['_CANCELLATIONSTRATEGY']._serialized_end=17846 + _globals['_SUBACCOUNT']._serialized_start=301 + _globals['_SUBACCOUNT']._serialized_end=380 + _globals['_QUERYSUBACCOUNTORDERSREQUEST']._serialized_start=382 + _globals['_QUERYSUBACCOUNTORDERSREQUEST']._serialized_end=478 + _globals['_QUERYSUBACCOUNTORDERSRESPONSE']._serialized_start=481 + _globals['_QUERYSUBACCOUNTORDERSRESPONSE']._serialized_end=664 + _globals['_SUBACCOUNTORDERBOOKMETADATAWITHMARKET']._serialized_start=667 + _globals['_SUBACCOUNTORDERBOOKMETADATAWITHMARKET']._serialized_end=837 + _globals['_QUERYEXCHANGEPARAMSREQUEST']._serialized_start=839 + _globals['_QUERYEXCHANGEPARAMSREQUEST']._serialized_end=867 + _globals['_QUERYEXCHANGEPARAMSRESPONSE']._serialized_start=869 + _globals['_QUERYEXCHANGEPARAMSRESPONSE']._serialized_end=959 + _globals['_QUERYSUBACCOUNTDEPOSITSREQUEST']._serialized_start=962 + _globals['_QUERYSUBACCOUNTDEPOSITSREQUEST']._serialized_end=1104 + _globals['_QUERYSUBACCOUNTDEPOSITSRESPONSE']._serialized_start=1107 + _globals['_QUERYSUBACCOUNTDEPOSITSRESPONSE']._serialized_end=1331 + _globals['_QUERYSUBACCOUNTDEPOSITSRESPONSE_DEPOSITSENTRY']._serialized_start=1240 + _globals['_QUERYSUBACCOUNTDEPOSITSRESPONSE_DEPOSITSENTRY']._serialized_end=1331 + _globals['_QUERYEXCHANGEBALANCESREQUEST']._serialized_start=1333 + _globals['_QUERYEXCHANGEBALANCESREQUEST']._serialized_end=1363 + _globals['_QUERYEXCHANGEBALANCESRESPONSE']._serialized_start=1365 + _globals['_QUERYEXCHANGEBALANCESRESPONSE']._serialized_end=1462 + _globals['_QUERYAGGREGATEVOLUMEREQUEST']._serialized_start=1464 + _globals['_QUERYAGGREGATEVOLUMEREQUEST']._serialized_end=1519 + _globals['_QUERYAGGREGATEVOLUMERESPONSE']._serialized_start=1521 + _globals['_QUERYAGGREGATEVOLUMERESPONSE']._serialized_end=1633 + _globals['_QUERYAGGREGATEVOLUMESREQUEST']._serialized_start=1635 + _globals['_QUERYAGGREGATEVOLUMESREQUEST']._serialized_end=1724 + _globals['_QUERYAGGREGATEVOLUMESRESPONSE']._serialized_start=1727 + _globals['_QUERYAGGREGATEVOLUMESRESPONSE']._serialized_end=1966 + _globals['_QUERYAGGREGATEMARKETVOLUMEREQUEST']._serialized_start=1968 + _globals['_QUERYAGGREGATEMARKETVOLUMEREQUEST']._serialized_end=2032 + _globals['_QUERYAGGREGATEMARKETVOLUMERESPONSE']._serialized_start=2034 + _globals['_QUERYAGGREGATEMARKETVOLUMERESPONSE']._serialized_end=2137 + _globals['_QUERYDENOMDECIMALREQUEST']._serialized_start=2139 + _globals['_QUERYDENOMDECIMALREQUEST']._serialized_end=2187 + _globals['_QUERYDENOMDECIMALRESPONSE']._serialized_start=2189 + _globals['_QUERYDENOMDECIMALRESPONSE']._serialized_end=2242 + _globals['_QUERYDENOMDECIMALSREQUEST']._serialized_start=2244 + _globals['_QUERYDENOMDECIMALSREQUEST']._serialized_end=2295 + _globals['_QUERYDENOMDECIMALSRESPONSE']._serialized_start=2297 + _globals['_QUERYDENOMDECIMALSRESPONSE']._serialized_end=2408 + _globals['_QUERYAGGREGATEMARKETVOLUMESREQUEST']._serialized_start=2410 + _globals['_QUERYAGGREGATEMARKETVOLUMESREQUEST']._serialized_end=2477 + _globals['_QUERYAGGREGATEMARKETVOLUMESRESPONSE']._serialized_start=2479 + _globals['_QUERYAGGREGATEMARKETVOLUMESRESPONSE']._serialized_end=2579 + _globals['_QUERYSUBACCOUNTDEPOSITREQUEST']._serialized_start=2581 + _globals['_QUERYSUBACCOUNTDEPOSITREQUEST']._serialized_end=2671 + _globals['_QUERYSUBACCOUNTDEPOSITRESPONSE']._serialized_start=2673 + _globals['_QUERYSUBACCOUNTDEPOSITRESPONSE']._serialized_end=2765 + _globals['_QUERYSPOTMARKETSREQUEST']._serialized_start=2767 + _globals['_QUERYSPOTMARKETSREQUEST']._serialized_end=2847 + _globals['_QUERYSPOTMARKETSRESPONSE']._serialized_start=2849 + _globals['_QUERYSPOTMARKETSRESPONSE']._serialized_end=2936 + _globals['_QUERYSPOTMARKETREQUEST']._serialized_start=2938 + _globals['_QUERYSPOTMARKETREQUEST']._serialized_end=2991 + _globals['_QUERYSPOTMARKETRESPONSE']._serialized_start=2993 + _globals['_QUERYSPOTMARKETRESPONSE']._serialized_end=3077 + _globals['_QUERYSPOTORDERBOOKREQUEST']._serialized_start=3080 + _globals['_QUERYSPOTORDERBOOKREQUEST']._serialized_end=3417 + _globals['_QUERYSPOTORDERBOOKRESPONSE']._serialized_start=3420 + _globals['_QUERYSPOTORDERBOOKRESPONSE']._serialized_end=3594 + _globals['_FULLSPOTMARKET']._serialized_start=3597 + _globals['_FULLSPOTMARKET']._serialized_end=3760 + _globals['_QUERYFULLSPOTMARKETSREQUEST']._serialized_start=3763 + _globals['_QUERYFULLSPOTMARKETSREQUEST']._serialized_end=3899 + _globals['_QUERYFULLSPOTMARKETSRESPONSE']._serialized_start=3901 + _globals['_QUERYFULLSPOTMARKETSRESPONSE']._serialized_end=3996 + _globals['_QUERYFULLSPOTMARKETREQUEST']._serialized_start=3998 + _globals['_QUERYFULLSPOTMARKETREQUEST']._serialized_end=4107 + _globals['_QUERYFULLSPOTMARKETRESPONSE']._serialized_start=4109 + _globals['_QUERYFULLSPOTMARKETRESPONSE']._serialized_end=4201 + _globals['_QUERYSPOTORDERSBYHASHESREQUEST']._serialized_start=4204 + _globals['_QUERYSPOTORDERSBYHASHESREQUEST']._serialized_end=4337 + _globals['_QUERYSPOTORDERSBYHASHESRESPONSE']._serialized_start=4339 + _globals['_QUERYSPOTORDERSBYHASHESRESPONSE']._serialized_end=4442 + _globals['_QUERYTRADERSPOTORDERSREQUEST']._serialized_start=4444 + _globals['_QUERYTRADERSPOTORDERSREQUEST']._serialized_end=4540 + _globals['_QUERYACCOUNTADDRESSSPOTORDERSREQUEST']._serialized_start=4542 + _globals['_QUERYACCOUNTADDRESSSPOTORDERSREQUEST']._serialized_end=4650 + _globals['_TRIMMEDSPOTLIMITORDER']._serialized_start=4653 + _globals['_TRIMMEDSPOTLIMITORDER']._serialized_end=4936 + _globals['_QUERYTRADERSPOTORDERSRESPONSE']._serialized_start=4938 + _globals['_QUERYTRADERSPOTORDERSRESPONSE']._serialized_end=5039 + _globals['_QUERYACCOUNTADDRESSSPOTORDERSRESPONSE']._serialized_start=5041 + _globals['_QUERYACCOUNTADDRESSSPOTORDERSRESPONSE']._serialized_end=5150 + _globals['_QUERYSPOTMIDPRICEANDTOBREQUEST']._serialized_start=5152 + _globals['_QUERYSPOTMIDPRICEANDTOBREQUEST']._serialized_end=5213 + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE']._serialized_start=5216 + _globals['_QUERYSPOTMIDPRICEANDTOBRESPONSE']._serialized_end=5467 + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBREQUEST']._serialized_start=5469 + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBREQUEST']._serialized_end=5536 + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE']._serialized_start=5539 + _globals['_QUERYDERIVATIVEMIDPRICEANDTOBRESPONSE']._serialized_end=5796 + _globals['_QUERYDERIVATIVEORDERBOOKREQUEST']._serialized_start=5799 + _globals['_QUERYDERIVATIVEORDERBOOKREQUEST']._serialized_end=5980 + _globals['_QUERYDERIVATIVEORDERBOOKRESPONSE']._serialized_start=5983 + _globals['_QUERYDERIVATIVEORDERBOOKRESPONSE']._serialized_end=6163 + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST']._serialized_start=6166 + _globals['_QUERYTRADERSPOTORDERSTOCANCELUPTOAMOUNTREQUEST']._serialized_end=6573 + _globals['_QUERYTRADERDERIVATIVEORDERSTOCANCELUPTOAMOUNTREQUEST']._serialized_start=6576 + _globals['_QUERYTRADERDERIVATIVEORDERSTOCANCELUPTOAMOUNTREQUEST']._serialized_end=6919 + _globals['_QUERYTRADERDERIVATIVEORDERSREQUEST']._serialized_start=6921 + _globals['_QUERYTRADERDERIVATIVEORDERSREQUEST']._serialized_end=7023 + _globals['_QUERYACCOUNTADDRESSDERIVATIVEORDERSREQUEST']._serialized_start=7025 + _globals['_QUERYACCOUNTADDRESSDERIVATIVEORDERSREQUEST']._serialized_end=7139 + _globals['_TRIMMEDDERIVATIVELIMITORDER']._serialized_start=7142 + _globals['_TRIMMEDDERIVATIVELIMITORDER']._serialized_end=7503 + _globals['_QUERYTRADERDERIVATIVEORDERSRESPONSE']._serialized_start=7505 + _globals['_QUERYTRADERDERIVATIVEORDERSRESPONSE']._serialized_end=7618 + _globals['_QUERYACCOUNTADDRESSDERIVATIVEORDERSRESPONSE']._serialized_start=7620 + _globals['_QUERYACCOUNTADDRESSDERIVATIVEORDERSRESPONSE']._serialized_end=7741 + _globals['_QUERYDERIVATIVEORDERSBYHASHESREQUEST']._serialized_start=7744 + _globals['_QUERYDERIVATIVEORDERSBYHASHESREQUEST']._serialized_end=7883 + _globals['_QUERYDERIVATIVEORDERSBYHASHESRESPONSE']._serialized_start=7885 + _globals['_QUERYDERIVATIVEORDERSBYHASHESRESPONSE']._serialized_end=8000 + _globals['_QUERYDERIVATIVEMARKETSREQUEST']._serialized_start=8003 + _globals['_QUERYDERIVATIVEMARKETSREQUEST']._serialized_end=8141 + _globals['_PRICELEVEL']._serialized_start=8144 + _globals['_PRICELEVEL']._serialized_end=8280 + _globals['_PERPETUALMARKETSTATE']._serialized_start=8283 + _globals['_PERPETUALMARKETSTATE']._serialized_end=8464 + _globals['_FULLDERIVATIVEMARKET']._serialized_start=8467 + _globals['_FULLDERIVATIVEMARKET']._serialized_end=8889 + _globals['_QUERYDERIVATIVEMARKETSRESPONSE']._serialized_start=8891 + _globals['_QUERYDERIVATIVEMARKETSRESPONSE']._serialized_end=8994 + _globals['_QUERYDERIVATIVEMARKETREQUEST']._serialized_start=8996 + _globals['_QUERYDERIVATIVEMARKETREQUEST']._serialized_end=9055 + _globals['_QUERYDERIVATIVEMARKETRESPONSE']._serialized_start=9057 + _globals['_QUERYDERIVATIVEMARKETRESPONSE']._serialized_end=9157 + _globals['_QUERYDERIVATIVEMARKETADDRESSREQUEST']._serialized_start=9159 + _globals['_QUERYDERIVATIVEMARKETADDRESSREQUEST']._serialized_end=9225 + _globals['_QUERYDERIVATIVEMARKETADDRESSRESPONSE']._serialized_start=9227 + _globals['_QUERYDERIVATIVEMARKETADDRESSRESPONSE']._serialized_end=9328 + _globals['_QUERYSUBACCOUNTTRADENONCEREQUEST']._serialized_start=9330 + _globals['_QUERYSUBACCOUNTTRADENONCEREQUEST']._serialized_end=9401 + _globals['_QUERYSUBACCOUNTPOSITIONSREQUEST']._serialized_start=9403 + _globals['_QUERYSUBACCOUNTPOSITIONSREQUEST']._serialized_end=9473 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETREQUEST']._serialized_start=9475 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETREQUEST']._serialized_end=9581 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETREQUEST']._serialized_start=9583 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETREQUEST']._serialized_end=9698 + _globals['_QUERYSUBACCOUNTORDERMETADATAREQUEST']._serialized_start=9700 + _globals['_QUERYSUBACCOUNTORDERMETADATAREQUEST']._serialized_end=9774 + _globals['_QUERYSUBACCOUNTPOSITIONSRESPONSE']._serialized_start=9776 + _globals['_QUERYSUBACCOUNTPOSITIONSRESPONSE']._serialized_end=9881 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETRESPONSE']._serialized_start=9883 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETRESPONSE']._serialized_end=9985 + _globals['_EFFECTIVEPOSITION']._serialized_start=9988 + _globals['_EFFECTIVEPOSITION']._serialized_end=10247 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETRESPONSE']._serialized_start=10249 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETRESPONSE']._serialized_end=10369 + _globals['_QUERYPERPETUALMARKETINFOREQUEST']._serialized_start=10371 + _globals['_QUERYPERPETUALMARKETINFOREQUEST']._serialized_end=10433 + _globals['_QUERYPERPETUALMARKETINFORESPONSE']._serialized_start=10435 + _globals['_QUERYPERPETUALMARKETINFORESPONSE']._serialized_end=10539 + _globals['_QUERYEXPIRYFUTURESMARKETINFOREQUEST']._serialized_start=10541 + _globals['_QUERYEXPIRYFUTURESMARKETINFOREQUEST']._serialized_end=10607 + _globals['_QUERYEXPIRYFUTURESMARKETINFORESPONSE']._serialized_start=10609 + _globals['_QUERYEXPIRYFUTURESMARKETINFORESPONSE']._serialized_end=10721 + _globals['_QUERYPERPETUALMARKETFUNDINGREQUEST']._serialized_start=10723 + _globals['_QUERYPERPETUALMARKETFUNDINGREQUEST']._serialized_end=10788 + _globals['_QUERYPERPETUALMARKETFUNDINGRESPONSE']._serialized_start=10790 + _globals['_QUERYPERPETUALMARKETFUNDINGRESPONSE']._serialized_end=10902 + _globals['_QUERYSUBACCOUNTORDERMETADATARESPONSE']._serialized_start=10905 + _globals['_QUERYSUBACCOUNTORDERMETADATARESPONSE']._serialized_end=11039 + _globals['_QUERYSUBACCOUNTTRADENONCERESPONSE']._serialized_start=11041 + _globals['_QUERYSUBACCOUNTTRADENONCERESPONSE']._serialized_end=11098 + _globals['_QUERYMODULESTATEREQUEST']._serialized_start=11100 + _globals['_QUERYMODULESTATEREQUEST']._serialized_end=11125 + _globals['_QUERYMODULESTATERESPONSE']._serialized_start=11127 + _globals['_QUERYMODULESTATERESPONSE']._serialized_end=11212 + _globals['_QUERYPOSITIONSREQUEST']._serialized_start=11214 + _globals['_QUERYPOSITIONSREQUEST']._serialized_end=11237 + _globals['_QUERYPOSITIONSRESPONSE']._serialized_start=11239 + _globals['_QUERYPOSITIONSRESPONSE']._serialized_end=11334 + _globals['_QUERYTRADEREWARDPOINTSREQUEST']._serialized_start=11336 + _globals['_QUERYTRADEREWARDPOINTSREQUEST']._serialized_end=11449 + _globals['_QUERYTRADEREWARDPOINTSRESPONSE']._serialized_start=11452 + _globals['_QUERYTRADEREWARDPOINTSRESPONSE']._serialized_end=11584 + _globals['_QUERYTRADEREWARDCAMPAIGNREQUEST']._serialized_start=11586 + _globals['_QUERYTRADEREWARDCAMPAIGNREQUEST']._serialized_end=11619 + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE']._serialized_start=11622 + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE']._serialized_end=12244 + _globals['_QUERYISOPTEDOUTOFREWARDSREQUEST']._serialized_start=12246 + _globals['_QUERYISOPTEDOUTOFREWARDSREQUEST']._serialized_end=12305 + _globals['_QUERYISOPTEDOUTOFREWARDSRESPONSE']._serialized_start=12307 + _globals['_QUERYISOPTEDOUTOFREWARDSRESPONSE']._serialized_end=12375 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSREQUEST']._serialized_start=12377 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSREQUEST']._serialized_end=12416 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSRESPONSE']._serialized_start=12418 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSRESPONSE']._serialized_end=12486 + _globals['_QUERYFEEDISCOUNTACCOUNTINFOREQUEST']._serialized_start=12488 + _globals['_QUERYFEEDISCOUNTACCOUNTINFOREQUEST']._serialized_end=12550 + _globals['_QUERYFEEDISCOUNTACCOUNTINFORESPONSE']._serialized_start=12553 + _globals['_QUERYFEEDISCOUNTACCOUNTINFORESPONSE']._serialized_end=12776 + _globals['_QUERYFEEDISCOUNTSCHEDULEREQUEST']._serialized_start=12778 + _globals['_QUERYFEEDISCOUNTSCHEDULEREQUEST']._serialized_end=12811 + _globals['_QUERYFEEDISCOUNTSCHEDULERESPONSE']._serialized_start=12814 + _globals['_QUERYFEEDISCOUNTSCHEDULERESPONSE']._serialized_end=12944 + _globals['_QUERYBALANCEMISMATCHESREQUEST']._serialized_start=12946 + _globals['_QUERYBALANCEMISMATCHESREQUEST']._serialized_end=13010 + _globals['_BALANCEMISMATCH']._serialized_start=13013 + _globals['_BALANCEMISMATCH']._serialized_end=13431 + _globals['_QUERYBALANCEMISMATCHESRESPONSE']._serialized_start=13433 + _globals['_QUERYBALANCEMISMATCHESRESPONSE']._serialized_end=13552 + _globals['_QUERYBALANCEWITHBALANCEHOLDSREQUEST']._serialized_start=13554 + _globals['_QUERYBALANCEWITHBALANCEHOLDSREQUEST']._serialized_end=13591 + _globals['_BALANCEWITHMARGINHOLD']._serialized_start=13594 + _globals['_BALANCEWITHMARGINHOLD']._serialized_end=13873 + _globals['_QUERYBALANCEWITHBALANCEHOLDSRESPONSE']._serialized_start=13876 + _globals['_QUERYBALANCEWITHBALANCEHOLDSRESPONSE']._serialized_end=14021 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSREQUEST']._serialized_start=14023 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSREQUEST']._serialized_end=14062 + _globals['_TIERSTATISTIC']._serialized_start=14064 + _globals['_TIERSTATISTIC']._serialized_end=14121 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSRESPONSE']._serialized_start=14123 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSRESPONSE']._serialized_end=14233 + _globals['_MITOVAULTINFOSREQUEST']._serialized_start=14235 + _globals['_MITOVAULTINFOSREQUEST']._serialized_end=14258 + _globals['_MITOVAULTINFOSRESPONSE']._serialized_start=14261 + _globals['_MITOVAULTINFOSRESPONSE']._serialized_end=14457 + _globals['_QUERYMARKETIDFROMVAULTREQUEST']._serialized_start=14459 + _globals['_QUERYMARKETIDFROMVAULTREQUEST']._serialized_end=14527 + _globals['_QUERYMARKETIDFROMVAULTRESPONSE']._serialized_start=14529 + _globals['_QUERYMARKETIDFROMVAULTRESPONSE']._serialized_end=14590 + _globals['_QUERYHISTORICALTRADERECORDSREQUEST']._serialized_start=14592 + _globals['_QUERYHISTORICALTRADERECORDSREQUEST']._serialized_end=14657 + _globals['_QUERYHISTORICALTRADERECORDSRESPONSE']._serialized_start=14659 + _globals['_QUERYHISTORICALTRADERECORDSRESPONSE']._serialized_end=14770 + _globals['_TRADEHISTORYOPTIONS']._serialized_start=14773 + _globals['_TRADEHISTORYOPTIONS']._serialized_end=14956 + _globals['_QUERYMARKETVOLATILITYREQUEST']._serialized_start=14959 + _globals['_QUERYMARKETVOLATILITYREQUEST']._serialized_end=15114 + _globals['_QUERYMARKETVOLATILITYRESPONSE']._serialized_start=15117 + _globals['_QUERYMARKETVOLATILITYRESPONSE']._serialized_end=15371 + _globals['_QUERYBINARYMARKETSREQUEST']._serialized_start=15373 + _globals['_QUERYBINARYMARKETSREQUEST']._serialized_end=15424 + _globals['_QUERYBINARYMARKETSRESPONSE']._serialized_start=15426 + _globals['_QUERYBINARYMARKETSRESPONSE']._serialized_end=15524 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSREQUEST']._serialized_start=15526 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSREQUEST']._serialized_end=15639 + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER']._serialized_start=15642 + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER']._serialized_end=16056 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSRESPONSE']._serialized_start=16059 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSRESPONSE']._serialized_end=16189 + _globals['_QUERYFULLSPOTORDERBOOKREQUEST']._serialized_start=16191 + _globals['_QUERYFULLSPOTORDERBOOKREQUEST']._serialized_end=16251 + _globals['_QUERYFULLSPOTORDERBOOKRESPONSE']._serialized_start=16254 + _globals['_QUERYFULLSPOTORDERBOOKRESPONSE']._serialized_end=16410 + _globals['_QUERYFULLDERIVATIVEORDERBOOKREQUEST']._serialized_start=16412 + _globals['_QUERYFULLDERIVATIVEORDERBOOKREQUEST']._serialized_end=16478 + _globals['_QUERYFULLDERIVATIVEORDERBOOKRESPONSE']._serialized_start=16481 + _globals['_QUERYFULLDERIVATIVEORDERBOOKRESPONSE']._serialized_end=16643 + _globals['_TRIMMEDLIMITORDER']._serialized_start=16646 + _globals['_TRIMMEDLIMITORDER']._serialized_end=16857 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_start=16859 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_end=16936 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_start=16938 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_end=17056 + _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_start=17058 + _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_end=17114 + _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_start=17117 + _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_end=17286 + _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_start=17288 + _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_end=17372 + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_start=17374 + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_end=17462 + _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_start=17464 + _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_end=17523 + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_start=17526 + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_end=17704 + _globals['_QUERY']._serialized_start=17849 + _globals['_QUERY']._serialized_end=30358 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py new file mode 100644 index 00000000..37e5527c --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py @@ -0,0 +1,2767 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from pyinjective.proto.injective.exchange.v2 import query_pb2 as injective_dot_exchange_dot_v2_dot_query__pb2 + + +class QueryStub(object): + """Query defines the gRPC querier service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.L3DerivativeOrderBook = channel.unary_unary( + '/injective.exchange.v2.Query/L3DerivativeOrderBook', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullDerivativeOrderbookRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullDerivativeOrderbookResponse.FromString, + _registered_method=True) + self.L3SpotOrderBook = channel.unary_unary( + '/injective.exchange.v2.Query/L3SpotOrderBook', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotOrderbookRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotOrderbookResponse.FromString, + _registered_method=True) + self.QueryExchangeParams = channel.unary_unary( + '/injective.exchange.v2.Query/QueryExchangeParams', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeParamsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeParamsResponse.FromString, + _registered_method=True) + self.SubaccountDeposits = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountDeposits', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositsResponse.FromString, + _registered_method=True) + self.SubaccountDeposit = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountDeposit', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositResponse.FromString, + _registered_method=True) + self.ExchangeBalances = channel.unary_unary( + '/injective.exchange.v2.Query/ExchangeBalances', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeBalancesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeBalancesResponse.FromString, + _registered_method=True) + self.AggregateVolume = channel.unary_unary( + '/injective.exchange.v2.Query/AggregateVolume', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumeRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumeResponse.FromString, + _registered_method=True) + self.AggregateVolumes = channel.unary_unary( + '/injective.exchange.v2.Query/AggregateVolumes', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumesResponse.FromString, + _registered_method=True) + self.AggregateMarketVolume = channel.unary_unary( + '/injective.exchange.v2.Query/AggregateMarketVolume', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumeRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumeResponse.FromString, + _registered_method=True) + self.AggregateMarketVolumes = channel.unary_unary( + '/injective.exchange.v2.Query/AggregateMarketVolumes', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumesResponse.FromString, + _registered_method=True) + self.DenomDecimal = channel.unary_unary( + '/injective.exchange.v2.Query/DenomDecimal', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalResponse.FromString, + _registered_method=True) + self.DenomDecimals = channel.unary_unary( + '/injective.exchange.v2.Query/DenomDecimals', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalsResponse.FromString, + _registered_method=True) + self.SpotMarkets = channel.unary_unary( + '/injective.exchange.v2.Query/SpotMarkets', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketsResponse.FromString, + _registered_method=True) + self.SpotMarket = channel.unary_unary( + '/injective.exchange.v2.Query/SpotMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketResponse.FromString, + _registered_method=True) + self.FullSpotMarkets = channel.unary_unary( + '/injective.exchange.v2.Query/FullSpotMarkets', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketsResponse.FromString, + _registered_method=True) + self.FullSpotMarket = channel.unary_unary( + '/injective.exchange.v2.Query/FullSpotMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketResponse.FromString, + _registered_method=True) + self.SpotOrderbook = channel.unary_unary( + '/injective.exchange.v2.Query/SpotOrderbook', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrderbookRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrderbookResponse.FromString, + _registered_method=True) + self.TraderSpotOrders = channel.unary_unary( + '/injective.exchange.v2.Query/TraderSpotOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersResponse.FromString, + _registered_method=True) + self.AccountAddressSpotOrders = channel.unary_unary( + '/injective.exchange.v2.Query/AccountAddressSpotOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressSpotOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressSpotOrdersResponse.FromString, + _registered_method=True) + self.SpotOrdersByHashes = channel.unary_unary( + '/injective.exchange.v2.Query/SpotOrdersByHashes', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrdersByHashesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrdersByHashesResponse.FromString, + _registered_method=True) + self.SubaccountOrders = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrdersResponse.FromString, + _registered_method=True) + self.TraderSpotTransientOrders = channel.unary_unary( + '/injective.exchange.v2.Query/TraderSpotTransientOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersResponse.FromString, + _registered_method=True) + self.SpotMidPriceAndTOB = channel.unary_unary( + '/injective.exchange.v2.Query/SpotMidPriceAndTOB', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMidPriceAndTOBRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMidPriceAndTOBResponse.FromString, + _registered_method=True) + self.DerivativeMidPriceAndTOB = channel.unary_unary( + '/injective.exchange.v2.Query/DerivativeMidPriceAndTOB', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMidPriceAndTOBRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMidPriceAndTOBResponse.FromString, + _registered_method=True) + self.DerivativeOrderbook = channel.unary_unary( + '/injective.exchange.v2.Query/DerivativeOrderbook', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrderbookRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrderbookResponse.FromString, + _registered_method=True) + self.TraderDerivativeOrders = channel.unary_unary( + '/injective.exchange.v2.Query/TraderDerivativeOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersResponse.FromString, + _registered_method=True) + self.AccountAddressDerivativeOrders = channel.unary_unary( + '/injective.exchange.v2.Query/AccountAddressDerivativeOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressDerivativeOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressDerivativeOrdersResponse.FromString, + _registered_method=True) + self.DerivativeOrdersByHashes = channel.unary_unary( + '/injective.exchange.v2.Query/DerivativeOrdersByHashes', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrdersByHashesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrdersByHashesResponse.FromString, + _registered_method=True) + self.TraderDerivativeTransientOrders = channel.unary_unary( + '/injective.exchange.v2.Query/TraderDerivativeTransientOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersResponse.FromString, + _registered_method=True) + self.DerivativeMarkets = channel.unary_unary( + '/injective.exchange.v2.Query/DerivativeMarkets', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketsResponse.FromString, + _registered_method=True) + self.DerivativeMarket = channel.unary_unary( + '/injective.exchange.v2.Query/DerivativeMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketResponse.FromString, + _registered_method=True) + self.DerivativeMarketAddress = channel.unary_unary( + '/injective.exchange.v2.Query/DerivativeMarketAddress', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketAddressRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketAddressResponse.FromString, + _registered_method=True) + self.SubaccountTradeNonce = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountTradeNonce', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountTradeNonceRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountTradeNonceResponse.FromString, + _registered_method=True) + self.ExchangeModuleState = channel.unary_unary( + '/injective.exchange.v2.Query/ExchangeModuleState', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryModuleStateRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryModuleStateResponse.FromString, + _registered_method=True) + self.Positions = channel.unary_unary( + '/injective.exchange.v2.Query/Positions', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsResponse.FromString, + _registered_method=True) + self.SubaccountPositions = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountPositions', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsResponse.FromString, + _registered_method=True) + self.SubaccountPositionInMarket = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountPositionInMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionInMarketRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionInMarketResponse.FromString, + _registered_method=True) + self.SubaccountEffectivePositionInMarket = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountEffectivePositionInMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountEffectivePositionInMarketRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountEffectivePositionInMarketResponse.FromString, + _registered_method=True) + self.PerpetualMarketInfo = channel.unary_unary( + '/injective.exchange.v2.Query/PerpetualMarketInfo', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketInfoRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketInfoResponse.FromString, + _registered_method=True) + self.ExpiryFuturesMarketInfo = channel.unary_unary( + '/injective.exchange.v2.Query/ExpiryFuturesMarketInfo', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExpiryFuturesMarketInfoRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExpiryFuturesMarketInfoResponse.FromString, + _registered_method=True) + self.PerpetualMarketFunding = channel.unary_unary( + '/injective.exchange.v2.Query/PerpetualMarketFunding', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketFundingRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketFundingResponse.FromString, + _registered_method=True) + self.SubaccountOrderMetadata = channel.unary_unary( + '/injective.exchange.v2.Query/SubaccountOrderMetadata', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrderMetadataRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrderMetadataResponse.FromString, + _registered_method=True) + self.TradeRewardPoints = channel.unary_unary( + '/injective.exchange.v2.Query/TradeRewardPoints', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsResponse.FromString, + _registered_method=True) + self.PendingTradeRewardPoints = channel.unary_unary( + '/injective.exchange.v2.Query/PendingTradeRewardPoints', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsResponse.FromString, + _registered_method=True) + self.TradeRewardCampaign = channel.unary_unary( + '/injective.exchange.v2.Query/TradeRewardCampaign', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardCampaignRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardCampaignResponse.FromString, + _registered_method=True) + self.FeeDiscountAccountInfo = channel.unary_unary( + '/injective.exchange.v2.Query/FeeDiscountAccountInfo', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountAccountInfoRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountAccountInfoResponse.FromString, + _registered_method=True) + self.FeeDiscountSchedule = channel.unary_unary( + '/injective.exchange.v2.Query/FeeDiscountSchedule', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountScheduleRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountScheduleResponse.FromString, + _registered_method=True) + self.BalanceMismatches = channel.unary_unary( + '/injective.exchange.v2.Query/BalanceMismatches', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceMismatchesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceMismatchesResponse.FromString, + _registered_method=True) + self.BalanceWithBalanceHolds = channel.unary_unary( + '/injective.exchange.v2.Query/BalanceWithBalanceHolds', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceWithBalanceHoldsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceWithBalanceHoldsResponse.FromString, + _registered_method=True) + self.FeeDiscountTierStatistics = channel.unary_unary( + '/injective.exchange.v2.Query/FeeDiscountTierStatistics', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountTierStatisticsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountTierStatisticsResponse.FromString, + _registered_method=True) + self.MitoVaultInfos = channel.unary_unary( + '/injective.exchange.v2.Query/MitoVaultInfos', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.MitoVaultInfosRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.MitoVaultInfosResponse.FromString, + _registered_method=True) + self.QueryMarketIDFromVault = channel.unary_unary( + '/injective.exchange.v2.Query/QueryMarketIDFromVault', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketIDFromVaultRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketIDFromVaultResponse.FromString, + _registered_method=True) + self.HistoricalTradeRecords = channel.unary_unary( + '/injective.exchange.v2.Query/HistoricalTradeRecords', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryHistoricalTradeRecordsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryHistoricalTradeRecordsResponse.FromString, + _registered_method=True) + self.IsOptedOutOfRewards = channel.unary_unary( + '/injective.exchange.v2.Query/IsOptedOutOfRewards', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryIsOptedOutOfRewardsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryIsOptedOutOfRewardsResponse.FromString, + _registered_method=True) + self.OptedOutOfRewardsAccounts = channel.unary_unary( + '/injective.exchange.v2.Query/OptedOutOfRewardsAccounts', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryOptedOutOfRewardsAccountsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryOptedOutOfRewardsAccountsResponse.FromString, + _registered_method=True) + self.MarketVolatility = channel.unary_unary( + '/injective.exchange.v2.Query/MarketVolatility', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketVolatilityRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketVolatilityResponse.FromString, + _registered_method=True) + self.BinaryOptionsMarkets = channel.unary_unary( + '/injective.exchange.v2.Query/BinaryOptionsMarkets', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBinaryMarketsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBinaryMarketsResponse.FromString, + _registered_method=True) + self.TraderDerivativeConditionalOrders = channel.unary_unary( + '/injective.exchange.v2.Query/TraderDerivativeConditionalOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeConditionalOrdersRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeConditionalOrdersResponse.FromString, + _registered_method=True) + self.MarketAtomicExecutionFeeMultiplier = channel.unary_unary( + '/injective.exchange.v2.Query/MarketAtomicExecutionFeeMultiplier', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketAtomicExecutionFeeMultiplierRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketAtomicExecutionFeeMultiplierResponse.FromString, + _registered_method=True) + self.ActiveStakeGrant = channel.unary_unary( + '/injective.exchange.v2.Query/ActiveStakeGrant', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryActiveStakeGrantRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryActiveStakeGrantResponse.FromString, + _registered_method=True) + self.GrantAuthorization = channel.unary_unary( + '/injective.exchange.v2.Query/GrantAuthorization', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationResponse.FromString, + _registered_method=True) + self.GrantAuthorizations = channel.unary_unary( + '/injective.exchange.v2.Query/GrantAuthorizations', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Query defines the gRPC querier service. + """ + + def L3DerivativeOrderBook(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def L3SpotOrderBook(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def QueryExchangeParams(self, request, context): + """Retrieves exchange params + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountDeposits(self, request, context): + """Retrieves a Subaccount's Deposits + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountDeposit(self, request, context): + """Retrieves a Subaccount's Deposits + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExchangeBalances(self, request, context): + """Retrieves all of the balances of all users on the exchange. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AggregateVolume(self, request, context): + """Retrieves the aggregate volumes for the specified account or subaccount + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AggregateVolumes(self, request, context): + """Retrieves the aggregate volumes for specified accounts + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AggregateMarketVolume(self, request, context): + """Retrieves the aggregate volume for the specified market + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AggregateMarketVolumes(self, request, context): + """Retrieves the aggregate market volumes for specified markets + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomDecimal(self, request, context): + """Retrieves the denom decimals for a denom. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomDecimals(self, request, context): + """Retrieves the denom decimals for multiple denoms. Returns all denom + decimals if unspecified. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SpotMarkets(self, request, context): + """Retrieves a list of spot markets. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SpotMarket(self, request, context): + """Retrieves a spot market by ticker + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FullSpotMarkets(self, request, context): + """Retrieves a list of spot markets with extra information. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FullSpotMarket(self, request, context): + """Retrieves a spot market with extra information. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SpotOrderbook(self, request, context): + """Retrieves a spot market's orderbook by marketID + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraderSpotOrders(self, request, context): + """Retrieves a trader's spot orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AccountAddressSpotOrders(self, request, context): + """Retrieves all account address spot orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SpotOrdersByHashes(self, request, context): + """Retrieves spot orders corresponding to specified order hashes for a given + subaccountID and marketID + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountOrders(self, request, context): + """Retrieves subaccount's orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraderSpotTransientOrders(self, request, context): + """Retrieves a trader's transient spot orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SpotMidPriceAndTOB(self, request, context): + """Retrieves a spot market's mid-price + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMidPriceAndTOB(self, request, context): + """Retrieves a derivative market's mid-price + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeOrderbook(self, request, context): + """Retrieves a derivative market's orderbook by marketID + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraderDerivativeOrders(self, request, context): + """Retrieves a trader's derivative orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AccountAddressDerivativeOrders(self, request, context): + """Retrieves all account address derivative orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeOrdersByHashes(self, request, context): + """Retrieves a trader's derivative orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraderDerivativeTransientOrders(self, request, context): + """Retrieves a trader's transient derivative orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMarkets(self, request, context): + """Retrieves a list of derivative markets. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMarket(self, request, context): + """Retrieves a derivative market by ticker + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMarketAddress(self, request, context): + """Retrieves a derivative market's corresponding address for fees that + contribute to the market's insurance fund + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountTradeNonce(self, request, context): + """Retrieves a subaccount's trade nonce + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExchangeModuleState(self, request, context): + """Retrieves the entire exchange module's state + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Positions(self, request, context): + """Retrieves the entire exchange module's positions + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountPositions(self, request, context): + """Retrieves subaccount's positions + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountPositionInMarket(self, request, context): + """Retrieves subaccount's position in market + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountEffectivePositionInMarket(self, request, context): + """Retrieves subaccount's position in market + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PerpetualMarketInfo(self, request, context): + """Retrieves perpetual market info + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExpiryFuturesMarketInfo(self, request, context): + """Retrieves expiry market info + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PerpetualMarketFunding(self, request, context): + """Retrieves perpetual market funding + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountOrderMetadata(self, request, context): + """Retrieves subaccount's order metadata + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TradeRewardPoints(self, request, context): + """Retrieves the account and total trade rewards points + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PendingTradeRewardPoints(self, request, context): + """Retrieves the pending account and total trade rewards points + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TradeRewardCampaign(self, request, context): + """Retrieves the trade reward campaign + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FeeDiscountAccountInfo(self, request, context): + """Retrieves the account's fee discount info + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FeeDiscountSchedule(self, request, context): + """Retrieves the fee discount schedule + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BalanceMismatches(self, request, context): + """Retrieves mismatches between available vs. total balance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BalanceWithBalanceHolds(self, request, context): + """Retrieves available and total balances with balance holds + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FeeDiscountTierStatistics(self, request, context): + """Retrieves fee discount tier stats + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MitoVaultInfos(self, request, context): + """Retrieves market making pool info + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def QueryMarketIDFromVault(self, request, context): + """QueryMarketIDFromVault returns the market ID for a given vault subaccount + ID + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def HistoricalTradeRecords(self, request, context): + """Retrieves historical trade records for a given market ID + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def IsOptedOutOfRewards(self, request, context): + """Retrieves if the account is opted out of rewards + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def OptedOutOfRewardsAccounts(self, request, context): + """Retrieves all accounts opted out of rewards + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MarketVolatility(self, request, context): + """MarketVolatility computes the volatility for spot and derivative markets + trading history. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BinaryOptionsMarkets(self, request, context): + """Retrieves a spot market's orderbook by marketID + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraderDerivativeConditionalOrders(self, request, context): + """Retrieves a trader's derivative conditional orders + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MarketAtomicExecutionFeeMultiplier(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ActiveStakeGrant(self, request, context): + """Retrieves the active stake grant for a grantee + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GrantAuthorization(self, request, context): + """Retrieves the grant authorization amount for a granter and grantee + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GrantAuthorizations(self, request, context): + """Retrieves the grant authorization amount for a granter and grantee + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_QueryServicer_to_server(servicer, server): + rpc_method_handlers = { + 'L3DerivativeOrderBook': grpc.unary_unary_rpc_method_handler( + servicer.L3DerivativeOrderBook, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullDerivativeOrderbookRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullDerivativeOrderbookResponse.SerializeToString, + ), + 'L3SpotOrderBook': grpc.unary_unary_rpc_method_handler( + servicer.L3SpotOrderBook, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotOrderbookRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotOrderbookResponse.SerializeToString, + ), + 'QueryExchangeParams': grpc.unary_unary_rpc_method_handler( + servicer.QueryExchangeParams, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeParamsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeParamsResponse.SerializeToString, + ), + 'SubaccountDeposits': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountDeposits, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositsResponse.SerializeToString, + ), + 'SubaccountDeposit': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountDeposit, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositResponse.SerializeToString, + ), + 'ExchangeBalances': grpc.unary_unary_rpc_method_handler( + servicer.ExchangeBalances, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeBalancesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeBalancesResponse.SerializeToString, + ), + 'AggregateVolume': grpc.unary_unary_rpc_method_handler( + servicer.AggregateVolume, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumeRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumeResponse.SerializeToString, + ), + 'AggregateVolumes': grpc.unary_unary_rpc_method_handler( + servicer.AggregateVolumes, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumesResponse.SerializeToString, + ), + 'AggregateMarketVolume': grpc.unary_unary_rpc_method_handler( + servicer.AggregateMarketVolume, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumeRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumeResponse.SerializeToString, + ), + 'AggregateMarketVolumes': grpc.unary_unary_rpc_method_handler( + servicer.AggregateMarketVolumes, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumesResponse.SerializeToString, + ), + 'DenomDecimal': grpc.unary_unary_rpc_method_handler( + servicer.DenomDecimal, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalResponse.SerializeToString, + ), + 'DenomDecimals': grpc.unary_unary_rpc_method_handler( + servicer.DenomDecimals, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalsResponse.SerializeToString, + ), + 'SpotMarkets': grpc.unary_unary_rpc_method_handler( + servicer.SpotMarkets, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketsResponse.SerializeToString, + ), + 'SpotMarket': grpc.unary_unary_rpc_method_handler( + servicer.SpotMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketResponse.SerializeToString, + ), + 'FullSpotMarkets': grpc.unary_unary_rpc_method_handler( + servicer.FullSpotMarkets, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketsResponse.SerializeToString, + ), + 'FullSpotMarket': grpc.unary_unary_rpc_method_handler( + servicer.FullSpotMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketResponse.SerializeToString, + ), + 'SpotOrderbook': grpc.unary_unary_rpc_method_handler( + servicer.SpotOrderbook, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrderbookRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrderbookResponse.SerializeToString, + ), + 'TraderSpotOrders': grpc.unary_unary_rpc_method_handler( + servicer.TraderSpotOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersResponse.SerializeToString, + ), + 'AccountAddressSpotOrders': grpc.unary_unary_rpc_method_handler( + servicer.AccountAddressSpotOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressSpotOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressSpotOrdersResponse.SerializeToString, + ), + 'SpotOrdersByHashes': grpc.unary_unary_rpc_method_handler( + servicer.SpotOrdersByHashes, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrdersByHashesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrdersByHashesResponse.SerializeToString, + ), + 'SubaccountOrders': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrdersResponse.SerializeToString, + ), + 'TraderSpotTransientOrders': grpc.unary_unary_rpc_method_handler( + servicer.TraderSpotTransientOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersResponse.SerializeToString, + ), + 'SpotMidPriceAndTOB': grpc.unary_unary_rpc_method_handler( + servicer.SpotMidPriceAndTOB, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMidPriceAndTOBRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMidPriceAndTOBResponse.SerializeToString, + ), + 'DerivativeMidPriceAndTOB': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMidPriceAndTOB, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMidPriceAndTOBRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMidPriceAndTOBResponse.SerializeToString, + ), + 'DerivativeOrderbook': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeOrderbook, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrderbookRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrderbookResponse.SerializeToString, + ), + 'TraderDerivativeOrders': grpc.unary_unary_rpc_method_handler( + servicer.TraderDerivativeOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersResponse.SerializeToString, + ), + 'AccountAddressDerivativeOrders': grpc.unary_unary_rpc_method_handler( + servicer.AccountAddressDerivativeOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressDerivativeOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressDerivativeOrdersResponse.SerializeToString, + ), + 'DerivativeOrdersByHashes': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeOrdersByHashes, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrdersByHashesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrdersByHashesResponse.SerializeToString, + ), + 'TraderDerivativeTransientOrders': grpc.unary_unary_rpc_method_handler( + servicer.TraderDerivativeTransientOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersResponse.SerializeToString, + ), + 'DerivativeMarkets': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarkets, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketsResponse.SerializeToString, + ), + 'DerivativeMarket': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketResponse.SerializeToString, + ), + 'DerivativeMarketAddress': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarketAddress, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketAddressRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketAddressResponse.SerializeToString, + ), + 'SubaccountTradeNonce': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountTradeNonce, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountTradeNonceRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountTradeNonceResponse.SerializeToString, + ), + 'ExchangeModuleState': grpc.unary_unary_rpc_method_handler( + servicer.ExchangeModuleState, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryModuleStateRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryModuleStateResponse.SerializeToString, + ), + 'Positions': grpc.unary_unary_rpc_method_handler( + servicer.Positions, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsResponse.SerializeToString, + ), + 'SubaccountPositions': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountPositions, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsResponse.SerializeToString, + ), + 'SubaccountPositionInMarket': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountPositionInMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionInMarketRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionInMarketResponse.SerializeToString, + ), + 'SubaccountEffectivePositionInMarket': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountEffectivePositionInMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountEffectivePositionInMarketRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountEffectivePositionInMarketResponse.SerializeToString, + ), + 'PerpetualMarketInfo': grpc.unary_unary_rpc_method_handler( + servicer.PerpetualMarketInfo, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketInfoRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketInfoResponse.SerializeToString, + ), + 'ExpiryFuturesMarketInfo': grpc.unary_unary_rpc_method_handler( + servicer.ExpiryFuturesMarketInfo, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExpiryFuturesMarketInfoRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryExpiryFuturesMarketInfoResponse.SerializeToString, + ), + 'PerpetualMarketFunding': grpc.unary_unary_rpc_method_handler( + servicer.PerpetualMarketFunding, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketFundingRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketFundingResponse.SerializeToString, + ), + 'SubaccountOrderMetadata': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountOrderMetadata, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrderMetadataRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrderMetadataResponse.SerializeToString, + ), + 'TradeRewardPoints': grpc.unary_unary_rpc_method_handler( + servicer.TradeRewardPoints, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsResponse.SerializeToString, + ), + 'PendingTradeRewardPoints': grpc.unary_unary_rpc_method_handler( + servicer.PendingTradeRewardPoints, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsResponse.SerializeToString, + ), + 'TradeRewardCampaign': grpc.unary_unary_rpc_method_handler( + servicer.TradeRewardCampaign, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardCampaignRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardCampaignResponse.SerializeToString, + ), + 'FeeDiscountAccountInfo': grpc.unary_unary_rpc_method_handler( + servicer.FeeDiscountAccountInfo, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountAccountInfoRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountAccountInfoResponse.SerializeToString, + ), + 'FeeDiscountSchedule': grpc.unary_unary_rpc_method_handler( + servicer.FeeDiscountSchedule, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountScheduleRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountScheduleResponse.SerializeToString, + ), + 'BalanceMismatches': grpc.unary_unary_rpc_method_handler( + servicer.BalanceMismatches, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceMismatchesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceMismatchesResponse.SerializeToString, + ), + 'BalanceWithBalanceHolds': grpc.unary_unary_rpc_method_handler( + servicer.BalanceWithBalanceHolds, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceWithBalanceHoldsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceWithBalanceHoldsResponse.SerializeToString, + ), + 'FeeDiscountTierStatistics': grpc.unary_unary_rpc_method_handler( + servicer.FeeDiscountTierStatistics, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountTierStatisticsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountTierStatisticsResponse.SerializeToString, + ), + 'MitoVaultInfos': grpc.unary_unary_rpc_method_handler( + servicer.MitoVaultInfos, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.MitoVaultInfosRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.MitoVaultInfosResponse.SerializeToString, + ), + 'QueryMarketIDFromVault': grpc.unary_unary_rpc_method_handler( + servicer.QueryMarketIDFromVault, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketIDFromVaultRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketIDFromVaultResponse.SerializeToString, + ), + 'HistoricalTradeRecords': grpc.unary_unary_rpc_method_handler( + servicer.HistoricalTradeRecords, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryHistoricalTradeRecordsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryHistoricalTradeRecordsResponse.SerializeToString, + ), + 'IsOptedOutOfRewards': grpc.unary_unary_rpc_method_handler( + servicer.IsOptedOutOfRewards, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryIsOptedOutOfRewardsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryIsOptedOutOfRewardsResponse.SerializeToString, + ), + 'OptedOutOfRewardsAccounts': grpc.unary_unary_rpc_method_handler( + servicer.OptedOutOfRewardsAccounts, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryOptedOutOfRewardsAccountsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryOptedOutOfRewardsAccountsResponse.SerializeToString, + ), + 'MarketVolatility': grpc.unary_unary_rpc_method_handler( + servicer.MarketVolatility, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketVolatilityRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketVolatilityResponse.SerializeToString, + ), + 'BinaryOptionsMarkets': grpc.unary_unary_rpc_method_handler( + servicer.BinaryOptionsMarkets, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBinaryMarketsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryBinaryMarketsResponse.SerializeToString, + ), + 'TraderDerivativeConditionalOrders': grpc.unary_unary_rpc_method_handler( + servicer.TraderDerivativeConditionalOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeConditionalOrdersRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeConditionalOrdersResponse.SerializeToString, + ), + 'MarketAtomicExecutionFeeMultiplier': grpc.unary_unary_rpc_method_handler( + servicer.MarketAtomicExecutionFeeMultiplier, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketAtomicExecutionFeeMultiplierRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketAtomicExecutionFeeMultiplierResponse.SerializeToString, + ), + 'ActiveStakeGrant': grpc.unary_unary_rpc_method_handler( + servicer.ActiveStakeGrant, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryActiveStakeGrantRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryActiveStakeGrantResponse.SerializeToString, + ), + 'GrantAuthorization': grpc.unary_unary_rpc_method_handler( + servicer.GrantAuthorization, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationResponse.SerializeToString, + ), + 'GrantAuthorizations': grpc.unary_unary_rpc_method_handler( + servicer.GrantAuthorizations, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.exchange.v2.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.exchange.v2.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Query defines the gRPC querier service. + """ + + @staticmethod + def L3DerivativeOrderBook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/L3DerivativeOrderBook', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullDerivativeOrderbookRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullDerivativeOrderbookResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def L3SpotOrderBook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/L3SpotOrderBook', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotOrderbookRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotOrderbookResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def QueryExchangeParams(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/QueryExchangeParams', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeParamsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountDeposits(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountDeposits', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountDeposit(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountDeposit', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountDepositResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExchangeBalances(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/ExchangeBalances', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeBalancesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryExchangeBalancesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AggregateVolume(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/AggregateVolume', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumeRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AggregateVolumes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/AggregateVolumes', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateVolumesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AggregateMarketVolume(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/AggregateMarketVolume', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumeRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AggregateMarketVolumes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/AggregateMarketVolumes', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAggregateMarketVolumesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomDecimal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DenomDecimal', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomDecimals(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DenomDecimals', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomDecimalsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotMarkets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SpotMarkets', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SpotMarket', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def FullSpotMarkets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/FullSpotMarkets', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def FullSpotMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/FullSpotMarket', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFullSpotMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotOrderbook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SpotOrderbook', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrderbookRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrderbookResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraderSpotOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TraderSpotOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AccountAddressSpotOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/AccountAddressSpotOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressSpotOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressSpotOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotOrdersByHashes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SpotOrdersByHashes', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrdersByHashesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotOrdersByHashesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraderSpotTransientOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TraderSpotTransientOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderSpotOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotMidPriceAndTOB(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SpotMidPriceAndTOB', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMidPriceAndTOBRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySpotMidPriceAndTOBResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMidPriceAndTOB(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DerivativeMidPriceAndTOB', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMidPriceAndTOBRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMidPriceAndTOBResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeOrderbook(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DerivativeOrderbook', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrderbookRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrderbookResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraderDerivativeOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TraderDerivativeOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AccountAddressDerivativeOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/AccountAddressDerivativeOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressDerivativeOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryAccountAddressDerivativeOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeOrdersByHashes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DerivativeOrdersByHashes', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrdersByHashesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeOrdersByHashesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraderDerivativeTransientOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TraderDerivativeTransientOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarkets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DerivativeMarkets', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DerivativeMarket', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarketAddress(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/DerivativeMarketAddress', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketAddressRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDerivativeMarketAddressResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountTradeNonce(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountTradeNonce', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountTradeNonceRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountTradeNonceResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExchangeModuleState(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/ExchangeModuleState', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryModuleStateRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryModuleStateResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Positions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/Positions', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountPositions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountPositions', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountPositionInMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountPositionInMarket', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionInMarketRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionInMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountEffectivePositionInMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountEffectivePositionInMarket', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountEffectivePositionInMarketRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountEffectivePositionInMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PerpetualMarketInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/PerpetualMarketInfo', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketInfoRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketInfoResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExpiryFuturesMarketInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/ExpiryFuturesMarketInfo', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryExpiryFuturesMarketInfoRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryExpiryFuturesMarketInfoResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PerpetualMarketFunding(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/PerpetualMarketFunding', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketFundingRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPerpetualMarketFundingResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountOrderMetadata(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/SubaccountOrderMetadata', + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrderMetadataRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountOrderMetadataResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TradeRewardPoints(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TradeRewardPoints', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PendingTradeRewardPoints(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/PendingTradeRewardPoints', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardPointsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TradeRewardCampaign(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TradeRewardCampaign', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardCampaignRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTradeRewardCampaignResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def FeeDiscountAccountInfo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/FeeDiscountAccountInfo', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountAccountInfoRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountAccountInfoResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def FeeDiscountSchedule(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/FeeDiscountSchedule', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountScheduleRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountScheduleResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BalanceMismatches(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/BalanceMismatches', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceMismatchesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceMismatchesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BalanceWithBalanceHolds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/BalanceWithBalanceHolds', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceWithBalanceHoldsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryBalanceWithBalanceHoldsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def FeeDiscountTierStatistics(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/FeeDiscountTierStatistics', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountTierStatisticsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryFeeDiscountTierStatisticsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def MitoVaultInfos(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/MitoVaultInfos', + injective_dot_exchange_dot_v2_dot_query__pb2.MitoVaultInfosRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.MitoVaultInfosResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def QueryMarketIDFromVault(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/QueryMarketIDFromVault', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketIDFromVaultRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketIDFromVaultResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def HistoricalTradeRecords(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/HistoricalTradeRecords', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryHistoricalTradeRecordsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryHistoricalTradeRecordsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def IsOptedOutOfRewards(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/IsOptedOutOfRewards', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryIsOptedOutOfRewardsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryIsOptedOutOfRewardsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def OptedOutOfRewardsAccounts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/OptedOutOfRewardsAccounts', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryOptedOutOfRewardsAccountsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryOptedOutOfRewardsAccountsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def MarketVolatility(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/MarketVolatility', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketVolatilityRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketVolatilityResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BinaryOptionsMarkets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/BinaryOptionsMarkets', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryBinaryMarketsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryBinaryMarketsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraderDerivativeConditionalOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/TraderDerivativeConditionalOrders', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeConditionalOrdersRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryTraderDerivativeConditionalOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def MarketAtomicExecutionFeeMultiplier(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/MarketAtomicExecutionFeeMultiplier', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketAtomicExecutionFeeMultiplierRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketAtomicExecutionFeeMultiplierResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ActiveStakeGrant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/ActiveStakeGrant', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryActiveStakeGrantRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryActiveStakeGrantResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GrantAuthorization(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/GrantAuthorization', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GrantAuthorizations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Query/GrantAuthorizations', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/exchange/v2/tx_pb2.py b/pyinjective/proto/injective/exchange/v2/tx_pb2.py new file mode 100644 index 00000000..c89e8ff9 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/tx_pb2.py @@ -0,0 +1,441 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/exchange/v2/tx.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 +from pyinjective.proto.cosmos.distribution.v1beta1 import distribution_pb2 as cosmos_dot_distribution_dot_v1beta1_dot_distribution__pb2 +from pyinjective.proto.cosmos.msg.v1 import msg_pb2 as cosmos_dot_msg_dot_v1_dot_msg__pb2 +from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as injective_dot_exchange_dot_v2_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v2 import order_pb2 as injective_dot_exchange_dot_v2_dot_order__pb2 +from pyinjective.proto.injective.exchange.v2 import market_pb2 as injective_dot_exchange_dot_v2_dot_market__pb2 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as injective_dot_oracle_dot_v1beta1_dot_oracle__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1einjective/exchange/v2/tx.proto\x12\x15injective.exchange.v2\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a.cosmos/distribution/v1beta1/distribution.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a$injective/exchange/v2/exchange.proto\x1a!injective/exchange/v2/order.proto\x1a\"injective/exchange/v2/market.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a\x11\x61mino/amino.proto\"\xa3\x03\n\x13MsgUpdateSpotMarket\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nnew_ticker\x18\x03 \x01(\tR\tnewTicker\x12Y\n\x17new_min_price_tick_size\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13newMinPriceTickSize\x12_\n\x1anew_min_quantity_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16newMinQuantityTickSize\x12M\n\x10new_min_notional\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0enewMinNotional:/\xe8\xa0\x1f\x00\x82\xe7\xb0*\x05\x61\x64min\x8a\xe7\xb0*\x1c\x65xchange/MsgUpdateSpotMarket\"\x1d\n\x1bMsgUpdateSpotMarketResponse\"\xf7\x04\n\x19MsgUpdateDerivativeMarket\x12\x14\n\x05\x61\x64min\x18\x01 \x01(\tR\x05\x61\x64min\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nnew_ticker\x18\x03 \x01(\tR\tnewTicker\x12Y\n\x17new_min_price_tick_size\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13newMinPriceTickSize\x12_\n\x1anew_min_quantity_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16newMinQuantityTickSize\x12M\n\x10new_min_notional\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0enewMinNotional\x12\\\n\x18new_initial_margin_ratio\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x15newInitialMarginRatio\x12\x64\n\x1cnew_maintenance_margin_ratio\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x19newMaintenanceMarginRatio:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x05\x61\x64min\x8a\xe7\xb0*\"exchange/MsgUpdateDerivativeMarket\"#\n!MsgUpdateDerivativeMarketResponse\"\xb3\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12;\n\x06params\x18\x02 \x01(\x0b\x32\x1d.injective.exchange.v2.ParamsB\x04\xc8\xde\x1f\x00R\x06params:+\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x18\x65xchange/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse\"\xaf\x01\n\nMsgDeposit\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:+\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x13\x65xchange/MsgDeposit\"\x14\n\x12MsgDepositResponse\"\xb1\x01\n\x0bMsgWithdraw\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x37\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:,\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x14\x65xchange/MsgWithdraw\"\x15\n\x13MsgWithdrawResponse\"\xa9\x01\n\x17MsgCreateSpotLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12<\n\x05order\x18\x02 \x01(\x0b\x32 .injective.exchange.v2.SpotOrderB\x04\xc8\xde\x1f\x00R\x05order:8\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0* exchange/MsgCreateSpotLimitOrder\"\\\n\x1fMsgCreateSpotLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xb7\x01\n\x1dMsgBatchCreateSpotLimitOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12>\n\x06orders\x18\x02 \x03(\x0b\x32 .injective.exchange.v2.SpotOrderB\x04\xc8\xde\x1f\x00R\x06orders:>\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*&exchange/MsgBatchCreateSpotLimitOrders\"\xb2\x01\n%MsgBatchCreateSpotLimitOrdersResponse\x12!\n\x0corder_hashes\x18\x01 \x03(\tR\x0borderHashes\x12.\n\x13\x63reated_orders_cids\x18\x02 \x03(\tR\x11\x63reatedOrdersCids\x12,\n\x12\x66\x61iled_orders_cids\x18\x03 \x03(\tR\x10\x66\x61iledOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8b\x04\n\x1aMsgInstantSpotMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x03 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x04 \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional\x12#\n\rbase_decimals\x18\x08 \x01(\rR\x0c\x62\x61seDecimals\x12%\n\x0equote_decimals\x18\t \x01(\rR\rquoteDecimals:;\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#exchange/MsgInstantSpotMarketLaunch\"$\n\"MsgInstantSpotMarketLaunchResponse\"\xb1\x07\n\x1fMsgInstantPerpetualMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12.\n\x13oracle_scale_factor\x18\x06 \x01(\rR\x11oracleScaleFactor\x12\x45\n\x0boracle_type\x18\x07 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12I\n\x0emaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12U\n\x14initial_margin_ratio\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12R\n\x13min_price_tick_size\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*(exchange/MsgInstantPerpetualMarketLaunch\")\n\'MsgInstantPerpetualMarketLaunchResponse\"\x89\x07\n#MsgInstantBinaryOptionsMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12#\n\roracle_symbol\x18\x03 \x01(\tR\x0coracleSymbol\x12\'\n\x0foracle_provider\x18\x04 \x01(\tR\x0eoracleProvider\x12\x45\n\x0boracle_type\x18\x05 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x06 \x01(\rR\x11oracleScaleFactor\x12I\n\x0emaker_fee_rate\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\x08 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12\x31\n\x14\x65xpiration_timestamp\x18\t \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\n \x01(\x03R\x13settlementTimestamp\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x1f\n\x0bquote_denom\x18\x0c \x01(\tR\nquoteDenom\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgInstantBinaryOptionsMarketLaunch\"-\n+MsgInstantBinaryOptionsMarketLaunchResponse\"\xd1\x07\n#MsgInstantExpiryFuturesMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x16\n\x06ticker\x18\x02 \x01(\tR\x06ticker\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x45\n\x0boracle_type\x18\x06 \x01(\x0e\x32$.injective.oracle.v1beta1.OracleTypeR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x16\n\x06\x65xpiry\x18\x08 \x01(\x03R\x06\x65xpiry\x12I\n\x0emaker_fee_rate\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0cmakerFeeRate\x12I\n\x0etaker_fee_rate\x18\n \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0ctakerFeeRate\x12U\n\x14initial_margin_ratio\x18\x0b \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12initialMarginRatio\x12]\n\x18maintenance_margin_ratio\x18\x0c \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16maintenanceMarginRatio\x12R\n\x13min_price_tick_size\x18\r \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x10minPriceTickSize\x12X\n\x16min_quantity_tick_size\x18\x0e \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13minQuantityTickSize\x12\x46\n\x0cmin_notional\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgInstantExpiryFuturesMarketLaunch\"-\n+MsgInstantExpiryFuturesMarketLaunchResponse\"\xab\x01\n\x18MsgCreateSpotMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12<\n\x05order\x18\x02 \x01(\x0b\x32 .injective.exchange.v2.SpotOrderB\x04\xc8\xde\x1f\x00R\x05order:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgCreateSpotMarketOrder\"\xac\x01\n MsgCreateSpotMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12M\n\x07results\x18\x02 \x01(\x0b\x32-.injective.exchange.v2.SpotMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd5\x01\n\x16SpotMarketOrderResults\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x35\n\x03\x66\x65\x65\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xb7\x01\n\x1dMsgCreateDerivativeLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x42\n\x05order\x18\x02 \x01(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order::\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*&exchange/MsgCreateDerivativeLimitOrder\"b\n%MsgCreateDerivativeLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbd\x01\n MsgCreateBinaryOptionsLimitOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x42\n\x05order\x18\x02 \x01(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:=\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*)exchange/MsgCreateBinaryOptionsLimitOrder\"e\n(MsgCreateBinaryOptionsLimitOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x02 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc5\x01\n#MsgBatchCreateDerivativeLimitOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x44\n\x06orders\x18\x02 \x03(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x06orders:@\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgBatchCreateDerivativeLimitOrders\"\xb8\x01\n+MsgBatchCreateDerivativeLimitOrdersResponse\x12!\n\x0corder_hashes\x18\x01 \x03(\tR\x0borderHashes\x12.\n\x13\x63reated_orders_cids\x18\x02 \x03(\tR\x11\x63reatedOrdersCids\x12,\n\x12\x66\x61iled_orders_cids\x18\x03 \x03(\tR\x10\x66\x61iledOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd0\x01\n\x12MsgCancelSpotOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id:/\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1b\x65xchange/MsgCancelSpotOrder\"\x1c\n\x1aMsgCancelSpotOrderResponse\"\xa5\x01\n\x18MsgBatchCancelSpotOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12:\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective.exchange.v2.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:5\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgBatchCancelSpotOrders\"F\n MsgBatchCancelSpotOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xb7\x01\n!MsgBatchCancelBinaryOptionsOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12:\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective.exchange.v2.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:>\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgBatchCancelBinaryOptionsOrders\"O\n)MsgBatchCancelBinaryOptionsOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd4\x07\n\x14MsgBatchUpdateOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12?\n\x1dspot_market_ids_to_cancel_all\x18\x03 \x03(\tR\x18spotMarketIdsToCancelAll\x12K\n#derivative_market_ids_to_cancel_all\x18\x04 \x03(\tR\x1e\x64\x65rivativeMarketIdsToCancelAll\x12Y\n\x15spot_orders_to_cancel\x18\x05 \x03(\x0b\x32 .injective.exchange.v2.OrderDataB\x04\xc8\xde\x1f\x01R\x12spotOrdersToCancel\x12\x65\n\x1b\x64\x65rivative_orders_to_cancel\x18\x06 \x03(\x0b\x32 .injective.exchange.v2.OrderDataB\x04\xc8\xde\x1f\x01R\x18\x64\x65rivativeOrdersToCancel\x12Y\n\x15spot_orders_to_create\x18\x07 \x03(\x0b\x32 .injective.exchange.v2.SpotOrderB\x04\xc8\xde\x1f\x01R\x12spotOrdersToCreate\x12k\n\x1b\x64\x65rivative_orders_to_create\x18\x08 \x03(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x18\x64\x65rivativeOrdersToCreate\x12l\n\x1f\x62inary_options_orders_to_cancel\x18\t \x03(\x0b\x32 .injective.exchange.v2.OrderDataB\x04\xc8\xde\x1f\x01R\x1b\x62inaryOptionsOrdersToCancel\x12R\n\'binary_options_market_ids_to_cancel_all\x18\n \x03(\tR!binaryOptionsMarketIdsToCancelAll\x12r\n\x1f\x62inary_options_orders_to_create\x18\x0b \x03(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x1b\x62inaryOptionsOrdersToCreate:1\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1d\x65xchange/MsgBatchUpdateOrders\"\x88\x06\n\x1cMsgBatchUpdateOrdersResponse\x12.\n\x13spot_cancel_success\x18\x01 \x03(\x08R\x11spotCancelSuccess\x12:\n\x19\x64\x65rivative_cancel_success\x18\x02 \x03(\x08R\x17\x64\x65rivativeCancelSuccess\x12*\n\x11spot_order_hashes\x18\x03 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x04 \x03(\tR\x15\x64\x65rivativeOrderHashes\x12\x41\n\x1d\x62inary_options_cancel_success\x18\x05 \x03(\x08R\x1a\x62inaryOptionsCancelSuccess\x12=\n\x1b\x62inary_options_order_hashes\x18\x06 \x03(\tR\x18\x62inaryOptionsOrderHashes\x12\x37\n\x18\x63reated_spot_orders_cids\x18\x07 \x03(\tR\x15\x63reatedSpotOrdersCids\x12\x35\n\x17\x66\x61iled_spot_orders_cids\x18\x08 \x03(\tR\x14\x66\x61iledSpotOrdersCids\x12\x43\n\x1e\x63reated_derivative_orders_cids\x18\t \x03(\tR\x1b\x63reatedDerivativeOrdersCids\x12\x41\n\x1d\x66\x61iled_derivative_orders_cids\x18\n \x03(\tR\x1a\x66\x61iledDerivativeOrdersCids\x12J\n\"created_binary_options_orders_cids\x18\x0b \x03(\tR\x1e\x63reatedBinaryOptionsOrdersCids\x12H\n!failed_binary_options_orders_cids\x18\x0c \x03(\tR\x1d\x66\x61iledBinaryOptionsOrdersCids:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xb9\x01\n\x1eMsgCreateDerivativeMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x42\n\x05order\x18\x02 \x01(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:;\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgCreateDerivativeMarketOrder\"\xb8\x01\n&MsgCreateDerivativeMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12S\n\x07results\x18\x02 \x01(\x0b\x32\x33.injective.exchange.v2.DerivativeMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xeb\x02\n\x1c\x44\x65rivativeMarketOrderResults\x12?\n\x08quantity\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x35\n\x03\x66\x65\x65\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12Q\n\x0eposition_delta\x18\x04 \x01(\x0b\x32$.injective.exchange.v2.PositionDeltaB\x04\xc8\xde\x1f\x00R\rpositionDelta\x12;\n\x06payout\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xbf\x01\n!MsgCreateBinaryOptionsMarketOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x42\n\x05order\x18\x02 \x01(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x00R\x05order:>\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgCreateBinaryOptionsMarketOrder\"\xbb\x01\n)MsgCreateBinaryOptionsMarketOrderResponse\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12S\n\x07results\x18\x02 \x01(\x0b\x32\x33.injective.exchange.v2.DerivativeMarketOrderResultsB\x04\xc8\xde\x1f\x01R\x07results\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xfb\x01\n\x18MsgCancelDerivativeOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x05 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id:5\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgCancelDerivativeOrder\"\"\n MsgCancelDerivativeOrderResponse\"\x81\x02\n\x1bMsgCancelBinaryOptionsOrder\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x04 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x05 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x06 \x01(\tR\x03\x63id:8\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*$exchange/MsgCancelBinaryOptionsOrder\"%\n#MsgCancelBinaryOptionsOrderResponse\"\x9d\x01\n\tOrderData\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1d\n\norder_hash\x18\x03 \x01(\tR\torderHash\x12\x1d\n\norder_mask\x18\x04 \x01(\x05R\torderMask\x12\x10\n\x03\x63id\x18\x05 \x01(\tR\x03\x63id\"\xb1\x01\n\x1eMsgBatchCancelDerivativeOrders\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12:\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective.exchange.v2.OrderDataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta:;\x88\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgBatchCancelDerivativeOrders\"L\n&MsgBatchCancelDerivativeOrdersResponse\x12\x18\n\x07success\x18\x01 \x03(\x08R\x07success:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x86\x02\n\x15MsgSubaccountTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x37\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgSubaccountTransfer\"\x1f\n\x1dMsgSubaccountTransferResponse\"\x82\x02\n\x13MsgExternalTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x37\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount:,\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1c\x65xchange/MsgExternalTransfer\"\x1d\n\x1bMsgExternalTransferResponse\"\xe3\x01\n\x14MsgLiquidatePosition\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x42\n\x05order\x18\x04 \x01(\x0b\x32&.injective.exchange.v2.DerivativeOrderB\x04\xc8\xde\x1f\x01R\x05order:-\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1d\x65xchange/MsgLiquidatePosition\"\x1e\n\x1cMsgLiquidatePositionResponse\"\xa7\x01\n\x18MsgEmergencySettleMarket\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId:1\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgEmergencySettleMarket\"\"\n MsgEmergencySettleMarketResponse\"\xaf\x02\n\x19MsgIncreasePositionMargin\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\x12;\n\x06\x61mount\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount:2\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgIncreasePositionMargin\"#\n!MsgIncreasePositionMarginResponse\"\xaf\x02\n\x19MsgDecreasePositionMargin\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x14source_subaccount_id\x18\x02 \x01(\tR\x12sourceSubaccountId\x12:\n\x19\x64\x65stination_subaccount_id\x18\x03 \x01(\tR\x17\x64\x65stinationSubaccountId\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\x12;\n\x06\x61mount\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount:2\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgDecreasePositionMargin\"#\n!MsgDecreasePositionMarginResponse\"\xca\x01\n\x1cMsgPrivilegedExecuteContract\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05\x66unds\x18\x02 \x01(\tR\x05\x66unds\x12)\n\x10\x63ontract_address\x18\x03 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04\x64\x61ta\x18\x04 \x01(\tR\x04\x64\x61ta:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgPrivilegedExecuteContract\"\xa7\x01\n$MsgPrivilegedExecuteContractResponse\x12j\n\nfunds_diff\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\tfundsDiff:\x13\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\"]\n\x10MsgRewardsOptOut\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender:1\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x19\x65xchange/MsgRewardsOptOut\"\x1a\n\x18MsgRewardsOptOutResponse\"\xaf\x01\n\x15MsgReclaimLockedFunds\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x30\n\x13lockedAccountPubKey\x18\x02 \x01(\x0cR\x13lockedAccountPubKey\x12\x1c\n\tsignature\x18\x03 \x01(\x0cR\tsignature:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgReclaimLockedFunds\"\x1f\n\x1dMsgReclaimLockedFundsResponse\"\x80\x01\n\x0bMsgSignData\x12S\n\x06Signer\x18\x01 \x01(\x0c\x42;\xea\xde\x1f\x06signer\xfa\xde\x1f-github.com/cosmos/cosmos-sdk/types.AccAddressR\x06Signer\x12\x1c\n\x04\x44\x61ta\x18\x02 \x01(\x0c\x42\x08\xea\xde\x1f\x04\x64\x61taR\x04\x44\x61ta\"s\n\nMsgSignDoc\x12%\n\tsign_type\x18\x01 \x01(\tB\x08\xea\xde\x1f\x04typeR\x08signType\x12>\n\x05value\x18\x02 \x01(\x0b\x32\".injective.exchange.v2.MsgSignDataB\x04\xc8\xde\x1f\x00R\x05value\"\x87\x03\n!MsgAdminUpdateBinaryOptionsMarket\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12N\n\x10settlement_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0fsettlementPrice\x12\x31\n\x14\x65xpiration_timestamp\x18\x04 \x01(\x03R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\x05 \x01(\x03R\x13settlementTimestamp\x12;\n\x06status\x18\x06 \x01(\x0e\x32#.injective.exchange.v2.MarketStatusR\x06status::\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgAdminUpdateBinaryOptionsMarket\"+\n)MsgAdminUpdateBinaryOptionsMarketResponse\"\xa6\x01\n\x17MsgAuthorizeStakeGrants\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x41\n\x06grants\x18\x02 \x03(\x0b\x32).injective.exchange.v2.GrantAuthorizationR\x06grants:0\x82\xe7\xb0*\x06sender\x8a\xe7\xb0* exchange/MsgAuthorizeStakeGrants\"!\n\x1fMsgAuthorizeStakeGrantsResponse\"y\n\x15MsgActivateStakeGrant\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x18\n\x07granter\x18\x02 \x01(\tR\x07granter:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1e\x65xchange/MsgActivateStakeGrant\"\x1f\n\x1dMsgActivateStakeGrantResponse2\xee$\n\x03Msg\x12W\n\x07\x44\x65posit\x12!.injective.exchange.v2.MsgDeposit\x1a).injective.exchange.v2.MsgDepositResponse\x12Z\n\x08Withdraw\x12\".injective.exchange.v2.MsgWithdraw\x1a*.injective.exchange.v2.MsgWithdrawResponse\x12\x87\x01\n\x17InstantSpotMarketLaunch\x12\x31.injective.exchange.v2.MsgInstantSpotMarketLaunch\x1a\x39.injective.exchange.v2.MsgInstantSpotMarketLaunchResponse\x12\x96\x01\n\x1cInstantPerpetualMarketLaunch\x12\x36.injective.exchange.v2.MsgInstantPerpetualMarketLaunch\x1a>.injective.exchange.v2.MsgInstantPerpetualMarketLaunchResponse\x12\xa2\x01\n InstantExpiryFuturesMarketLaunch\x12:.injective.exchange.v2.MsgInstantExpiryFuturesMarketLaunch\x1a\x42.injective.exchange.v2.MsgInstantExpiryFuturesMarketLaunchResponse\x12~\n\x14\x43reateSpotLimitOrder\x12..injective.exchange.v2.MsgCreateSpotLimitOrder\x1a\x36.injective.exchange.v2.MsgCreateSpotLimitOrderResponse\x12\x90\x01\n\x1a\x42\x61tchCreateSpotLimitOrders\x12\x34.injective.exchange.v2.MsgBatchCreateSpotLimitOrders\x1a<.injective.exchange.v2.MsgBatchCreateSpotLimitOrdersResponse\x12\x81\x01\n\x15\x43reateSpotMarketOrder\x12/.injective.exchange.v2.MsgCreateSpotMarketOrder\x1a\x37.injective.exchange.v2.MsgCreateSpotMarketOrderResponse\x12o\n\x0f\x43\x61ncelSpotOrder\x12).injective.exchange.v2.MsgCancelSpotOrder\x1a\x31.injective.exchange.v2.MsgCancelSpotOrderResponse\x12\x81\x01\n\x15\x42\x61tchCancelSpotOrders\x12/.injective.exchange.v2.MsgBatchCancelSpotOrders\x1a\x37.injective.exchange.v2.MsgBatchCancelSpotOrdersResponse\x12u\n\x11\x42\x61tchUpdateOrders\x12+.injective.exchange.v2.MsgBatchUpdateOrders\x1a\x33.injective.exchange.v2.MsgBatchUpdateOrdersResponse\x12\x8d\x01\n\x19PrivilegedExecuteContract\x12\x33.injective.exchange.v2.MsgPrivilegedExecuteContract\x1a;.injective.exchange.v2.MsgPrivilegedExecuteContractResponse\x12\x90\x01\n\x1a\x43reateDerivativeLimitOrder\x12\x34.injective.exchange.v2.MsgCreateDerivativeLimitOrder\x1a<.injective.exchange.v2.MsgCreateDerivativeLimitOrderResponse\x12\xa2\x01\n BatchCreateDerivativeLimitOrders\x12:.injective.exchange.v2.MsgBatchCreateDerivativeLimitOrders\x1a\x42.injective.exchange.v2.MsgBatchCreateDerivativeLimitOrdersResponse\x12\x93\x01\n\x1b\x43reateDerivativeMarketOrder\x12\x35.injective.exchange.v2.MsgCreateDerivativeMarketOrder\x1a=.injective.exchange.v2.MsgCreateDerivativeMarketOrderResponse\x12\x81\x01\n\x15\x43\x61ncelDerivativeOrder\x12/.injective.exchange.v2.MsgCancelDerivativeOrder\x1a\x37.injective.exchange.v2.MsgCancelDerivativeOrderResponse\x12\x93\x01\n\x1b\x42\x61tchCancelDerivativeOrders\x12\x35.injective.exchange.v2.MsgBatchCancelDerivativeOrders\x1a=.injective.exchange.v2.MsgBatchCancelDerivativeOrdersResponse\x12\xa2\x01\n InstantBinaryOptionsMarketLaunch\x12:.injective.exchange.v2.MsgInstantBinaryOptionsMarketLaunch\x1a\x42.injective.exchange.v2.MsgInstantBinaryOptionsMarketLaunchResponse\x12\x99\x01\n\x1d\x43reateBinaryOptionsLimitOrder\x12\x37.injective.exchange.v2.MsgCreateBinaryOptionsLimitOrder\x1a?.injective.exchange.v2.MsgCreateBinaryOptionsLimitOrderResponse\x12\x9c\x01\n\x1e\x43reateBinaryOptionsMarketOrder\x12\x38.injective.exchange.v2.MsgCreateBinaryOptionsMarketOrder\x1a@.injective.exchange.v2.MsgCreateBinaryOptionsMarketOrderResponse\x12\x8a\x01\n\x18\x43\x61ncelBinaryOptionsOrder\x12\x32.injective.exchange.v2.MsgCancelBinaryOptionsOrder\x1a:.injective.exchange.v2.MsgCancelBinaryOptionsOrderResponse\x12\x9c\x01\n\x1e\x42\x61tchCancelBinaryOptionsOrders\x12\x38.injective.exchange.v2.MsgBatchCancelBinaryOptionsOrders\x1a@.injective.exchange.v2.MsgBatchCancelBinaryOptionsOrdersResponse\x12x\n\x12SubaccountTransfer\x12,.injective.exchange.v2.MsgSubaccountTransfer\x1a\x34.injective.exchange.v2.MsgSubaccountTransferResponse\x12r\n\x10\x45xternalTransfer\x12*.injective.exchange.v2.MsgExternalTransfer\x1a\x32.injective.exchange.v2.MsgExternalTransferResponse\x12u\n\x11LiquidatePosition\x12+.injective.exchange.v2.MsgLiquidatePosition\x1a\x33.injective.exchange.v2.MsgLiquidatePositionResponse\x12\x81\x01\n\x15\x45mergencySettleMarket\x12/.injective.exchange.v2.MsgEmergencySettleMarket\x1a\x37.injective.exchange.v2.MsgEmergencySettleMarketResponse\x12\x84\x01\n\x16IncreasePositionMargin\x12\x30.injective.exchange.v2.MsgIncreasePositionMargin\x1a\x38.injective.exchange.v2.MsgIncreasePositionMarginResponse\x12\x84\x01\n\x16\x44\x65\x63reasePositionMargin\x12\x30.injective.exchange.v2.MsgDecreasePositionMargin\x1a\x38.injective.exchange.v2.MsgDecreasePositionMarginResponse\x12i\n\rRewardsOptOut\x12\'.injective.exchange.v2.MsgRewardsOptOut\x1a/.injective.exchange.v2.MsgRewardsOptOutResponse\x12\x9c\x01\n\x1e\x41\x64minUpdateBinaryOptionsMarket\x12\x38.injective.exchange.v2.MsgAdminUpdateBinaryOptionsMarket\x1a@.injective.exchange.v2.MsgAdminUpdateBinaryOptionsMarketResponse\x12\x66\n\x0cUpdateParams\x12&.injective.exchange.v2.MsgUpdateParams\x1a..injective.exchange.v2.MsgUpdateParamsResponse\x12r\n\x10UpdateSpotMarket\x12*.injective.exchange.v2.MsgUpdateSpotMarket\x1a\x32.injective.exchange.v2.MsgUpdateSpotMarketResponse\x12\x84\x01\n\x16UpdateDerivativeMarket\x12\x30.injective.exchange.v2.MsgUpdateDerivativeMarket\x1a\x38.injective.exchange.v2.MsgUpdateDerivativeMarketResponse\x12~\n\x14\x41uthorizeStakeGrants\x12..injective.exchange.v2.MsgAuthorizeStakeGrants\x1a\x36.injective.exchange.v2.MsgAuthorizeStakeGrantsResponse\x12x\n\x12\x41\x63tivateStakeGrant\x12,.injective.exchange.v2.MsgActivateStakeGrant\x1a\x34.injective.exchange.v2.MsgActivateStakeGrantResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xed\x01\n\x19\x63om.injective.exchange.v2B\x07TxProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\xa2\x02\x03IEX\xaa\x02\x15Injective.Exchange.V2\xca\x02\x15Injective\\Exchange\\V2\xe2\x02!Injective\\Exchange\\V2\\GPBMetadata\xea\x02\x17Injective::Exchange::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.tx_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\007TxProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_price_tick_size']._loaded_options = None + _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_quantity_tick_size']._loaded_options = None + _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_notional']._loaded_options = None + _globals['_MSGUPDATESPOTMARKET'].fields_by_name['new_min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATESPOTMARKET']._loaded_options = None + _globals['_MSGUPDATESPOTMARKET']._serialized_options = b'\350\240\037\000\202\347\260*\005admin\212\347\260*\034exchange/MsgUpdateSpotMarket' + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_price_tick_size']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_quantity_tick_size']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_notional']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_initial_margin_ratio']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_maintenance_margin_ratio']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGUPDATEDERIVATIVEMARKET']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\005admin\212\347\260*\"exchange/MsgUpdateDerivativeMarket' + _globals['_MSGUPDATEPARAMS'].fields_by_name['authority']._loaded_options = None + _globals['_MSGUPDATEPARAMS'].fields_by_name['authority']._serialized_options = b'\322\264-\024cosmos.AddressString' + _globals['_MSGUPDATEPARAMS'].fields_by_name['params']._loaded_options = None + _globals['_MSGUPDATEPARAMS'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_MSGUPDATEPARAMS']._loaded_options = None + _globals['_MSGUPDATEPARAMS']._serialized_options = b'\202\347\260*\tauthority\212\347\260*\030exchange/MsgUpdateParams' + _globals['_MSGDEPOSIT'].fields_by_name['amount']._loaded_options = None + _globals['_MSGDEPOSIT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_MSGDEPOSIT']._loaded_options = None + _globals['_MSGDEPOSIT']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\023exchange/MsgDeposit' + _globals['_MSGWITHDRAW'].fields_by_name['amount']._loaded_options = None + _globals['_MSGWITHDRAW'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_MSGWITHDRAW']._loaded_options = None + _globals['_MSGWITHDRAW']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\024exchange/MsgWithdraw' + _globals['_MSGCREATESPOTLIMITORDER'].fields_by_name['order']._loaded_options = None + _globals['_MSGCREATESPOTLIMITORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATESPOTLIMITORDER']._loaded_options = None + _globals['_MSGCREATESPOTLIMITORDER']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260* exchange/MsgCreateSpotLimitOrder' + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._loaded_options = None + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGBATCHCREATESPOTLIMITORDERS'].fields_by_name['orders']._loaded_options = None + _globals['_MSGBATCHCREATESPOTLIMITORDERS'].fields_by_name['orders']._serialized_options = b'\310\336\037\000' + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._loaded_options = None + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*&exchange/MsgBatchCreateSpotLimitOrders' + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._loaded_options = None + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGINSTANTSPOTMARKETLAUNCH'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_MSGINSTANTSPOTMARKETLAUNCH'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTSPOTMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_MSGINSTANTSPOTMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTSPOTMARKETLAUNCH'].fields_by_name['min_notional']._loaded_options = None + _globals['_MSGINSTANTSPOTMARKETLAUNCH'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._loaded_options = None + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*#exchange/MsgInstantSpotMarketLaunch' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['initial_margin_ratio']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['maintenance_margin_ratio']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['min_notional']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*(exchange/MsgInstantPerpetualMarketLaunch' + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['min_notional']._loaded_options = None + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._loaded_options = None + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*,exchange/MsgInstantBinaryOptionsMarketLaunch' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['maker_fee_rate']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['maker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['taker_fee_rate']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['taker_fee_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['initial_margin_ratio']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['initial_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['maintenance_margin_ratio']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['maintenance_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['min_price_tick_size']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['min_price_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['min_quantity_tick_size']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['min_notional']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*,exchange/MsgInstantExpiryFuturesMarketLaunch' + _globals['_MSGCREATESPOTMARKETORDER'].fields_by_name['order']._loaded_options = None + _globals['_MSGCREATESPOTMARKETORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATESPOTMARKETORDER']._loaded_options = None + _globals['_MSGCREATESPOTMARKETORDER']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*!exchange/MsgCreateSpotMarketOrder' + _globals['_MSGCREATESPOTMARKETORDERRESPONSE'].fields_by_name['results']._loaded_options = None + _globals['_MSGCREATESPOTMARKETORDERRESPONSE'].fields_by_name['results']._serialized_options = b'\310\336\037\001' + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._loaded_options = None + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_SPOTMARKETORDERRESULTS'].fields_by_name['quantity']._loaded_options = None + _globals['_SPOTMARKETORDERRESULTS'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETORDERRESULTS'].fields_by_name['price']._loaded_options = None + _globals['_SPOTMARKETORDERRESULTS'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETORDERRESULTS'].fields_by_name['fee']._loaded_options = None + _globals['_SPOTMARKETORDERRESULTS'].fields_by_name['fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTMARKETORDERRESULTS']._loaded_options = None + _globals['_SPOTMARKETORDERRESULTS']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGCREATEDERIVATIVELIMITORDER'].fields_by_name['order']._loaded_options = None + _globals['_MSGCREATEDERIVATIVELIMITORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATEDERIVATIVELIMITORDER']._loaded_options = None + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*&exchange/MsgCreateDerivativeLimitOrder' + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._loaded_options = None + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER'].fields_by_name['order']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*)exchange/MsgCreateBinaryOptionsLimitOrder' + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS'].fields_by_name['orders']._loaded_options = None + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS'].fields_by_name['orders']._serialized_options = b'\310\336\037\000' + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._loaded_options = None + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*,exchange/MsgBatchCreateDerivativeLimitOrders' + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._loaded_options = None + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGCANCELSPOTORDER']._loaded_options = None + _globals['_MSGCANCELSPOTORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*\033exchange/MsgCancelSpotOrder' + _globals['_MSGBATCHCANCELSPOTORDERS'].fields_by_name['data']._loaded_options = None + _globals['_MSGBATCHCANCELSPOTORDERS'].fields_by_name['data']._serialized_options = b'\310\336\037\000' + _globals['_MSGBATCHCANCELSPOTORDERS']._loaded_options = None + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*!exchange/MsgBatchCancelSpotOrders' + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._loaded_options = None + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS'].fields_by_name['data']._loaded_options = None + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS'].fields_by_name['data']._serialized_options = b'\310\336\037\000' + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._loaded_options = None + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260**exchange/MsgBatchCancelBinaryOptionsOrders' + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._loaded_options = None + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['spot_orders_to_cancel']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['spot_orders_to_cancel']._serialized_options = b'\310\336\037\001' + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['derivative_orders_to_cancel']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['derivative_orders_to_cancel']._serialized_options = b'\310\336\037\001' + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['spot_orders_to_create']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['spot_orders_to_create']._serialized_options = b'\310\336\037\001' + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['derivative_orders_to_create']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['derivative_orders_to_create']._serialized_options = b'\310\336\037\001' + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['binary_options_orders_to_cancel']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['binary_options_orders_to_cancel']._serialized_options = b'\310\336\037\001' + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['binary_options_orders_to_create']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS'].fields_by_name['binary_options_orders_to_create']._serialized_options = b'\310\336\037\001' + _globals['_MSGBATCHUPDATEORDERS']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERS']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*\035exchange/MsgBatchUpdateOrders' + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._loaded_options = None + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGCREATEDERIVATIVEMARKETORDER'].fields_by_name['order']._loaded_options = None + _globals['_MSGCREATEDERIVATIVEMARKETORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._loaded_options = None + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*\'exchange/MsgCreateDerivativeMarketOrder' + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE'].fields_by_name['results']._loaded_options = None + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE'].fields_by_name['results']._serialized_options = b'\310\336\037\001' + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._loaded_options = None + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['quantity']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['price']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['fee']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['position_delta']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['position_delta']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['payout']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERRESULTS'].fields_by_name['payout']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEMARKETORDERRESULTS']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER'].fields_by_name['order']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260**exchange/MsgCreateBinaryOptionsMarketOrder' + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE'].fields_by_name['results']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE'].fields_by_name['results']._serialized_options = b'\310\336\037\001' + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._loaded_options = None + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGCANCELDERIVATIVEORDER']._loaded_options = None + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*!exchange/MsgCancelDerivativeOrder' + _globals['_MSGCANCELBINARYOPTIONSORDER']._loaded_options = None + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*$exchange/MsgCancelBinaryOptionsOrder' + _globals['_MSGBATCHCANCELDERIVATIVEORDERS'].fields_by_name['data']._loaded_options = None + _globals['_MSGBATCHCANCELDERIVATIVEORDERS'].fields_by_name['data']._serialized_options = b'\310\336\037\000' + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._loaded_options = None + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_options = b'\210\240\037\000\202\347\260*\006sender\212\347\260*\'exchange/MsgBatchCancelDerivativeOrders' + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._loaded_options = None + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_MSGSUBACCOUNTTRANSFER'].fields_by_name['amount']._loaded_options = None + _globals['_MSGSUBACCOUNTTRANSFER'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_MSGSUBACCOUNTTRANSFER']._loaded_options = None + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_options = b'\202\347\260*\006sender\212\347\260*\036exchange/MsgSubaccountTransfer' + _globals['_MSGEXTERNALTRANSFER'].fields_by_name['amount']._loaded_options = None + _globals['_MSGEXTERNALTRANSFER'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_MSGEXTERNALTRANSFER']._loaded_options = None + _globals['_MSGEXTERNALTRANSFER']._serialized_options = b'\202\347\260*\006sender\212\347\260*\034exchange/MsgExternalTransfer' + _globals['_MSGLIQUIDATEPOSITION'].fields_by_name['order']._loaded_options = None + _globals['_MSGLIQUIDATEPOSITION'].fields_by_name['order']._serialized_options = b'\310\336\037\001' + _globals['_MSGLIQUIDATEPOSITION']._loaded_options = None + _globals['_MSGLIQUIDATEPOSITION']._serialized_options = b'\202\347\260*\006sender\212\347\260*\035exchange/MsgLiquidatePosition' + _globals['_MSGEMERGENCYSETTLEMARKET']._loaded_options = None + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_options = b'\202\347\260*\006sender\212\347\260*!exchange/MsgEmergencySettleMarket' + _globals['_MSGINCREASEPOSITIONMARGIN'].fields_by_name['amount']._loaded_options = None + _globals['_MSGINCREASEPOSITIONMARGIN'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGINCREASEPOSITIONMARGIN']._loaded_options = None + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_options = b'\202\347\260*\006sender\212\347\260*\"exchange/MsgIncreasePositionMargin' + _globals['_MSGDECREASEPOSITIONMARGIN'].fields_by_name['amount']._loaded_options = None + _globals['_MSGDECREASEPOSITIONMARGIN'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGDECREASEPOSITIONMARGIN']._loaded_options = None + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_options = b'\202\347\260*\006sender\212\347\260*\"exchange/MsgDecreasePositionMargin' + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._loaded_options = None + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*%exchange/MsgPrivilegedExecuteContract' + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE'].fields_by_name['funds_diff']._loaded_options = None + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE'].fields_by_name['funds_diff']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._loaded_options = None + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender' + _globals['_MSGREWARDSOPTOUT']._loaded_options = None + _globals['_MSGREWARDSOPTOUT']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\031exchange/MsgRewardsOptOut' + _globals['_MSGRECLAIMLOCKEDFUNDS']._loaded_options = None + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_options = b'\202\347\260*\006sender\212\347\260*\036exchange/MsgReclaimLockedFunds' + _globals['_MSGSIGNDATA'].fields_by_name['Signer']._loaded_options = None + _globals['_MSGSIGNDATA'].fields_by_name['Signer']._serialized_options = b'\352\336\037\006signer\372\336\037-github.com/cosmos/cosmos-sdk/types.AccAddress' + _globals['_MSGSIGNDATA'].fields_by_name['Data']._loaded_options = None + _globals['_MSGSIGNDATA'].fields_by_name['Data']._serialized_options = b'\352\336\037\004data' + _globals['_MSGSIGNDOC'].fields_by_name['sign_type']._loaded_options = None + _globals['_MSGSIGNDOC'].fields_by_name['sign_type']._serialized_options = b'\352\336\037\004type' + _globals['_MSGSIGNDOC'].fields_by_name['value']._loaded_options = None + _globals['_MSGSIGNDOC'].fields_by_name['value']._serialized_options = b'\310\336\037\000' + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET'].fields_by_name['settlement_price']._loaded_options = None + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET'].fields_by_name['settlement_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._loaded_options = None + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_options = b'\202\347\260*\006sender\212\347\260**exchange/MsgAdminUpdateBinaryOptionsMarket' + _globals['_MSGAUTHORIZESTAKEGRANTS']._loaded_options = None + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_options = b'\202\347\260*\006sender\212\347\260* exchange/MsgAuthorizeStakeGrants' + _globals['_MSGACTIVATESTAKEGRANT']._loaded_options = None + _globals['_MSGACTIVATESTAKEGRANT']._serialized_options = b'\202\347\260*\006sender\212\347\260*\036exchange/MsgActivateStakeGrant' + _globals['_MSG']._loaded_options = None + _globals['_MSG']._serialized_options = b'\200\347\260*\001' + _globals['_MSGUPDATESPOTMARKET']._serialized_start=379 + _globals['_MSGUPDATESPOTMARKET']._serialized_end=798 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=800 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=829 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=832 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1463 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1465 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1500 + _globals['_MSGUPDATEPARAMS']._serialized_start=1503 + _globals['_MSGUPDATEPARAMS']._serialized_end=1682 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1684 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1709 + _globals['_MSGDEPOSIT']._serialized_start=1712 + _globals['_MSGDEPOSIT']._serialized_end=1887 + _globals['_MSGDEPOSITRESPONSE']._serialized_start=1889 + _globals['_MSGDEPOSITRESPONSE']._serialized_end=1909 + _globals['_MSGWITHDRAW']._serialized_start=1912 + _globals['_MSGWITHDRAW']._serialized_end=2089 + _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2091 + _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2112 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2115 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2284 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2286 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2378 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2381 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2564 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2567 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2745 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2748 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3271 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3273 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3309 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_start=3312 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_end=4257 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_start=4259 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_end=4300 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=4303 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=5208 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=5210 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=5255 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_start=5258 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_end=6235 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_start=6237 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_end=6282 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=6285 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=6456 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=6459 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=6631 + _globals['_SPOTMARKETORDERRESULTS']._serialized_start=6634 + _globals['_SPOTMARKETORDERRESULTS']._serialized_end=6847 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=6850 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=7033 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=7035 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=7133 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=7136 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=7325 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=7327 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=7428 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=7431 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=7628 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=7631 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=7815 + _globals['_MSGCANCELSPOTORDER']._serialized_start=7818 + _globals['_MSGCANCELSPOTORDER']._serialized_end=8026 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=8028 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=8056 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=8059 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=8224 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=8226 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=8296 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=8299 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=8482 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=8484 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=8563 + _globals['_MSGBATCHUPDATEORDERS']._serialized_start=8566 + _globals['_MSGBATCHUPDATEORDERS']._serialized_end=9546 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=9549 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=10325 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=10328 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=10513 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=10516 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=10700 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=10703 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=11066 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=11069 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=11260 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=11263 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=11450 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=11453 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=11704 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=11706 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=11740 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=11743 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=12000 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=12002 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=12039 + _globals['_ORDERDATA']._serialized_start=12042 + _globals['_ORDERDATA']._serialized_end=12199 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=12202 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=12379 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=12381 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=12457 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=12460 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=12722 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=12724 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=12755 + _globals['_MSGEXTERNALTRANSFER']._serialized_start=12758 + _globals['_MSGEXTERNALTRANSFER']._serialized_end=13016 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=13018 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=13047 + _globals['_MSGLIQUIDATEPOSITION']._serialized_start=13050 + _globals['_MSGLIQUIDATEPOSITION']._serialized_end=13277 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=13279 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=13309 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=13312 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=13479 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=13481 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=13515 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=13518 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=13821 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=13823 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=13858 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=13861 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=14164 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=14166 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=14201 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=14204 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=14406 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=14409 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=14576 + _globals['_MSGREWARDSOPTOUT']._serialized_start=14578 + _globals['_MSGREWARDSOPTOUT']._serialized_end=14671 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=14673 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=14699 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=14702 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=14877 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=14879 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=14910 + _globals['_MSGSIGNDATA']._serialized_start=14913 + _globals['_MSGSIGNDATA']._serialized_end=15041 + _globals['_MSGSIGNDOC']._serialized_start=15043 + _globals['_MSGSIGNDOC']._serialized_end=15158 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=15161 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=15552 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=15554 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=15597 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=15600 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=15766 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=15768 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=15801 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=15803 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=15924 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=15926 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=15957 + _globals['_MSG']._serialized_start=15960 + _globals['_MSG']._serialized_end=20678 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py b/pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py new file mode 100644 index 00000000..bc2feace --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py @@ -0,0 +1,1595 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from pyinjective.proto.injective.exchange.v2 import tx_pb2 as injective_dot_exchange_dot_v2_dot_tx__pb2 + + +class MsgStub(object): + """Msg defines the exchange Msg service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Deposit = channel.unary_unary( + '/injective.exchange.v2.Msg/Deposit', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDeposit.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDepositResponse.FromString, + _registered_method=True) + self.Withdraw = channel.unary_unary( + '/injective.exchange.v2.Msg/Withdraw', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgWithdraw.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgWithdrawResponse.FromString, + _registered_method=True) + self.InstantSpotMarketLaunch = channel.unary_unary( + '/injective.exchange.v2.Msg/InstantSpotMarketLaunch', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantSpotMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantSpotMarketLaunchResponse.FromString, + _registered_method=True) + self.InstantPerpetualMarketLaunch = channel.unary_unary( + '/injective.exchange.v2.Msg/InstantPerpetualMarketLaunch', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantPerpetualMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantPerpetualMarketLaunchResponse.FromString, + _registered_method=True) + self.InstantExpiryFuturesMarketLaunch = channel.unary_unary( + '/injective.exchange.v2.Msg/InstantExpiryFuturesMarketLaunch', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunchResponse.FromString, + _registered_method=True) + self.CreateSpotLimitOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CreateSpotLimitOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotLimitOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotLimitOrderResponse.FromString, + _registered_method=True) + self.BatchCreateSpotLimitOrders = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchCreateSpotLimitOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateSpotLimitOrders.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateSpotLimitOrdersResponse.FromString, + _registered_method=True) + self.CreateSpotMarketOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CreateSpotMarketOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotMarketOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotMarketOrderResponse.FromString, + _registered_method=True) + self.CancelSpotOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CancelSpotOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelSpotOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelSpotOrderResponse.FromString, + _registered_method=True) + self.BatchCancelSpotOrders = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchCancelSpotOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelSpotOrders.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelSpotOrdersResponse.FromString, + _registered_method=True) + self.BatchUpdateOrders = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchUpdateOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchUpdateOrders.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchUpdateOrdersResponse.FromString, + _registered_method=True) + self.PrivilegedExecuteContract = channel.unary_unary( + '/injective.exchange.v2.Msg/PrivilegedExecuteContract', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPrivilegedExecuteContract.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPrivilegedExecuteContractResponse.FromString, + _registered_method=True) + self.CreateDerivativeLimitOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CreateDerivativeLimitOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeLimitOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeLimitOrderResponse.FromString, + _registered_method=True) + self.BatchCreateDerivativeLimitOrders = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchCreateDerivativeLimitOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateDerivativeLimitOrders.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateDerivativeLimitOrdersResponse.FromString, + _registered_method=True) + self.CreateDerivativeMarketOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CreateDerivativeMarketOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeMarketOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeMarketOrderResponse.FromString, + _registered_method=True) + self.CancelDerivativeOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CancelDerivativeOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelDerivativeOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelDerivativeOrderResponse.FromString, + _registered_method=True) + self.BatchCancelDerivativeOrders = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchCancelDerivativeOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelDerivativeOrders.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelDerivativeOrdersResponse.FromString, + _registered_method=True) + self.InstantBinaryOptionsMarketLaunch = channel.unary_unary( + '/injective.exchange.v2.Msg/InstantBinaryOptionsMarketLaunch', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantBinaryOptionsMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantBinaryOptionsMarketLaunchResponse.FromString, + _registered_method=True) + self.CreateBinaryOptionsLimitOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CreateBinaryOptionsLimitOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsLimitOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsLimitOrderResponse.FromString, + _registered_method=True) + self.CreateBinaryOptionsMarketOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CreateBinaryOptionsMarketOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsMarketOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsMarketOrderResponse.FromString, + _registered_method=True) + self.CancelBinaryOptionsOrder = channel.unary_unary( + '/injective.exchange.v2.Msg/CancelBinaryOptionsOrder', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelBinaryOptionsOrder.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelBinaryOptionsOrderResponse.FromString, + _registered_method=True) + self.BatchCancelBinaryOptionsOrders = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchCancelBinaryOptionsOrders', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelBinaryOptionsOrders.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelBinaryOptionsOrdersResponse.FromString, + _registered_method=True) + self.SubaccountTransfer = channel.unary_unary( + '/injective.exchange.v2.Msg/SubaccountTransfer', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSubaccountTransfer.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSubaccountTransferResponse.FromString, + _registered_method=True) + self.ExternalTransfer = channel.unary_unary( + '/injective.exchange.v2.Msg/ExternalTransfer', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExternalTransfer.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExternalTransferResponse.FromString, + _registered_method=True) + self.LiquidatePosition = channel.unary_unary( + '/injective.exchange.v2.Msg/LiquidatePosition', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgLiquidatePosition.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgLiquidatePositionResponse.FromString, + _registered_method=True) + self.EmergencySettleMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/EmergencySettleMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgEmergencySettleMarket.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgEmergencySettleMarketResponse.FromString, + _registered_method=True) + self.IncreasePositionMargin = channel.unary_unary( + '/injective.exchange.v2.Msg/IncreasePositionMargin', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgIncreasePositionMargin.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgIncreasePositionMarginResponse.FromString, + _registered_method=True) + self.DecreasePositionMargin = channel.unary_unary( + '/injective.exchange.v2.Msg/DecreasePositionMargin', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDecreasePositionMargin.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDecreasePositionMarginResponse.FromString, + _registered_method=True) + self.RewardsOptOut = channel.unary_unary( + '/injective.exchange.v2.Msg/RewardsOptOut', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgRewardsOptOut.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgRewardsOptOutResponse.FromString, + _registered_method=True) + self.AdminUpdateBinaryOptionsMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/AdminUpdateBinaryOptionsMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAdminUpdateBinaryOptionsMarket.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAdminUpdateBinaryOptionsMarketResponse.FromString, + _registered_method=True) + self.UpdateParams = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateParams', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateParams.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + _registered_method=True) + self.UpdateSpotMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateSpotMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateSpotMarket.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateSpotMarketResponse.FromString, + _registered_method=True) + self.UpdateDerivativeMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateDerivativeMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateDerivativeMarket.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateDerivativeMarketResponse.FromString, + _registered_method=True) + self.AuthorizeStakeGrants = channel.unary_unary( + '/injective.exchange.v2.Msg/AuthorizeStakeGrants', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAuthorizeStakeGrants.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAuthorizeStakeGrantsResponse.FromString, + _registered_method=True) + self.ActivateStakeGrant = channel.unary_unary( + '/injective.exchange.v2.Msg/ActivateStakeGrant', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrant.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrantResponse.FromString, + _registered_method=True) + + +class MsgServicer(object): + """Msg defines the exchange Msg service. + """ + + def Deposit(self, request, context): + """Deposit defines a method for transferring coins from the sender's bank + balance into the subaccount's exchange deposits + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Withdraw(self, request, context): + """Withdraw defines a method for withdrawing coins from a subaccount's + deposits to the user's bank balance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InstantSpotMarketLaunch(self, request, context): + """InstantSpotMarketLaunch defines method for creating a spot market by paying + listing fee without governance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InstantPerpetualMarketLaunch(self, request, context): + """InstantPerpetualMarketLaunch defines a method for creating a new perpetual + futures market by paying listing fee without governance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InstantExpiryFuturesMarketLaunch(self, request, context): + """InstantExpiryFuturesMarketLaunch defines a method for creating a new expiry + futures market by paying listing fee without governance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateSpotLimitOrder(self, request, context): + """CreateSpotLimitOrder defines a method for creating a new spot limit order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchCreateSpotLimitOrders(self, request, context): + """BatchCreateSpotLimitOrder defines a method for creating a new batch of spot + limit orders. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateSpotMarketOrder(self, request, context): + """CreateSpotMarketOrder defines a method for creating a new spot market + order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CancelSpotOrder(self, request, context): + """MsgCancelSpotOrder defines a method for cancelling a spot order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchCancelSpotOrders(self, request, context): + """BatchCancelSpotOrders defines a method for cancelling a batch of spot + orders in a given market. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchUpdateOrders(self, request, context): + """BatchUpdateOrders defines a method for updating a batch of orders. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PrivilegedExecuteContract(self, request, context): + """PrivilegedExecuteContract defines a method for executing a Cosmwasm + contract from the exchange module with privileged capabilities. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateDerivativeLimitOrder(self, request, context): + """CreateDerivativeLimitOrder defines a method for creating a new derivative + limit order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchCreateDerivativeLimitOrders(self, request, context): + """BatchCreateDerivativeLimitOrders defines a method for creating a new batch + of derivative limit orders. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateDerivativeMarketOrder(self, request, context): + """MsgCreateDerivativeLimitOrder defines a method for creating a new + derivative market order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CancelDerivativeOrder(self, request, context): + """MsgCancelDerivativeOrder defines a method for cancelling a derivative + order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchCancelDerivativeOrders(self, request, context): + """MsgBatchCancelDerivativeOrders defines a method for cancelling a batch of + derivative limit orders. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InstantBinaryOptionsMarketLaunch(self, request, context): + """InstantBinaryOptionsMarketLaunch defines method for creating a binary + options market by paying listing fee without governance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateBinaryOptionsLimitOrder(self, request, context): + """CreateBinaryOptionsLimitOrder defines a method for creating a new binary + options limit order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateBinaryOptionsMarketOrder(self, request, context): + """CreateBinaryOptionsMarketOrder defines a method for creating a new binary + options market order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CancelBinaryOptionsOrder(self, request, context): + """MsgCancelBinaryOptionsOrder defines a method for cancelling a binary + options order. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BatchCancelBinaryOptionsOrders(self, request, context): + """BatchCancelBinaryOptionsOrders defines a method for cancelling a batch of + binary options limit orders. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubaccountTransfer(self, request, context): + """SubaccountTransfer defines a method for transfer between subaccounts + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExternalTransfer(self, request, context): + """ExternalTransfer defines a method for transfer between external accounts + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LiquidatePosition(self, request, context): + """LiquidatePosition defines a method for liquidating a position + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EmergencySettleMarket(self, request, context): + """EmergencySettleMarket defines a method for emergency settling a market + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def IncreasePositionMargin(self, request, context): + """IncreasePositionMargin defines a method for increasing margin of a position + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DecreasePositionMargin(self, request, context): + """DecreasePositionMargin defines a method for decreasing margin of a position + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RewardsOptOut(self, request, context): + """RewardsOptOut defines a method for opting out of rewards + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AdminUpdateBinaryOptionsMarket(self, request, context): + """AdminUpdateBinaryOptionsMarket defines method for updating a binary options + market by admin + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateParams(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateSpotMarket(self, request, context): + """UpdateSpotMarket modifies certain spot market fields (admin only) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateDerivativeMarket(self, request, context): + """UpdateDerivativeMarket modifies certain derivative market fields (admin + only) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AuthorizeStakeGrants(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ActivateStakeGrant(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_MsgServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Deposit': grpc.unary_unary_rpc_method_handler( + servicer.Deposit, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDeposit.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDepositResponse.SerializeToString, + ), + 'Withdraw': grpc.unary_unary_rpc_method_handler( + servicer.Withdraw, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgWithdraw.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgWithdrawResponse.SerializeToString, + ), + 'InstantSpotMarketLaunch': grpc.unary_unary_rpc_method_handler( + servicer.InstantSpotMarketLaunch, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantSpotMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantSpotMarketLaunchResponse.SerializeToString, + ), + 'InstantPerpetualMarketLaunch': grpc.unary_unary_rpc_method_handler( + servicer.InstantPerpetualMarketLaunch, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantPerpetualMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantPerpetualMarketLaunchResponse.SerializeToString, + ), + 'InstantExpiryFuturesMarketLaunch': grpc.unary_unary_rpc_method_handler( + servicer.InstantExpiryFuturesMarketLaunch, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunchResponse.SerializeToString, + ), + 'CreateSpotLimitOrder': grpc.unary_unary_rpc_method_handler( + servicer.CreateSpotLimitOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotLimitOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotLimitOrderResponse.SerializeToString, + ), + 'BatchCreateSpotLimitOrders': grpc.unary_unary_rpc_method_handler( + servicer.BatchCreateSpotLimitOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateSpotLimitOrders.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateSpotLimitOrdersResponse.SerializeToString, + ), + 'CreateSpotMarketOrder': grpc.unary_unary_rpc_method_handler( + servicer.CreateSpotMarketOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotMarketOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotMarketOrderResponse.SerializeToString, + ), + 'CancelSpotOrder': grpc.unary_unary_rpc_method_handler( + servicer.CancelSpotOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelSpotOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelSpotOrderResponse.SerializeToString, + ), + 'BatchCancelSpotOrders': grpc.unary_unary_rpc_method_handler( + servicer.BatchCancelSpotOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelSpotOrders.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelSpotOrdersResponse.SerializeToString, + ), + 'BatchUpdateOrders': grpc.unary_unary_rpc_method_handler( + servicer.BatchUpdateOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchUpdateOrders.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchUpdateOrdersResponse.SerializeToString, + ), + 'PrivilegedExecuteContract': grpc.unary_unary_rpc_method_handler( + servicer.PrivilegedExecuteContract, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPrivilegedExecuteContract.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPrivilegedExecuteContractResponse.SerializeToString, + ), + 'CreateDerivativeLimitOrder': grpc.unary_unary_rpc_method_handler( + servicer.CreateDerivativeLimitOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeLimitOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeLimitOrderResponse.SerializeToString, + ), + 'BatchCreateDerivativeLimitOrders': grpc.unary_unary_rpc_method_handler( + servicer.BatchCreateDerivativeLimitOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateDerivativeLimitOrders.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateDerivativeLimitOrdersResponse.SerializeToString, + ), + 'CreateDerivativeMarketOrder': grpc.unary_unary_rpc_method_handler( + servicer.CreateDerivativeMarketOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeMarketOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeMarketOrderResponse.SerializeToString, + ), + 'CancelDerivativeOrder': grpc.unary_unary_rpc_method_handler( + servicer.CancelDerivativeOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelDerivativeOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelDerivativeOrderResponse.SerializeToString, + ), + 'BatchCancelDerivativeOrders': grpc.unary_unary_rpc_method_handler( + servicer.BatchCancelDerivativeOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelDerivativeOrders.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelDerivativeOrdersResponse.SerializeToString, + ), + 'InstantBinaryOptionsMarketLaunch': grpc.unary_unary_rpc_method_handler( + servicer.InstantBinaryOptionsMarketLaunch, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantBinaryOptionsMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantBinaryOptionsMarketLaunchResponse.SerializeToString, + ), + 'CreateBinaryOptionsLimitOrder': grpc.unary_unary_rpc_method_handler( + servicer.CreateBinaryOptionsLimitOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsLimitOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsLimitOrderResponse.SerializeToString, + ), + 'CreateBinaryOptionsMarketOrder': grpc.unary_unary_rpc_method_handler( + servicer.CreateBinaryOptionsMarketOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsMarketOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsMarketOrderResponse.SerializeToString, + ), + 'CancelBinaryOptionsOrder': grpc.unary_unary_rpc_method_handler( + servicer.CancelBinaryOptionsOrder, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelBinaryOptionsOrder.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelBinaryOptionsOrderResponse.SerializeToString, + ), + 'BatchCancelBinaryOptionsOrders': grpc.unary_unary_rpc_method_handler( + servicer.BatchCancelBinaryOptionsOrders, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelBinaryOptionsOrders.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelBinaryOptionsOrdersResponse.SerializeToString, + ), + 'SubaccountTransfer': grpc.unary_unary_rpc_method_handler( + servicer.SubaccountTransfer, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSubaccountTransfer.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSubaccountTransferResponse.SerializeToString, + ), + 'ExternalTransfer': grpc.unary_unary_rpc_method_handler( + servicer.ExternalTransfer, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExternalTransfer.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExternalTransferResponse.SerializeToString, + ), + 'LiquidatePosition': grpc.unary_unary_rpc_method_handler( + servicer.LiquidatePosition, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgLiquidatePosition.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgLiquidatePositionResponse.SerializeToString, + ), + 'EmergencySettleMarket': grpc.unary_unary_rpc_method_handler( + servicer.EmergencySettleMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgEmergencySettleMarket.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgEmergencySettleMarketResponse.SerializeToString, + ), + 'IncreasePositionMargin': grpc.unary_unary_rpc_method_handler( + servicer.IncreasePositionMargin, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgIncreasePositionMargin.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgIncreasePositionMarginResponse.SerializeToString, + ), + 'DecreasePositionMargin': grpc.unary_unary_rpc_method_handler( + servicer.DecreasePositionMargin, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDecreasePositionMargin.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDecreasePositionMarginResponse.SerializeToString, + ), + 'RewardsOptOut': grpc.unary_unary_rpc_method_handler( + servicer.RewardsOptOut, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgRewardsOptOut.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgRewardsOptOutResponse.SerializeToString, + ), + 'AdminUpdateBinaryOptionsMarket': grpc.unary_unary_rpc_method_handler( + servicer.AdminUpdateBinaryOptionsMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAdminUpdateBinaryOptionsMarket.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAdminUpdateBinaryOptionsMarketResponse.SerializeToString, + ), + 'UpdateParams': grpc.unary_unary_rpc_method_handler( + servicer.UpdateParams, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateParams.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateParamsResponse.SerializeToString, + ), + 'UpdateSpotMarket': grpc.unary_unary_rpc_method_handler( + servicer.UpdateSpotMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateSpotMarket.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateSpotMarketResponse.SerializeToString, + ), + 'UpdateDerivativeMarket': grpc.unary_unary_rpc_method_handler( + servicer.UpdateDerivativeMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateDerivativeMarket.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateDerivativeMarketResponse.SerializeToString, + ), + 'AuthorizeStakeGrants': grpc.unary_unary_rpc_method_handler( + servicer.AuthorizeStakeGrants, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAuthorizeStakeGrants.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAuthorizeStakeGrantsResponse.SerializeToString, + ), + 'ActivateStakeGrant': grpc.unary_unary_rpc_method_handler( + servicer.ActivateStakeGrant, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrant.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrantResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.exchange.v2.Msg', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.exchange.v2.Msg', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Msg(object): + """Msg defines the exchange Msg service. + """ + + @staticmethod + def Deposit(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/Deposit', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDeposit.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDepositResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Withdraw(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/Withdraw', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgWithdraw.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgWithdrawResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InstantSpotMarketLaunch(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/InstantSpotMarketLaunch', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantSpotMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantSpotMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InstantPerpetualMarketLaunch(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/InstantPerpetualMarketLaunch', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantPerpetualMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantPerpetualMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InstantExpiryFuturesMarketLaunch(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/InstantExpiryFuturesMarketLaunch', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateSpotLimitOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CreateSpotLimitOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotLimitOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotLimitOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchCreateSpotLimitOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/BatchCreateSpotLimitOrders', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateSpotLimitOrders.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateSpotLimitOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateSpotMarketOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CreateSpotMarketOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotMarketOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateSpotMarketOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CancelSpotOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CancelSpotOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelSpotOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelSpotOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchCancelSpotOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/BatchCancelSpotOrders', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelSpotOrders.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelSpotOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchUpdateOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/BatchUpdateOrders', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchUpdateOrders.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchUpdateOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PrivilegedExecuteContract(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/PrivilegedExecuteContract', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPrivilegedExecuteContract.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPrivilegedExecuteContractResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateDerivativeLimitOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CreateDerivativeLimitOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeLimitOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeLimitOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchCreateDerivativeLimitOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/BatchCreateDerivativeLimitOrders', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateDerivativeLimitOrders.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCreateDerivativeLimitOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateDerivativeMarketOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CreateDerivativeMarketOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeMarketOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateDerivativeMarketOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CancelDerivativeOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CancelDerivativeOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelDerivativeOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelDerivativeOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchCancelDerivativeOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/BatchCancelDerivativeOrders', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelDerivativeOrders.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelDerivativeOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InstantBinaryOptionsMarketLaunch(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/InstantBinaryOptionsMarketLaunch', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantBinaryOptionsMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgInstantBinaryOptionsMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateBinaryOptionsLimitOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CreateBinaryOptionsLimitOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsLimitOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsLimitOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateBinaryOptionsMarketOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CreateBinaryOptionsMarketOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsMarketOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCreateBinaryOptionsMarketOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CancelBinaryOptionsOrder(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/CancelBinaryOptionsOrder', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelBinaryOptionsOrder.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgCancelBinaryOptionsOrderResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchCancelBinaryOptionsOrders(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/BatchCancelBinaryOptionsOrders', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelBinaryOptionsOrders.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCancelBinaryOptionsOrdersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SubaccountTransfer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/SubaccountTransfer', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSubaccountTransfer.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSubaccountTransferResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExternalTransfer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/ExternalTransfer', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExternalTransfer.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExternalTransferResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LiquidatePosition(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/LiquidatePosition', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgLiquidatePosition.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgLiquidatePositionResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def EmergencySettleMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/EmergencySettleMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgEmergencySettleMarket.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgEmergencySettleMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def IncreasePositionMargin(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/IncreasePositionMargin', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgIncreasePositionMargin.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgIncreasePositionMarginResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DecreasePositionMargin(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/DecreasePositionMargin', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDecreasePositionMargin.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDecreasePositionMarginResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def RewardsOptOut(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/RewardsOptOut', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgRewardsOptOut.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgRewardsOptOutResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AdminUpdateBinaryOptionsMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/AdminUpdateBinaryOptionsMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAdminUpdateBinaryOptionsMarket.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAdminUpdateBinaryOptionsMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateParams(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/UpdateParams', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateParams.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateSpotMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/UpdateSpotMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateSpotMarket.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateSpotMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateDerivativeMarket(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/UpdateDerivativeMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateDerivativeMarket.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgUpdateDerivativeMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AuthorizeStakeGrants(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/AuthorizeStakeGrants', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAuthorizeStakeGrants.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAuthorizeStakeGrantsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ActivateStakeGrant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.exchange.v2.Msg/ActivateStakeGrant', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrant.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrantResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/stream/v1beta1/query_pb2.py b/pyinjective/proto/injective/stream/v1beta1/query_pb2.py index 380cce40..20d2bdd5 100644 --- a/pyinjective/proto/injective/stream/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/stream/v1beta1/query_pb2.py @@ -18,7 +18,7 @@ from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as injective_dot_exchange_dot_v1beta1_dot_exchange__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/stream/v1beta1/query.proto\x12\x18injective.stream.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x14gogoproto/gogo.proto\x1a\'injective/exchange/v1beta1/events.proto\x1a)injective/exchange/v1beta1/exchange.proto\"\x8e\x08\n\rStreamRequest\x12\x64\n\x14\x62\x61nk_balances_filter\x18\x01 \x01(\x0b\x32,.injective.stream.v1beta1.BankBalancesFilterB\x04\xc8\xde\x1f\x01R\x12\x62\x61nkBalancesFilter\x12v\n\x1asubaccount_deposits_filter\x18\x02 \x01(\x0b\x32\x32.injective.stream.v1beta1.SubaccountDepositsFilterB\x04\xc8\xde\x1f\x01R\x18subaccountDepositsFilter\x12Z\n\x12spot_trades_filter\x18\x03 \x01(\x0b\x32&.injective.stream.v1beta1.TradesFilterB\x04\xc8\xde\x1f\x01R\x10spotTradesFilter\x12\x66\n\x18\x64\x65rivative_trades_filter\x18\x04 \x01(\x0b\x32&.injective.stream.v1beta1.TradesFilterB\x04\xc8\xde\x1f\x01R\x16\x64\x65rivativeTradesFilter\x12Z\n\x12spot_orders_filter\x18\x05 \x01(\x0b\x32&.injective.stream.v1beta1.OrdersFilterB\x04\xc8\xde\x1f\x01R\x10spotOrdersFilter\x12\x66\n\x18\x64\x65rivative_orders_filter\x18\x06 \x01(\x0b\x32&.injective.stream.v1beta1.OrdersFilterB\x04\xc8\xde\x1f\x01R\x16\x64\x65rivativeOrdersFilter\x12\x65\n\x16spot_orderbooks_filter\x18\x07 \x01(\x0b\x32).injective.stream.v1beta1.OrderbookFilterB\x04\xc8\xde\x1f\x01R\x14spotOrderbooksFilter\x12q\n\x1c\x64\x65rivative_orderbooks_filter\x18\x08 \x01(\x0b\x32).injective.stream.v1beta1.OrderbookFilterB\x04\xc8\xde\x1f\x01R\x1a\x64\x65rivativeOrderbooksFilter\x12Z\n\x10positions_filter\x18\t \x01(\x0b\x32).injective.stream.v1beta1.PositionsFilterB\x04\xc8\xde\x1f\x01R\x0fpositionsFilter\x12\x61\n\x13oracle_price_filter\x18\n \x01(\x0b\x32+.injective.stream.v1beta1.OraclePriceFilterB\x04\xc8\xde\x1f\x01R\x11oraclePriceFilter\"\xa1\x07\n\x0eStreamResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x04R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x02 \x01(\x03R\tblockTime\x12J\n\rbank_balances\x18\x03 \x03(\x0b\x32%.injective.stream.v1beta1.BankBalanceR\x0c\x62\x61nkBalances\x12]\n\x13subaccount_deposits\x18\x04 \x03(\x0b\x32,.injective.stream.v1beta1.SubaccountDepositsR\x12subaccountDeposits\x12\x44\n\x0bspot_trades\x18\x05 \x03(\x0b\x32#.injective.stream.v1beta1.SpotTradeR\nspotTrades\x12V\n\x11\x64\x65rivative_trades\x18\x06 \x03(\x0b\x32).injective.stream.v1beta1.DerivativeTradeR\x10\x64\x65rivativeTrades\x12J\n\x0bspot_orders\x18\x07 \x03(\x0b\x32).injective.stream.v1beta1.SpotOrderUpdateR\nspotOrders\x12\\\n\x11\x64\x65rivative_orders\x18\x08 \x03(\x0b\x32/.injective.stream.v1beta1.DerivativeOrderUpdateR\x10\x64\x65rivativeOrders\x12_\n\x16spot_orderbook_updates\x18\t \x03(\x0b\x32).injective.stream.v1beta1.OrderbookUpdateR\x14spotOrderbookUpdates\x12k\n\x1c\x64\x65rivative_orderbook_updates\x18\n \x03(\x0b\x32).injective.stream.v1beta1.OrderbookUpdateR\x1a\x64\x65rivativeOrderbookUpdates\x12@\n\tpositions\x18\x0b \x03(\x0b\x32\".injective.stream.v1beta1.PositionR\tpositions\x12J\n\roracle_prices\x18\x0c \x03(\x0b\x32%.injective.stream.v1beta1.OraclePriceR\x0coraclePrices\"f\n\x0fOrderbookUpdate\x12\x10\n\x03seq\x18\x01 \x01(\x04R\x03seq\x12\x41\n\torderbook\x18\x02 \x01(\x0b\x32#.injective.stream.v1beta1.OrderbookR\torderbook\"\xae\x01\n\tOrderbook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12@\n\nbuy_levels\x18\x02 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\tbuyLevels\x12\x42\n\x0bsell_levels\x18\x03 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\nsellLevels\"\x90\x01\n\x0b\x42\x61nkBalance\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12g\n\x08\x62\x61lances\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x08\x62\x61lances\"\x88\x01\n\x12SubaccountDeposits\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12M\n\x08\x64\x65posits\x18\x02 \x03(\x0b\x32+.injective.stream.v1beta1.SubaccountDepositB\x04\xc8\xde\x1f\x00R\x08\x64\x65posits\"n\n\x11SubaccountDeposit\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x02 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositB\x04\xc8\xde\x1f\x00R\x07\x64\x65posit\"\xc2\x01\n\x0fSpotOrderUpdate\x12\x43\n\x06status\x18\x01 \x01(\x0e\x32+.injective.stream.v1beta1.OrderUpdateStatusR\x06status\x12\x1d\n\norder_hash\x18\x02 \x01(\x0cR\torderHash\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective.stream.v1beta1.SpotOrderR\x05order\"p\n\tSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x46\n\x05order\x18\x02 \x01(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\"\xce\x01\n\x15\x44\x65rivativeOrderUpdate\x12\x43\n\x06status\x18\x01 \x01(\x0e\x32+.injective.stream.v1beta1.OrderUpdateStatusR\x06status\x12\x1d\n\norder_hash\x18\x02 \x01(\x0cR\torderHash\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id\x12?\n\x05order\x18\x04 \x01(\x0b\x32).injective.stream.v1beta1.DerivativeOrderR\x05order\"\x99\x01\n\x0f\x44\x65rivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12L\n\x05order\x18\x02 \x01(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\x12\x1b\n\tis_market\x18\x03 \x01(\x08R\x08isMarket\"\x87\x03\n\x08Position\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06isLong\x18\x03 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12;\n\x06margin\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12]\n\x18\x63umulative_funding_entry\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16\x63umulativeFundingEntry\"t\n\x0bOraclePrice\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xc3\x03\n\tSpotTrade\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12$\n\rexecutionType\x18\x03 \x01(\tR\rexecutionType\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12#\n\rsubaccount_id\x18\x06 \x01(\tR\x0csubaccountId\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x08 \x01(\x0cR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\t \x01(\tB\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\n \x01(\tR\x03\x63id\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\"\xdc\x03\n\x0f\x44\x65rivativeTrade\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12$\n\rexecutionType\x18\x03 \x01(\tR\rexecutionType\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12P\n\x0eposition_delta\x18\x05 \x01(\x0b\x32).injective.exchange.v1beta1.PositionDeltaR\rpositionDelta\x12;\n\x06payout\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x08 \x01(\tR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\t \x01(\tB\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\n \x01(\tR\x03\x63id\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\"T\n\x0cTradesFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"W\n\x0fPositionsFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"T\n\x0cOrdersFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"0\n\x0fOrderbookFilter\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"0\n\x12\x42\x61nkBalancesFilter\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\"A\n\x18SubaccountDepositsFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\"+\n\x11OraclePriceFilter\x12\x16\n\x06symbol\x18\x01 \x03(\tR\x06symbol*L\n\x11OrderUpdateStatus\x12\x0f\n\x0bUnspecified\x10\x00\x12\n\n\x06\x42ooked\x10\x01\x12\x0b\n\x07Matched\x10\x02\x12\r\n\tCancelled\x10\x03\x32g\n\x06Stream\x12]\n\x06Stream\x12\'.injective.stream.v1beta1.StreamRequest\x1a(.injective.stream.v1beta1.StreamResponse0\x01\x42\xf2\x01\n\x1c\x63om.injective.stream.v1beta1B\nQueryProtoP\x01ZDgithub.com/InjectiveLabs/injective-core/injective-chain/stream/types\xa2\x02\x03ISX\xaa\x02\x18Injective.Stream.V1beta1\xca\x02\x18Injective\\Stream\\V1beta1\xe2\x02$Injective\\Stream\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Stream::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/stream/v1beta1/query.proto\x12\x18injective.stream.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x14gogoproto/gogo.proto\x1a\'injective/exchange/v1beta1/events.proto\x1a)injective/exchange/v1beta1/exchange.proto\"\x8e\x08\n\rStreamRequest\x12\x64\n\x14\x62\x61nk_balances_filter\x18\x01 \x01(\x0b\x32,.injective.stream.v1beta1.BankBalancesFilterB\x04\xc8\xde\x1f\x01R\x12\x62\x61nkBalancesFilter\x12v\n\x1asubaccount_deposits_filter\x18\x02 \x01(\x0b\x32\x32.injective.stream.v1beta1.SubaccountDepositsFilterB\x04\xc8\xde\x1f\x01R\x18subaccountDepositsFilter\x12Z\n\x12spot_trades_filter\x18\x03 \x01(\x0b\x32&.injective.stream.v1beta1.TradesFilterB\x04\xc8\xde\x1f\x01R\x10spotTradesFilter\x12\x66\n\x18\x64\x65rivative_trades_filter\x18\x04 \x01(\x0b\x32&.injective.stream.v1beta1.TradesFilterB\x04\xc8\xde\x1f\x01R\x16\x64\x65rivativeTradesFilter\x12Z\n\x12spot_orders_filter\x18\x05 \x01(\x0b\x32&.injective.stream.v1beta1.OrdersFilterB\x04\xc8\xde\x1f\x01R\x10spotOrdersFilter\x12\x66\n\x18\x64\x65rivative_orders_filter\x18\x06 \x01(\x0b\x32&.injective.stream.v1beta1.OrdersFilterB\x04\xc8\xde\x1f\x01R\x16\x64\x65rivativeOrdersFilter\x12\x65\n\x16spot_orderbooks_filter\x18\x07 \x01(\x0b\x32).injective.stream.v1beta1.OrderbookFilterB\x04\xc8\xde\x1f\x01R\x14spotOrderbooksFilter\x12q\n\x1c\x64\x65rivative_orderbooks_filter\x18\x08 \x01(\x0b\x32).injective.stream.v1beta1.OrderbookFilterB\x04\xc8\xde\x1f\x01R\x1a\x64\x65rivativeOrderbooksFilter\x12Z\n\x10positions_filter\x18\t \x01(\x0b\x32).injective.stream.v1beta1.PositionsFilterB\x04\xc8\xde\x1f\x01R\x0fpositionsFilter\x12\x61\n\x13oracle_price_filter\x18\n \x01(\x0b\x32+.injective.stream.v1beta1.OraclePriceFilterB\x04\xc8\xde\x1f\x01R\x11oraclePriceFilter\"\xa1\x07\n\x0eStreamResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x04R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x02 \x01(\x03R\tblockTime\x12J\n\rbank_balances\x18\x03 \x03(\x0b\x32%.injective.stream.v1beta1.BankBalanceR\x0c\x62\x61nkBalances\x12]\n\x13subaccount_deposits\x18\x04 \x03(\x0b\x32,.injective.stream.v1beta1.SubaccountDepositsR\x12subaccountDeposits\x12\x44\n\x0bspot_trades\x18\x05 \x03(\x0b\x32#.injective.stream.v1beta1.SpotTradeR\nspotTrades\x12V\n\x11\x64\x65rivative_trades\x18\x06 \x03(\x0b\x32).injective.stream.v1beta1.DerivativeTradeR\x10\x64\x65rivativeTrades\x12J\n\x0bspot_orders\x18\x07 \x03(\x0b\x32).injective.stream.v1beta1.SpotOrderUpdateR\nspotOrders\x12\\\n\x11\x64\x65rivative_orders\x18\x08 \x03(\x0b\x32/.injective.stream.v1beta1.DerivativeOrderUpdateR\x10\x64\x65rivativeOrders\x12_\n\x16spot_orderbook_updates\x18\t \x03(\x0b\x32).injective.stream.v1beta1.OrderbookUpdateR\x14spotOrderbookUpdates\x12k\n\x1c\x64\x65rivative_orderbook_updates\x18\n \x03(\x0b\x32).injective.stream.v1beta1.OrderbookUpdateR\x1a\x64\x65rivativeOrderbookUpdates\x12@\n\tpositions\x18\x0b \x03(\x0b\x32\".injective.stream.v1beta1.PositionR\tpositions\x12J\n\roracle_prices\x18\x0c \x03(\x0b\x32%.injective.stream.v1beta1.OraclePriceR\x0coraclePrices\"f\n\x0fOrderbookUpdate\x12\x10\n\x03seq\x18\x01 \x01(\x04R\x03seq\x12\x41\n\torderbook\x18\x02 \x01(\x0b\x32#.injective.stream.v1beta1.OrderbookR\torderbook\"\xae\x01\n\tOrderbook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12@\n\nbuy_levels\x18\x02 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\tbuyLevels\x12\x42\n\x0bsell_levels\x18\x03 \x03(\x0b\x32!.injective.exchange.v1beta1.LevelR\nsellLevels\"\x90\x01\n\x0b\x42\x61nkBalance\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12g\n\x08\x62\x61lances\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x08\x62\x61lances\"\x88\x01\n\x12SubaccountDeposits\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12M\n\x08\x64\x65posits\x18\x02 \x03(\x0b\x32+.injective.stream.v1beta1.SubaccountDepositB\x04\xc8\xde\x1f\x00R\x08\x64\x65posits\"n\n\x11SubaccountDeposit\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x02 \x01(\x0b\x32#.injective.exchange.v1beta1.DepositB\x04\xc8\xde\x1f\x00R\x07\x64\x65posit\"\xc2\x01\n\x0fSpotOrderUpdate\x12\x43\n\x06status\x18\x01 \x01(\x0e\x32+.injective.stream.v1beta1.OrderUpdateStatusR\x06status\x12\x1d\n\norder_hash\x18\x02 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective.stream.v1beta1.SpotOrderR\x05order\"p\n\tSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x46\n\x05order\x18\x02 \x01(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\"\xce\x01\n\x15\x44\x65rivativeOrderUpdate\x12\x43\n\x06status\x18\x01 \x01(\x0e\x32+.injective.stream.v1beta1.OrderUpdateStatusR\x06status\x12\x1d\n\norder_hash\x18\x02 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id\x12?\n\x05order\x18\x04 \x01(\x0b\x32).injective.stream.v1beta1.DerivativeOrderR\x05order\"\x99\x01\n\x0f\x44\x65rivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12L\n\x05order\x18\x02 \x01(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\x12\x1b\n\tis_market\x18\x03 \x01(\x08R\x08isMarket\"\x87\x03\n\x08Position\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06isLong\x18\x03 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12;\n\x06margin\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12]\n\x18\x63umulative_funding_entry\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16\x63umulativeFundingEntry\"t\n\x0bOraclePrice\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xc3\x03\n\tSpotTrade\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12$\n\rexecutionType\x18\x03 \x01(\tR\rexecutionType\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12#\n\rsubaccount_id\x18\x06 \x01(\tR\x0csubaccountId\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x08 \x01(\tR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\t \x01(\tB\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\n \x01(\tR\x03\x63id\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\"\xdc\x03\n\x0f\x44\x65rivativeTrade\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12$\n\rexecutionType\x18\x03 \x01(\tR\rexecutionType\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12P\n\x0eposition_delta\x18\x05 \x01(\x0b\x32).injective.exchange.v1beta1.PositionDeltaR\rpositionDelta\x12;\n\x06payout\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x08 \x01(\tR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\t \x01(\tB\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\n \x01(\tR\x03\x63id\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\"T\n\x0cTradesFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"W\n\x0fPositionsFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"T\n\x0cOrdersFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"0\n\x0fOrderbookFilter\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"0\n\x12\x42\x61nkBalancesFilter\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\"A\n\x18SubaccountDepositsFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\"+\n\x11OraclePriceFilter\x12\x16\n\x06symbol\x18\x01 \x03(\tR\x06symbol*L\n\x11OrderUpdateStatus\x12\x0f\n\x0bUnspecified\x10\x00\x12\n\n\x06\x42ooked\x10\x01\x12\x0b\n\x07Matched\x10\x02\x12\r\n\tCancelled\x10\x03\x32g\n\x06Stream\x12]\n\x06Stream\x12\'.injective.stream.v1beta1.StreamRequest\x1a(.injective.stream.v1beta1.StreamResponse0\x01\x42\xf2\x01\n\x1c\x63om.injective.stream.v1beta1B\nQueryProtoP\x01ZDgithub.com/InjectiveLabs/injective-core/injective-chain/stream/types\xa2\x02\x03ISX\xaa\x02\x18Injective.Stream.V1beta1\xca\x02\x18Injective\\Stream\\V1beta1\xe2\x02$Injective\\Stream\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Stream::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) diff --git a/pyinjective/proto/injective/stream/v2/query_pb2.py b/pyinjective/proto/injective/stream/v2/query_pb2.py new file mode 100644 index 00000000..0c35f781 --- /dev/null +++ b/pyinjective/proto/injective/stream/v2/query_pb2.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/stream/v2/query.proto +# Protobuf Python Version: 5.26.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.injective.exchange.v2 import events_pb2 as injective_dot_exchange_dot_v2_dot_events__pb2 +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as injective_dot_exchange_dot_v2_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v2 import order_pb2 as injective_dot_exchange_dot_v2_dot_order__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1finjective/stream/v2/query.proto\x12\x13injective.stream.v2\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x14gogoproto/gogo.proto\x1a\"injective/exchange/v2/events.proto\x1a$injective/exchange/v2/exchange.proto\x1a!injective/exchange/v2/order.proto\"\xdc\x07\n\rStreamRequest\x12_\n\x14\x62\x61nk_balances_filter\x18\x01 \x01(\x0b\x32\'.injective.stream.v2.BankBalancesFilterB\x04\xc8\xde\x1f\x01R\x12\x62\x61nkBalancesFilter\x12q\n\x1asubaccount_deposits_filter\x18\x02 \x01(\x0b\x32-.injective.stream.v2.SubaccountDepositsFilterB\x04\xc8\xde\x1f\x01R\x18subaccountDepositsFilter\x12U\n\x12spot_trades_filter\x18\x03 \x01(\x0b\x32!.injective.stream.v2.TradesFilterB\x04\xc8\xde\x1f\x01R\x10spotTradesFilter\x12\x61\n\x18\x64\x65rivative_trades_filter\x18\x04 \x01(\x0b\x32!.injective.stream.v2.TradesFilterB\x04\xc8\xde\x1f\x01R\x16\x64\x65rivativeTradesFilter\x12U\n\x12spot_orders_filter\x18\x05 \x01(\x0b\x32!.injective.stream.v2.OrdersFilterB\x04\xc8\xde\x1f\x01R\x10spotOrdersFilter\x12\x61\n\x18\x64\x65rivative_orders_filter\x18\x06 \x01(\x0b\x32!.injective.stream.v2.OrdersFilterB\x04\xc8\xde\x1f\x01R\x16\x64\x65rivativeOrdersFilter\x12`\n\x16spot_orderbooks_filter\x18\x07 \x01(\x0b\x32$.injective.stream.v2.OrderbookFilterB\x04\xc8\xde\x1f\x01R\x14spotOrderbooksFilter\x12l\n\x1c\x64\x65rivative_orderbooks_filter\x18\x08 \x01(\x0b\x32$.injective.stream.v2.OrderbookFilterB\x04\xc8\xde\x1f\x01R\x1a\x64\x65rivativeOrderbooksFilter\x12U\n\x10positions_filter\x18\t \x01(\x0b\x32$.injective.stream.v2.PositionsFilterB\x04\xc8\xde\x1f\x01R\x0fpositionsFilter\x12\\\n\x13oracle_price_filter\x18\n \x01(\x0b\x32&.injective.stream.v2.OraclePriceFilterB\x04\xc8\xde\x1f\x01R\x11oraclePriceFilter\"\xef\x06\n\x0eStreamResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x04R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x02 \x01(\x03R\tblockTime\x12\x45\n\rbank_balances\x18\x03 \x03(\x0b\x32 .injective.stream.v2.BankBalanceR\x0c\x62\x61nkBalances\x12X\n\x13subaccount_deposits\x18\x04 \x03(\x0b\x32\'.injective.stream.v2.SubaccountDepositsR\x12subaccountDeposits\x12?\n\x0bspot_trades\x18\x05 \x03(\x0b\x32\x1e.injective.stream.v2.SpotTradeR\nspotTrades\x12Q\n\x11\x64\x65rivative_trades\x18\x06 \x03(\x0b\x32$.injective.stream.v2.DerivativeTradeR\x10\x64\x65rivativeTrades\x12\x45\n\x0bspot_orders\x18\x07 \x03(\x0b\x32$.injective.stream.v2.SpotOrderUpdateR\nspotOrders\x12W\n\x11\x64\x65rivative_orders\x18\x08 \x03(\x0b\x32*.injective.stream.v2.DerivativeOrderUpdateR\x10\x64\x65rivativeOrders\x12Z\n\x16spot_orderbook_updates\x18\t \x03(\x0b\x32$.injective.stream.v2.OrderbookUpdateR\x14spotOrderbookUpdates\x12\x66\n\x1c\x64\x65rivative_orderbook_updates\x18\n \x03(\x0b\x32$.injective.stream.v2.OrderbookUpdateR\x1a\x64\x65rivativeOrderbookUpdates\x12;\n\tpositions\x18\x0b \x03(\x0b\x32\x1d.injective.stream.v2.PositionR\tpositions\x12\x45\n\roracle_prices\x18\x0c \x03(\x0b\x32 .injective.stream.v2.OraclePriceR\x0coraclePrices\"a\n\x0fOrderbookUpdate\x12\x10\n\x03seq\x18\x01 \x01(\x04R\x03seq\x12<\n\torderbook\x18\x02 \x01(\x0b\x32\x1e.injective.stream.v2.OrderbookR\torderbook\"\xa4\x01\n\tOrderbook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\nbuy_levels\x18\x02 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\tbuyLevels\x12=\n\x0bsell_levels\x18\x03 \x03(\x0b\x32\x1c.injective.exchange.v2.LevelR\nsellLevels\"\x90\x01\n\x0b\x42\x61nkBalance\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12g\n\x08\x62\x61lances\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x08\x62\x61lances\"\x83\x01\n\x12SubaccountDeposits\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12H\n\x08\x64\x65posits\x18\x02 \x03(\x0b\x32&.injective.stream.v2.SubaccountDepositB\x04\xc8\xde\x1f\x00R\x08\x64\x65posits\"i\n\x11SubaccountDeposit\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12>\n\x07\x64\x65posit\x18\x02 \x01(\x0b\x32\x1e.injective.exchange.v2.DepositB\x04\xc8\xde\x1f\x00R\x07\x64\x65posit\"\xb8\x01\n\x0fSpotOrderUpdate\x12>\n\x06status\x18\x01 \x01(\x0e\x32&.injective.stream.v2.OrderUpdateStatusR\x06status\x12\x1d\n\norder_hash\x18\x02 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id\x12\x34\n\x05order\x18\x04 \x01(\x0b\x32\x1e.injective.stream.v2.SpotOrderR\x05order\"k\n\tSpotOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32%.injective.exchange.v2.SpotLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\"\xc4\x01\n\x15\x44\x65rivativeOrderUpdate\x12>\n\x06status\x18\x01 \x01(\x0e\x32&.injective.stream.v2.OrderUpdateStatusR\x06status\x12\x1d\n\norder_hash\x18\x02 \x01(\tR\torderHash\x12\x10\n\x03\x63id\x18\x03 \x01(\tR\x03\x63id\x12:\n\x05order\x18\x04 \x01(\x0b\x32$.injective.stream.v2.DerivativeOrderR\x05order\"\x94\x01\n\x0f\x44\x65rivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12G\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderB\x04\xc8\xde\x1f\x00R\x05order\x12\x1b\n\tis_market\x18\x03 \x01(\x08R\x08isMarket\"\x87\x03\n\x08Position\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06isLong\x18\x03 \x01(\x08R\x06isLong\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x44\n\x0b\x65ntry_price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\nentryPrice\x12;\n\x06margin\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06margin\x12]\n\x18\x63umulative_funding_entry\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x16\x63umulativeFundingEntry\"t\n\x0bOraclePrice\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x39\n\x05price\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xc3\x03\n\tSpotTrade\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12$\n\rexecutionType\x18\x03 \x01(\tR\rexecutionType\x12?\n\x08quantity\x18\x04 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x08quantity\x12\x39\n\x05price\x18\x05 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x05price\x12#\n\rsubaccount_id\x18\x06 \x01(\tR\x0csubaccountId\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x08 \x01(\tR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\t \x01(\tB\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\n \x01(\tR\x03\x63id\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\"\xd7\x03\n\x0f\x44\x65rivativeTrade\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12$\n\rexecutionType\x18\x03 \x01(\tR\rexecutionType\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12K\n\x0eposition_delta\x18\x05 \x01(\x0b\x32$.injective.exchange.v2.PositionDeltaR\rpositionDelta\x12;\n\x06payout\x18\x06 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06payout\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x03\x66\x65\x65\x12\x1d\n\norder_hash\x18\x08 \x01(\tR\torderHash\x12\x38\n\x15\x66\x65\x65_recipient_address\x18\t \x01(\tB\x04\xc8\xde\x1f\x01R\x13\x66\x65\x65RecipientAddress\x12\x10\n\x03\x63id\x18\n \x01(\tR\x03\x63id\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\"T\n\x0cTradesFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"W\n\x0fPositionsFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"T\n\x0cOrdersFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\x12\x1d\n\nmarket_ids\x18\x02 \x03(\tR\tmarketIds\"0\n\x0fOrderbookFilter\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"0\n\x12\x42\x61nkBalancesFilter\x12\x1a\n\x08\x61\x63\x63ounts\x18\x01 \x03(\tR\x08\x61\x63\x63ounts\"A\n\x18SubaccountDepositsFilter\x12%\n\x0esubaccount_ids\x18\x01 \x03(\tR\rsubaccountIds\"+\n\x11OraclePriceFilter\x12\x16\n\x06symbol\x18\x01 \x03(\tR\x06symbol*L\n\x11OrderUpdateStatus\x12\x0f\n\x0bUnspecified\x10\x00\x12\n\n\x06\x42ooked\x10\x01\x12\x0b\n\x07Matched\x10\x02\x12\r\n\tCancelled\x10\x03\x32_\n\x06Stream\x12U\n\x08StreamV2\x12\".injective.stream.v2.StreamRequest\x1a#.injective.stream.v2.StreamResponse0\x01\x42\xdc\x01\n\x17\x63om.injective.stream.v2B\nQueryProtoP\x01ZGgithub.com/InjectiveLabs/injective-core/injective-chain/stream/types/v2\xa2\x02\x03ISX\xaa\x02\x13Injective.Stream.V2\xca\x02\x13Injective\\Stream\\V2\xe2\x02\x1fInjective\\Stream\\V2\\GPBMetadata\xea\x02\x15Injective::Stream::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.stream.v2.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\027com.injective.stream.v2B\nQueryProtoP\001ZGgithub.com/InjectiveLabs/injective-core/injective-chain/stream/types/v2\242\002\003ISX\252\002\023Injective.Stream.V2\312\002\023Injective\\Stream\\V2\342\002\037Injective\\Stream\\V2\\GPBMetadata\352\002\025Injective::Stream::V2' + _globals['_STREAMREQUEST'].fields_by_name['bank_balances_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['bank_balances_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['subaccount_deposits_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['subaccount_deposits_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['spot_trades_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['spot_trades_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['derivative_trades_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['derivative_trades_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['spot_orders_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['spot_orders_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['derivative_orders_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['derivative_orders_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['spot_orderbooks_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['spot_orderbooks_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['derivative_orderbooks_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['derivative_orderbooks_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['positions_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['positions_filter']._serialized_options = b'\310\336\037\001' + _globals['_STREAMREQUEST'].fields_by_name['oracle_price_filter']._loaded_options = None + _globals['_STREAMREQUEST'].fields_by_name['oracle_price_filter']._serialized_options = b'\310\336\037\001' + _globals['_BANKBALANCE'].fields_by_name['balances']._loaded_options = None + _globals['_BANKBALANCE'].fields_by_name['balances']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' + _globals['_SUBACCOUNTDEPOSITS'].fields_by_name['deposits']._loaded_options = None + _globals['_SUBACCOUNTDEPOSITS'].fields_by_name['deposits']._serialized_options = b'\310\336\037\000' + _globals['_SUBACCOUNTDEPOSIT'].fields_by_name['deposit']._loaded_options = None + _globals['_SUBACCOUNTDEPOSIT'].fields_by_name['deposit']._serialized_options = b'\310\336\037\000' + _globals['_SPOTORDER'].fields_by_name['order']._loaded_options = None + _globals['_SPOTORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVEORDER'].fields_by_name['order']._loaded_options = None + _globals['_DERIVATIVEORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_POSITION'].fields_by_name['quantity']._loaded_options = None + _globals['_POSITION'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['entry_price']._loaded_options = None + _globals['_POSITION'].fields_by_name['entry_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['margin']._loaded_options = None + _globals['_POSITION'].fields_by_name['margin']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_POSITION'].fields_by_name['cumulative_funding_entry']._loaded_options = None + _globals['_POSITION'].fields_by_name['cumulative_funding_entry']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_ORACLEPRICE'].fields_by_name['price']._loaded_options = None + _globals['_ORACLEPRICE'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTTRADE'].fields_by_name['quantity']._loaded_options = None + _globals['_SPOTTRADE'].fields_by_name['quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTTRADE'].fields_by_name['price']._loaded_options = None + _globals['_SPOTTRADE'].fields_by_name['price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTTRADE'].fields_by_name['fee']._loaded_options = None + _globals['_SPOTTRADE'].fields_by_name['fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTTRADE'].fields_by_name['fee_recipient_address']._loaded_options = None + _globals['_SPOTTRADE'].fields_by_name['fee_recipient_address']._serialized_options = b'\310\336\037\001' + _globals['_DERIVATIVETRADE'].fields_by_name['payout']._loaded_options = None + _globals['_DERIVATIVETRADE'].fields_by_name['payout']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVETRADE'].fields_by_name['fee']._loaded_options = None + _globals['_DERIVATIVETRADE'].fields_by_name['fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVETRADE'].fields_by_name['fee_recipient_address']._loaded_options = None + _globals['_DERIVATIVETRADE'].fields_by_name['fee_recipient_address']._serialized_options = b'\310\336\037\001' + _globals['_ORDERUPDATESTATUS']._serialized_start=5305 + _globals['_ORDERUPDATESTATUS']._serialized_end=5381 + _globals['_STREAMREQUEST']._serialized_start=220 + _globals['_STREAMREQUEST']._serialized_end=1208 + _globals['_STREAMRESPONSE']._serialized_start=1211 + _globals['_STREAMRESPONSE']._serialized_end=2090 + _globals['_ORDERBOOKUPDATE']._serialized_start=2092 + _globals['_ORDERBOOKUPDATE']._serialized_end=2189 + _globals['_ORDERBOOK']._serialized_start=2192 + _globals['_ORDERBOOK']._serialized_end=2356 + _globals['_BANKBALANCE']._serialized_start=2359 + _globals['_BANKBALANCE']._serialized_end=2503 + _globals['_SUBACCOUNTDEPOSITS']._serialized_start=2506 + _globals['_SUBACCOUNTDEPOSITS']._serialized_end=2637 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=2639 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2744 + _globals['_SPOTORDERUPDATE']._serialized_start=2747 + _globals['_SPOTORDERUPDATE']._serialized_end=2931 + _globals['_SPOTORDER']._serialized_start=2933 + _globals['_SPOTORDER']._serialized_end=3040 + _globals['_DERIVATIVEORDERUPDATE']._serialized_start=3043 + _globals['_DERIVATIVEORDERUPDATE']._serialized_end=3239 + _globals['_DERIVATIVEORDER']._serialized_start=3242 + _globals['_DERIVATIVEORDER']._serialized_end=3390 + _globals['_POSITION']._serialized_start=3393 + _globals['_POSITION']._serialized_end=3784 + _globals['_ORACLEPRICE']._serialized_start=3786 + _globals['_ORACLEPRICE']._serialized_end=3902 + _globals['_SPOTTRADE']._serialized_start=3905 + _globals['_SPOTTRADE']._serialized_end=4356 + _globals['_DERIVATIVETRADE']._serialized_start=4359 + _globals['_DERIVATIVETRADE']._serialized_end=4830 + _globals['_TRADESFILTER']._serialized_start=4832 + _globals['_TRADESFILTER']._serialized_end=4916 + _globals['_POSITIONSFILTER']._serialized_start=4918 + _globals['_POSITIONSFILTER']._serialized_end=5005 + _globals['_ORDERSFILTER']._serialized_start=5007 + _globals['_ORDERSFILTER']._serialized_end=5091 + _globals['_ORDERBOOKFILTER']._serialized_start=5093 + _globals['_ORDERBOOKFILTER']._serialized_end=5141 + _globals['_BANKBALANCESFILTER']._serialized_start=5143 + _globals['_BANKBALANCESFILTER']._serialized_end=5191 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_start=5193 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_end=5258 + _globals['_ORACLEPRICEFILTER']._serialized_start=5260 + _globals['_ORACLEPRICEFILTER']._serialized_end=5303 + _globals['_STREAM']._serialized_start=5383 + _globals['_STREAM']._serialized_end=5478 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/stream/v2/query_pb2_grpc.py b/pyinjective/proto/injective/stream/v2/query_pb2_grpc.py new file mode 100644 index 00000000..ebb3b134 --- /dev/null +++ b/pyinjective/proto/injective/stream/v2/query_pb2_grpc.py @@ -0,0 +1,80 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from pyinjective.proto.injective.stream.v2 import query_pb2 as injective_dot_stream_dot_v2_dot_query__pb2 + + +class StreamStub(object): + """ChainStream defines the gRPC streaming service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.StreamV2 = channel.unary_stream( + '/injective.stream.v2.Stream/StreamV2', + request_serializer=injective_dot_stream_dot_v2_dot_query__pb2.StreamRequest.SerializeToString, + response_deserializer=injective_dot_stream_dot_v2_dot_query__pb2.StreamResponse.FromString, + _registered_method=True) + + +class StreamServicer(object): + """ChainStream defines the gRPC streaming service. + """ + + def StreamV2(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_StreamServicer_to_server(servicer, server): + rpc_method_handlers = { + 'StreamV2': grpc.unary_stream_rpc_method_handler( + servicer.StreamV2, + request_deserializer=injective_dot_stream_dot_v2_dot_query__pb2.StreamRequest.FromString, + response_serializer=injective_dot_stream_dot_v2_dot_query__pb2.StreamResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.stream.v2.Stream', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.stream.v2.Stream', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Stream(object): + """ChainStream defines the gRPC streaming service. + """ + + @staticmethod + def StreamV2(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream( + request, + target, + '/injective.stream.v2.Stream/StreamV2', + injective_dot_stream_dot_v2_dot_query__pb2.StreamRequest.SerializeToString, + injective_dot_stream_dot_v2_dot_query__pb2.StreamResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/tests/client/chain/grpc/configurable_exchange_query_servicer.py b/tests/client/chain/grpc/configurable_exchange_query_servicer.py index 23ded1de..6ac2e8c2 100644 --- a/tests/client/chain/grpc/configurable_exchange_query_servicer.py +++ b/tests/client/chain/grpc/configurable_exchange_query_servicer.py @@ -65,6 +65,11 @@ def __init__(self): self.binary_options_markets_responses = deque() self.trader_derivative_conditional_orders_responses = deque() self.market_atomic_execution_fee_multiplier_responses = deque() + self.active_stake_grant_responses = deque() + self.grant_authorization_responses = deque() + self.grant_authorizations_responses = deque() + self.l3_derivative_orderbook_responses = deque() + self.l3_spot_orderbook_responses = deque() async def QueryExchangeParams( self, request: exchange_query_pb.QueryExchangeParamsRequest, context=None, metadata=None @@ -329,3 +334,28 @@ async def MarketAtomicExecutionFeeMultiplier( self, request: exchange_query_pb.QueryMarketAtomicExecutionFeeMultiplierRequest, context=None, metadata=None ): return self.market_atomic_execution_fee_multiplier_responses.pop() + + async def ActiveStakeGrant( + self, request: exchange_query_pb.QueryActiveStakeGrantRequest, context=None, metadata=None + ): + return self.active_stake_grant_responses.pop() + + async def GrantAuthorization( + self, request: exchange_query_pb.QueryGrantAuthorizationRequest, context=None, metadata=None + ): + return self.grant_authorization_responses.pop() + + async def GrantAuthorizations( + self, request: exchange_query_pb.QueryGrantAuthorizationsRequest, context=None, metadata=None + ): + return self.grant_authorizations_responses.pop() + + async def L3DerivativeOrderBook( + self, request: exchange_query_pb.QueryFullDerivativeOrderbookRequest, context=None, metadata=None + ): + return self.l3_derivative_orderbook_responses.pop() + + async def L3SpotOrderBook( + self, request: exchange_query_pb.QueryFullSpotOrderbookRequest, context=None, metadata=None + ): + return self.l3_spot_orderbook_responses.pop() diff --git a/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py new file mode 100644 index 00000000..c3da9415 --- /dev/null +++ b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py @@ -0,0 +1,361 @@ +from collections import deque + +from pyinjective.proto.injective.exchange.v2 import ( + query_pb2 as exchange_query_pb, + query_pb2_grpc as exchange_query_grpc, +) + + +class ConfigurableExchangeV2QueryServicer(exchange_query_grpc.QueryServicer): + def __init__(self): + super().__init__() + self.exchange_params = deque() + self.subaccount_deposits_responses = deque() + self.subaccount_deposit_responses = deque() + self.exchange_balances_responses = deque() + self.aggregate_volume_responses = deque() + self.aggregate_volumes_responses = deque() + self.aggregate_market_volume_responses = deque() + self.aggregate_market_volumes_responses = deque() + self.denom_decimal_responses = deque() + self.denom_decimals_responses = deque() + self.spot_markets_responses = deque() + self.spot_market_responses = deque() + self.full_spot_markets_responses = deque() + self.full_spot_market_responses = deque() + self.spot_orderbook_responses = deque() + self.trader_spot_orders_responses = deque() + self.account_address_spot_orders_responses = deque() + self.spot_orders_by_hashes_responses = deque() + self.subaccount_orders_responses = deque() + self.trader_spot_transient_orders_responses = deque() + self.spot_mid_price_and_tob_responses = deque() + self.derivative_mid_price_and_tob_responses = deque() + self.derivative_orderbook_responses = deque() + self.trader_derivative_orders_responses = deque() + self.account_address_derivative_orders_responses = deque() + self.derivative_orders_by_hashes_responses = deque() + self.trader_derivative_transient_orders_responses = deque() + self.derivative_markets_responses = deque() + self.derivative_market_responses = deque() + self.derivative_market_address_responses = deque() + self.subaccount_trade_nonce_responses = deque() + self.positions_responses = deque() + self.subaccount_positions_responses = deque() + self.subaccount_position_in_market_responses = deque() + self.subaccount_effective_position_in_market_responses = deque() + self.perpetual_market_info_responses = deque() + self.expiry_futures_market_info_responses = deque() + self.perpetual_market_funding_responses = deque() + self.subaccount_order_metadata_responses = deque() + self.trade_reward_points_responses = deque() + self.pending_trade_reward_points_responses = deque() + self.trade_reward_campaign_responses = deque() + self.fee_discount_account_info_responses = deque() + self.fee_discount_schedule_responses = deque() + self.balance_mismatches_responses = deque() + self.balance_with_balance_holds_responses = deque() + self.fee_discount_tier_statistics_responses = deque() + self.mito_vault_infos_responses = deque() + self.market_id_from_vault_responses = deque() + self.historical_trade_records_responses = deque() + self.is_opted_out_of_rewards_responses = deque() + self.opted_out_of_rewards_accounts_responses = deque() + self.market_volatility_responses = deque() + self.binary_options_markets_responses = deque() + self.trader_derivative_conditional_orders_responses = deque() + self.market_atomic_execution_fee_multiplier_responses = deque() + self.active_stake_grant_responses = deque() + self.grant_authorization_responses = deque() + self.grant_authorizations_responses = deque() + self.l3_derivative_orderbook_responses = deque() + self.l3_spot_orderbook_responses = deque() + + async def QueryExchangeParams( + self, request: exchange_query_pb.QueryExchangeParamsRequest, context=None, metadata=None + ): + return self.exchange_params.pop() + + async def SubaccountDeposits( + self, request: exchange_query_pb.QuerySubaccountDepositsRequest, context=None, metadata=None + ): + return self.subaccount_deposits_responses.pop() + + async def SubaccountDeposit( + self, request: exchange_query_pb.QuerySubaccountDepositRequest, context=None, metadata=None + ): + return self.subaccount_deposit_responses.pop() + + async def ExchangeBalances( + self, request: exchange_query_pb.QueryExchangeBalancesRequest, context=None, metadata=None + ): + return self.exchange_balances_responses.pop() + + async def AggregateVolume( + self, request: exchange_query_pb.QueryAggregateVolumeRequest, context=None, metadata=None + ): + return self.aggregate_volume_responses.pop() + + async def AggregateVolumes( + self, request: exchange_query_pb.QueryAggregateVolumesRequest, context=None, metadata=None + ): + return self.aggregate_volumes_responses.pop() + + async def AggregateMarketVolume( + self, request: exchange_query_pb.QueryAggregateMarketVolumeRequest, context=None, metadata=None + ): + return self.aggregate_market_volume_responses.pop() + + async def AggregateMarketVolumes( + self, request: exchange_query_pb.QueryAggregateMarketVolumesRequest, context=None, metadata=None + ): + return self.aggregate_market_volumes_responses.pop() + + async def DenomDecimal(self, request: exchange_query_pb.QueryDenomDecimalRequest, context=None, metadata=None): + return self.denom_decimal_responses.pop() + + async def DenomDecimals(self, request: exchange_query_pb.QueryDenomDecimalsRequest, context=None, metadata=None): + return self.denom_decimals_responses.pop() + + async def SpotMarkets(self, request: exchange_query_pb.QuerySpotMarketsRequest, context=None, metadata=None): + return self.spot_markets_responses.pop() + + async def SpotMarket(self, request: exchange_query_pb.QuerySpotMarketRequest, context=None, metadata=None): + return self.spot_market_responses.pop() + + async def FullSpotMarkets( + self, request: exchange_query_pb.QueryFullSpotMarketsRequest, context=None, metadata=None + ): + return self.full_spot_markets_responses.pop() + + async def FullSpotMarket(self, request: exchange_query_pb.QueryFullSpotMarketRequest, context=None, metadata=None): + return self.full_spot_market_responses.pop() + + async def SpotOrderbook(self, request: exchange_query_pb.QuerySpotOrderbookRequest, context=None, metadata=None): + return self.spot_orderbook_responses.pop() + + async def TraderSpotOrders( + self, request: exchange_query_pb.QueryTraderSpotOrdersRequest, context=None, metadata=None + ): + return self.trader_spot_orders_responses.pop() + + async def AccountAddressSpotOrders( + self, request: exchange_query_pb.QueryAccountAddressSpotOrdersRequest, context=None, metadata=None + ): + return self.account_address_spot_orders_responses.pop() + + async def SpotOrdersByHashes( + self, request: exchange_query_pb.QuerySpotOrdersByHashesRequest, context=None, metadata=None + ): + return self.spot_orders_by_hashes_responses.pop() + + async def SubaccountOrders( + self, request: exchange_query_pb.QuerySubaccountOrdersRequest, context=None, metadata=None + ): + return self.subaccount_orders_responses.pop() + + async def TraderSpotTransientOrders( + self, request: exchange_query_pb.QueryTraderSpotOrdersRequest, context=None, metadata=None + ): + return self.trader_spot_transient_orders_responses.pop() + + async def SpotMidPriceAndTOB( + self, request: exchange_query_pb.QuerySpotMidPriceAndTOBRequest, context=None, metadata=None + ): + return self.spot_mid_price_and_tob_responses.pop() + + async def DerivativeMidPriceAndTOB( + self, request: exchange_query_pb.QueryDerivativeMidPriceAndTOBRequest, context=None, metadata=None + ): + return self.derivative_mid_price_and_tob_responses.pop() + + async def DerivativeOrderbook( + self, request: exchange_query_pb.QueryDerivativeOrderbookRequest, context=None, metadata=None + ): + return self.derivative_orderbook_responses.pop() + + async def TraderDerivativeOrders( + self, request: exchange_query_pb.QueryTraderDerivativeOrdersRequest, context=None, metadata=None + ): + return self.trader_derivative_orders_responses.pop() + + async def AccountAddressDerivativeOrders( + self, request: exchange_query_pb.QueryAccountAddressDerivativeOrdersRequest, context=None, metadata=None + ): + return self.account_address_derivative_orders_responses.pop() + + async def DerivativeOrdersByHashes( + self, request: exchange_query_pb.QueryDerivativeOrdersByHashesRequest, context=None, metadata=None + ): + return self.derivative_orders_by_hashes_responses.pop() + + async def TraderDerivativeTransientOrders( + self, request: exchange_query_pb.QueryTraderDerivativeOrdersRequest, context=None, metadata=None + ): + return self.trader_derivative_transient_orders_responses.pop() + + async def DerivativeMarkets( + self, request: exchange_query_pb.QueryDerivativeMarketsRequest, context=None, metadata=None + ): + return self.derivative_markets_responses.pop() + + async def DerivativeMarket( + self, request: exchange_query_pb.QueryDerivativeMarketRequest, context=None, metadata=None + ): + return self.derivative_market_responses.pop() + + async def DerivativeMarketAddress( + self, request: exchange_query_pb.QueryDerivativeMarketAddressRequest, context=None, metadata=None + ): + return self.derivative_market_address_responses.pop() + + async def SubaccountTradeNonce( + self, request: exchange_query_pb.QuerySubaccountTradeNonceRequest, context=None, metadata=None + ): + return self.subaccount_trade_nonce_responses.pop() + + async def Positions(self, request: exchange_query_pb.QueryPositionsRequest, context=None, metadata=None): + return self.positions_responses.pop() + + async def SubaccountPositions( + self, request: exchange_query_pb.QuerySubaccountPositionsRequest, context=None, metadata=None + ): + return self.subaccount_positions_responses.pop() + + async def SubaccountPositionInMarket( + self, request: exchange_query_pb.QuerySubaccountPositionInMarketRequest, context=None, metadata=None + ): + return self.subaccount_position_in_market_responses.pop() + + async def SubaccountEffectivePositionInMarket( + self, request: exchange_query_pb.QuerySubaccountEffectivePositionInMarketRequest, context=None, metadata=None + ): + return self.subaccount_effective_position_in_market_responses.pop() + + async def PerpetualMarketInfo( + self, request: exchange_query_pb.QueryPerpetualMarketInfoRequest, context=None, metadata=None + ): + return self.perpetual_market_info_responses.pop() + + async def ExpiryFuturesMarketInfo( + self, request: exchange_query_pb.QueryExpiryFuturesMarketInfoRequest, context=None, metadata=None + ): + return self.expiry_futures_market_info_responses.pop() + + async def PerpetualMarketFunding( + self, request: exchange_query_pb.QueryPerpetualMarketFundingRequest, context=None, metadata=None + ): + return self.perpetual_market_funding_responses.pop() + + async def SubaccountOrderMetadata( + self, request: exchange_query_pb.QuerySubaccountOrderMetadataRequest, context=None, metadata=None + ): + return self.subaccount_order_metadata_responses.pop() + + async def TradeRewardPoints( + self, request: exchange_query_pb.QueryTradeRewardPointsRequest, context=None, metadata=None + ): + return self.trade_reward_points_responses.pop() + + async def PendingTradeRewardPoints( + self, request: exchange_query_pb.QueryTradeRewardPointsRequest, context=None, metadata=None + ): + return self.pending_trade_reward_points_responses.pop() + + async def TradeRewardCampaign( + self, request: exchange_query_pb.QueryTradeRewardCampaignRequest, context=None, metadata=None + ): + return self.trade_reward_campaign_responses.pop() + + async def FeeDiscountAccountInfo( + self, request: exchange_query_pb.QueryFeeDiscountAccountInfoRequest, context=None, metadata=None + ): + return self.fee_discount_account_info_responses.pop() + + async def FeeDiscountSchedule( + self, request: exchange_query_pb.QueryFeeDiscountScheduleRequest, context=None, metadata=None + ): + return self.fee_discount_schedule_responses.pop() + + async def BalanceMismatches( + self, request: exchange_query_pb.QueryBalanceMismatchesRequest, context=None, metadata=None + ): + return self.balance_mismatches_responses.pop() + + async def BalanceWithBalanceHolds( + self, request: exchange_query_pb.QueryBalanceWithBalanceHoldsRequest, context=None, metadata=None + ): + return self.balance_with_balance_holds_responses.pop() + + async def FeeDiscountTierStatistics( + self, request: exchange_query_pb.QueryFeeDiscountTierStatisticsRequest, context=None, metadata=None + ): + return self.fee_discount_tier_statistics_responses.pop() + + async def MitoVaultInfos(self, request: exchange_query_pb.MitoVaultInfosRequest, context=None, metadata=None): + return self.mito_vault_infos_responses.pop() + + async def QueryMarketIDFromVault( + self, request: exchange_query_pb.QueryMarketIDFromVaultRequest, context=None, metadata=None + ): + return self.market_id_from_vault_responses.pop() + + async def HistoricalTradeRecords( + self, request: exchange_query_pb.QueryHistoricalTradeRecordsRequest, context=None, metadata=None + ): + return self.historical_trade_records_responses.pop() + + async def IsOptedOutOfRewards( + self, request: exchange_query_pb.QueryIsOptedOutOfRewardsRequest, context=None, metadata=None + ): + return self.is_opted_out_of_rewards_responses.pop() + + async def OptedOutOfRewardsAccounts( + self, request: exchange_query_pb.QueryOptedOutOfRewardsAccountsRequest, context=None, metadata=None + ): + return self.opted_out_of_rewards_accounts_responses.pop() + + async def MarketVolatility( + self, request: exchange_query_pb.QueryMarketVolatilityRequest, context=None, metadata=None + ): + return self.market_volatility_responses.pop() + + async def BinaryOptionsMarkets( + self, request: exchange_query_pb.QueryBinaryMarketsRequest, context=None, metadata=None + ): + return self.binary_options_markets_responses.pop() + + async def TraderDerivativeConditionalOrders( + self, request: exchange_query_pb.QueryTraderDerivativeConditionalOrdersRequest, context=None, metadata=None + ): + return self.trader_derivative_conditional_orders_responses.pop() + + async def MarketAtomicExecutionFeeMultiplier( + self, request: exchange_query_pb.QueryMarketAtomicExecutionFeeMultiplierRequest, context=None, metadata=None + ): + return self.market_atomic_execution_fee_multiplier_responses.pop() + + async def ActiveStakeGrant( + self, request: exchange_query_pb.QueryActiveStakeGrantRequest, context=None, metadata=None + ): + return self.active_stake_grant_responses.pop() + + async def GrantAuthorization( + self, request: exchange_query_pb.QueryGrantAuthorizationRequest, context=None, metadata=None + ): + return self.grant_authorization_responses.pop() + + async def GrantAuthorizations( + self, request: exchange_query_pb.QueryGrantAuthorizationsRequest, context=None, metadata=None + ): + return self.grant_authorizations_responses.pop() + + async def L3DerivativeOrderBook( + self, request: exchange_query_pb.QueryFullDerivativeOrderbookRequest, context=None, metadata=None + ): + return self.l3_derivative_orderbook_responses.pop() + + async def L3SpotOrderBook( + self, request: exchange_query_pb.QueryFullSpotOrderbookRequest, context=None, metadata=None + ): + return self.l3_spot_orderbook_responses.pop() diff --git a/tests/client/chain/grpc/test_chain_grpc_auction_api.py b/tests/client/chain/grpc/test_chain_grpc_auction_api.py index 9de9c63a..79addcff 100644 --- a/tests/client/chain/grpc/test_chain_grpc_auction_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_auction_api.py @@ -23,13 +23,23 @@ async def test_fetch_module_params( self, auction_servicer, ): - params = auction_pb.Params(auction_period=604800, min_next_bid_increment_rate="2500000000000000") + params = auction_pb.Params( + auction_period=604800, + min_next_bid_increment_rate="2500000000000000", + inj_basket_max_cap="100000", + ) auction_servicer.auction_params.append(auction_query_pb.QueryAuctionParamsResponse(params=params)) api = self._api_instance(servicer=auction_servicer) module_params = await api.fetch_module_params() - expected_params = {"params": {"auctionPeriod": "604800", "minNextBidIncrementRate": "2500000000000000"}} + expected_params = { + "params": { + "auctionPeriod": str(params.auction_period), + "minNextBidIncrementRate": params.min_next_bid_increment_rate, + "injBasketMaxCap": str(params.inj_basket_max_cap), + } + } assert expected_params == module_params @@ -38,16 +48,27 @@ async def test_fetch_module_state( self, auction_servicer, ): - params = auction_pb.Params(auction_period=604800, min_next_bid_increment_rate="2500000000000000") + params = auction_pb.Params( + auction_period=604800, + min_next_bid_increment_rate="2500000000000000", + inj_basket_max_cap="100000", + ) + coin = coin_pb.Coin(denom="inj", amount="988987297011197594664") highest_bid = auction_pb.Bid( bidder="inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", - amount="\n\003inj\022\0232347518723906280000", + amount=coin, + ) + last_auction_result = auction_pb.LastAuctionResult( + winner="inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", + amount=coin, + round=3, ) state = genesis_pb.GenesisState( params=params, auction_round=50, highest_bid=highest_bid, auction_ending_timestamp=1687504387, + last_auction_result=last_auction_result, ) auction_servicer.module_states.append(auction_query_pb.QueryModuleStateResponse(state=state)) @@ -59,12 +80,24 @@ async def test_fetch_module_state( "auctionEndingTimestamp": "1687504387", "auctionRound": "50", "highestBid": { - "amount": "\n\x03inj\x12\x132347518723906280000", + "amount": { + "denom": coin.denom, + "amount": coin.amount, + }, "bidder": "inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", }, "params": { - "auctionPeriod": "604800", - "minNextBidIncrementRate": "2500000000000000", + "auctionPeriod": str(params.auction_period), + "minNextBidIncrementRate": params.min_next_bid_increment_rate, + "injBasketMaxCap": str(params.inj_basket_max_cap), + }, + "lastAuctionResult": { + "winner": last_auction_result.winner, + "amount": { + "denom": coin.denom, + "amount": coin.amount, + }, + "round": str(last_auction_result.round), }, } } @@ -76,7 +109,11 @@ async def test_fetch_module_state_when_no_highest_bid_present( self, auction_servicer, ): - params = auction_pb.Params(auction_period=604800, min_next_bid_increment_rate="2500000000000000") + params = auction_pb.Params( + auction_period=604800, + min_next_bid_increment_rate="2500000000000000", + inj_basket_max_cap="100000", + ) state = genesis_pb.GenesisState( params=params, auction_round=50, @@ -92,8 +129,9 @@ async def test_fetch_module_state_when_no_highest_bid_present( "auctionEndingTimestamp": "1687504387", "auctionRound": "50", "params": { - "auctionPeriod": "604800", - "minNextBidIncrementRate": "2500000000000000", + "auctionPeriod": str(params.auction_period), + "minNextBidIncrementRate": params.min_next_bid_increment_rate, + "injBasketMaxCap": str(params.inj_basket_max_cap), }, } } diff --git a/tests/client/chain/grpc/test_chain_grpc_exchange_api.py b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py index 7ec81981..b703e9d4 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py @@ -446,6 +446,8 @@ async def test_fetch_spot_markets( min_notional="5000000000000000000", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) exchange_servicer.spot_markets_responses.append( exchange_query_pb.QuerySpotMarketsResponse( @@ -476,6 +478,8 @@ async def test_fetch_spot_markets( "minNotional": market.min_notional, "admin": market.admin, "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, } ] } @@ -501,6 +505,8 @@ async def test_fetch_spot_market( min_notional="5000000000000000000", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) exchange_servicer.spot_market_responses.append( exchange_query_pb.QuerySpotMarketResponse( @@ -528,6 +534,8 @@ async def test_fetch_spot_market( "minNotional": market.min_notional, "admin": market.admin, "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, } } @@ -552,6 +560,8 @@ async def test_fetch_full_spot_markets( min_notional="5000000000000000000", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) mid_price_and_tob = exchange_pb.MidPriceAndTOB( mid_price="2000000000000000000", @@ -593,6 +603,8 @@ async def test_fetch_full_spot_markets( "minNotional": market.min_notional, "admin": market.admin, "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, }, "midPriceAndTob": { "midPrice": mid_price_and_tob.mid_price, @@ -624,6 +636,8 @@ async def test_fetch_full_spot_market( min_notional="5000000000000000000", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) mid_price_and_tob = exchange_pb.MidPriceAndTOB( mid_price="2000000000000000000", @@ -663,6 +677,8 @@ async def test_fetch_full_spot_market( "minNotional": market.min_notional, "admin": market.admin, "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, }, "midPriceAndTob": { "midPrice": mid_price_and_tob.mid_price, @@ -1234,6 +1250,7 @@ async def test_fetch_derivative_markets( min_notional="5000000000000000000", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + quote_decimals=6, ) market_info = exchange_pb.PerpetualMarketInfo( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", @@ -1298,6 +1315,7 @@ async def test_fetch_derivative_markets( "minNotional": market.min_notional, "admin": market.admin, "adminPermissions": market.admin_permissions, + "quoteDecimals": market.quote_decimals, }, "perpetualInfo": { "marketInfo": { @@ -1350,6 +1368,7 @@ async def test_fetch_derivative_market( min_notional="5000000000000000000", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + quote_decimals=6, ) market_info = exchange_pb.PerpetualMarketInfo( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", @@ -1412,6 +1431,7 @@ async def test_fetch_derivative_market( "minNotional": market.min_notional, "admin": market.admin, "adminPermissions": market.admin_permissions, + "quoteDecimals": market.quote_decimals, }, "perpetualInfo": { "marketInfo": { @@ -2323,6 +2343,7 @@ async def test_fetch_binary_options_markets( settlement_price="2000000000000000000", min_notional="5000000000000000000", admin_permissions=1, + quote_decimals=6, ) response = exchange_query_pb.QueryBinaryMarketsResponse( markets=[market], @@ -2354,6 +2375,7 @@ async def test_fetch_binary_options_markets( "settlementPrice": market.settlement_price, "minNotional": market.min_notional, "adminPermissions": market.admin_permissions, + "quoteDecimals": market.quote_decimals, }, ] } @@ -2422,6 +2444,197 @@ async def test_fetch_market_atomic_execution_fee_multiplier( assert multiplier == expected_multiplier + @pytest.mark.asyncio + async def test_fetch_active_stake_grant( + self, + exchange_servicer, + ): + grant = exchange_pb.ActiveGrant( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + amount="1000000000000000", + ) + effective_grant = exchange_pb.EffectiveGrant( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + net_granted_stake="2000000000000000", + is_valid=True, + ) + response = exchange_query_pb.QueryActiveStakeGrantResponse( + grant=grant, + effective_grant=effective_grant, + ) + exchange_servicer.active_stake_grant_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + active_grant = await api.fetch_active_stake_grant( + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) + expected_grant = { + "grant": { + "granter": grant.granter, + "amount": grant.amount, + }, + "effectiveGrant": { + "granter": effective_grant.granter, + "netGrantedStake": effective_grant.net_granted_stake, + "isValid": effective_grant.is_valid, + }, + } + + assert active_grant == expected_grant + + @pytest.mark.asyncio + async def test_fetch_grant_authorization( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryGrantAuthorizationResponse( + amount="1000000000000000", + ) + exchange_servicer.grant_authorization_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + active_grant = await api.fetch_grant_authorization( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) + expected_grant = { + "amount": response.amount, + } + + assert active_grant == expected_grant + + @pytest.mark.asyncio + async def test_fetch_grant_authorizations( + self, + exchange_servicer, + ): + grant = exchange_pb.GrantAuthorization( + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + amount="1000000000000000", + ) + response = exchange_query_pb.QueryGrantAuthorizationsResponse( + total_grant_amount="1000000000000000", + grants=[grant], + ) + exchange_servicer.grant_authorizations_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + active_grant = await api.fetch_grant_authorizations( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + ) + expected_grant = { + "totalGrantAmount": response.total_grant_amount, + "grants": [ + { + "grantee": grant.grantee, + "amount": grant.amount, + }, + ], + } + + assert active_grant == expected_grant + + @pytest.mark.asyncio + async def test_fetch_l3_derivative_orderbook( + self, + exchange_servicer, + ): + bid = exchange_query_pb.TrimmedLimitOrder( + price="2000000000000000000", + quantity="1000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + ask = exchange_query_pb.TrimmedLimitOrder( + price="5000000000000000000", + quantity="3000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abf7", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000002", + ) + response = exchange_query_pb.QueryFullDerivativeOrderbookResponse( + Bids=[bid], + Asks=[ask], + ) + exchange_servicer.l3_derivative_orderbook_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + orderbook = await api.fetch_l3_derivative_orderbook( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_orderbook = { + "Bids": [ + { + "price": bid.price, + "quantity": bid.quantity, + "orderHash": bid.order_hash, + "subaccountId": bid.subaccount_id, + } + ], + "Asks": [ + { + "price": ask.price, + "quantity": ask.quantity, + "orderHash": ask.order_hash, + "subaccountId": ask.subaccount_id, + } + ], + } + + assert orderbook == expected_orderbook + + @pytest.mark.asyncio + async def test_fetch_l3_spot_orderbook( + self, + exchange_servicer, + ): + bid = exchange_query_pb.TrimmedLimitOrder( + price="2000000000000000000", + quantity="1000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + ask = exchange_query_pb.TrimmedLimitOrder( + price="5000000000000000000", + quantity="3000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abf7", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000002", + ) + response = exchange_query_pb.QueryFullSpotOrderbookResponse( + Bids=[bid], + Asks=[ask], + ) + exchange_servicer.l3_spot_orderbook_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + orderbook = await api.fetch_l3_spot_orderbook( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_orderbook = { + "Bids": [ + { + "price": bid.price, + "quantity": bid.quantity, + "orderHash": bid.order_hash, + "subaccountId": bid.subaccount_id, + } + ], + "Asks": [ + { + "price": ask.price, + "quantity": ask.quantity, + "orderHash": ask.order_hash, + "subaccountId": ask.subaccount_id, + } + ], + } + + assert orderbook == expected_orderbook + def _api_instance(self, servicer): network = Network.devnet() channel = grpc.aio.insecure_channel(network.grpc_endpoint) diff --git a/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py b/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py new file mode 100644 index 00000000..c8cb7f97 --- /dev/null +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py @@ -0,0 +1,2648 @@ +import base64 + +import grpc +import pytest + +from pyinjective.client.chain.grpc.chain_grpc_exchange_v2_api import ChainGrpcExchangeV2Api +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import DisabledCookieAssistant, Network +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as coin_pb +from pyinjective.proto.injective.exchange.v2 import ( + exchange_pb2 as exchange_pb, + market_pb2 as market_pb, + order_pb2 as order_pb, + orderbook_pb2 as orderbook_pb, + query_pb2 as exchange_query_pb, +) +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as oracle_pb +from tests.client.chain.grpc.configurable_exchange_v2_query_servicer import ConfigurableExchangeV2QueryServicer + + +@pytest.fixture +def exchange_servicer(): + return ConfigurableExchangeV2QueryServicer() + + +class TestChainGrpcBankApi: + @pytest.mark.asyncio + async def test_fetch_exchange_params( + self, + exchange_servicer, + ): + spot_market_instant_listing_fee = coin_pb.Coin(denom="inj", amount="10000000000000000000") + derivative_market_instant_listing_fee = coin_pb.Coin(denom="inj", amount="2000000000000000000000") + binary_options_market_instant_listing_fee = coin_pb.Coin(denom="inj", amount="30000000000000000000") + admin = "inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr" + params = exchange_pb.Params( + spot_market_instant_listing_fee=spot_market_instant_listing_fee, + derivative_market_instant_listing_fee=derivative_market_instant_listing_fee, + default_spot_maker_fee_rate="-0.000100000000000000", + default_spot_taker_fee_rate="0.001000000000000000", + default_derivative_maker_fee_rate="-0.000100000000000000", + default_derivative_taker_fee_rate="0.001000000000000000", + default_initial_margin_ratio="0.050000000000000000", + default_maintenance_margin_ratio="0.020000000000000000", + default_funding_interval=3600, + funding_multiple=4600, + relayer_fee_share_rate="0.400000000000000000", + default_hourly_funding_rate_cap="0.000625000000000000", + default_hourly_interest_rate="0.000004166660000000", + max_derivative_order_side_count=20, + inj_reward_staked_requirement_threshold="25000000000000000000", + trading_rewards_vesting_duration=1209600, + liquidator_reward_share_rate="0.050000000000000000", + binary_options_market_instant_listing_fee=binary_options_market_instant_listing_fee, + atomic_market_order_access_level=2, + spot_atomic_market_order_fee_multiplier="2.000000000000000000", + derivative_atomic_market_order_fee_multiplier="2.000000000000000000", + binary_options_atomic_market_order_fee_multiplier="2.000000000000000000", + minimal_protocol_fee_rate="0.000010000000000000", + is_instant_derivative_market_launch_enabled=False, + post_only_mode_height_threshold=57078000, + margin_decrease_price_timestamp_threshold_seconds=10, + exchange_admins=[admin], + inj_auction_max_cap="1000000000000000000000", + ) + exchange_servicer.exchange_params.append(exchange_query_pb.QueryExchangeParamsResponse(params=params)) + + api = self._api_instance(servicer=exchange_servicer) + + module_params = await api.fetch_exchange_params() + expected_params = { + "params": { + "spotMarketInstantListingFee": { + "amount": spot_market_instant_listing_fee.amount, + "denom": spot_market_instant_listing_fee.denom, + }, + "derivativeMarketInstantListingFee": { + "amount": derivative_market_instant_listing_fee.amount, + "denom": derivative_market_instant_listing_fee.denom, + }, + "defaultSpotMakerFeeRate": params.default_spot_maker_fee_rate, + "defaultSpotTakerFeeRate": params.default_spot_taker_fee_rate, + "defaultDerivativeMakerFeeRate": params.default_derivative_maker_fee_rate, + "defaultDerivativeTakerFeeRate": params.default_derivative_taker_fee_rate, + "defaultInitialMarginRatio": params.default_initial_margin_ratio, + "defaultMaintenanceMarginRatio": params.default_maintenance_margin_ratio, + "defaultFundingInterval": str(params.default_funding_interval), + "fundingMultiple": str(params.funding_multiple), + "relayerFeeShareRate": params.relayer_fee_share_rate, + "defaultHourlyFundingRateCap": params.default_hourly_funding_rate_cap, + "defaultHourlyInterestRate": params.default_hourly_interest_rate, + "maxDerivativeOrderSideCount": params.max_derivative_order_side_count, + "injRewardStakedRequirementThreshold": params.inj_reward_staked_requirement_threshold, + "tradingRewardsVestingDuration": str(params.trading_rewards_vesting_duration), + "liquidatorRewardShareRate": "0.050000000000000000", + "binaryOptionsMarketInstantListingFee": { + "amount": binary_options_market_instant_listing_fee.amount, + "denom": binary_options_market_instant_listing_fee.denom, + }, + "atomicMarketOrderAccessLevel": order_pb.AtomicMarketOrderAccessLevel.Name( + params.atomic_market_order_access_level + ), + "spotAtomicMarketOrderFeeMultiplier": params.spot_atomic_market_order_fee_multiplier, + "derivativeAtomicMarketOrderFeeMultiplier": params.derivative_atomic_market_order_fee_multiplier, + "binaryOptionsAtomicMarketOrderFeeMultiplier": params.binary_options_atomic_market_order_fee_multiplier, + "minimalProtocolFeeRate": params.minimal_protocol_fee_rate, + "isInstantDerivativeMarketLaunchEnabled": params.is_instant_derivative_market_launch_enabled, + "postOnlyModeHeightThreshold": str(params.post_only_mode_height_threshold), + "marginDecreasePriceTimestampThresholdSeconds": str( + params.margin_decrease_price_timestamp_threshold_seconds + ), + "exchangeAdmins": [admin], + "injAuctionMaxCap": params.inj_auction_max_cap, + } + } + + assert module_params == expected_params + + @pytest.mark.asyncio + async def test_fetch_subaccount_deposits( + self, + exchange_servicer, + ): + deposit_denom = "inj" + deposit = exchange_pb.Deposit( + available_balance="1000000000000000000", + total_balance="2000000000000000000", + ) + exchange_servicer.subaccount_deposits_responses.append( + exchange_query_pb.QuerySubaccountDepositsResponse(deposits={deposit_denom: deposit}) + ) + + api = self._api_instance(servicer=exchange_servicer) + + deposits = await api.fetch_subaccount_deposits( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + subaccount_trader="inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7", + subaccount_nonce=1, + ) + expected_deposits = { + "deposits": { + deposit_denom: { + "availableBalance": deposit.available_balance, + "totalBalance": deposit.total_balance, + }, + } + } + + assert deposits == expected_deposits + + @pytest.mark.asyncio + async def test_fetch_subaccount_deposit( + self, + exchange_servicer, + ): + deposit = exchange_pb.Deposit( + available_balance="1000000000000000000", + total_balance="2000000000000000000", + ) + exchange_servicer.subaccount_deposit_responses.append( + exchange_query_pb.QuerySubaccountDepositResponse(deposits=deposit) + ) + + api = self._api_instance(servicer=exchange_servicer) + + deposit_response = await api.fetch_subaccount_deposit( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + denom="inj", + ) + expected_deposit = { + "deposits": { + "availableBalance": deposit.available_balance, + "totalBalance": deposit.total_balance, + } + } + + assert deposit_response == expected_deposit + + @pytest.mark.asyncio + async def test_fetch_exchange_balances( + self, + exchange_servicer, + ): + deposit = exchange_pb.Deposit( + available_balance="1000000000000000000", + total_balance="2000000000000000000", + ) + balance = exchange_pb.Balance( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + denom="inj", + deposits=deposit, + ) + exchange_servicer.exchange_balances_responses.append( + exchange_query_pb.QueryExchangeBalancesResponse(balances=[balance]) + ) + + api = self._api_instance(servicer=exchange_servicer) + + balances_response = await api.fetch_exchange_balances() + expected_balances = { + "balances": [ + { + "subaccountId": balance.subaccount_id, + "denom": balance.denom, + "deposits": { + "availableBalance": deposit.available_balance, + "totalBalance": deposit.total_balance, + }, + }, + ] + } + + assert balances_response == expected_balances + + @pytest.mark.asyncio + async def test_fetch_aggregate_volume( + self, + exchange_servicer, + ): + volume = market_pb.VolumeRecord( + maker_volume="1000000000000000000", + taker_volume="2000000000000000000", + ) + market_volume = market_pb.MarketVolume( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + volume=volume, + ) + exchange_servicer.aggregate_volume_responses.append( + exchange_query_pb.QueryAggregateVolumeResponse( + aggregate_volumes=[market_volume], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + volume_response = await api.fetch_aggregate_volume(account="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r") + expected_volume = { + "aggregateVolumes": [ + { + "marketId": market_volume.market_id, + "volume": { + "makerVolume": volume.maker_volume, + "takerVolume": volume.taker_volume, + }, + }, + ] + } + + assert volume_response == expected_volume + + @pytest.mark.asyncio + async def test_fetch_aggregate_volumes( + self, + exchange_servicer, + ): + acc_volume = market_pb.VolumeRecord( + maker_volume="1000000000000000000", + taker_volume="2000000000000000000", + ) + account_market_volume = market_pb.MarketVolume( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + volume=acc_volume, + ) + account_volume = exchange_pb.AggregateAccountVolumeRecord( + account="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + market_volumes=[account_market_volume], + ) + volume = market_pb.VolumeRecord( + maker_volume="3000000000000000000", + taker_volume="4000000000000000000", + ) + market_volume = market_pb.MarketVolume( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + volume=volume, + ) + exchange_servicer.aggregate_volumes_responses.append( + exchange_query_pb.QueryAggregateVolumesResponse( + aggregate_account_volumes=[account_volume], + aggregate_market_volumes=[market_volume], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + volume_response = await api.fetch_aggregate_volumes( + accounts=[account_volume.account], + market_ids=[account_market_volume.market_id], + ) + expected_volume = { + "aggregateAccountVolumes": [ + { + "account": account_volume.account, + "marketVolumes": [ + { + "marketId": account_market_volume.market_id, + "volume": { + "makerVolume": acc_volume.maker_volume, + "takerVolume": acc_volume.taker_volume, + }, + }, + ], + }, + ], + "aggregateMarketVolumes": [ + { + "marketId": market_volume.market_id, + "volume": { + "makerVolume": volume.maker_volume, + "takerVolume": volume.taker_volume, + }, + }, + ], + } + + assert volume_response == expected_volume + + @pytest.mark.asyncio + async def test_fetch_aggregate_market_volume( + self, + exchange_servicer, + ): + volume = market_pb.VolumeRecord( + maker_volume="1000000000000000000", + taker_volume="2000000000000000000", + ) + exchange_servicer.aggregate_market_volume_responses.append( + exchange_query_pb.QueryAggregateMarketVolumeResponse( + volume=volume, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + volume_response = await api.fetch_aggregate_market_volume( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + ) + expected_volume = { + "volume": { + "makerVolume": volume.maker_volume, + "takerVolume": volume.taker_volume, + } + } + + assert volume_response == expected_volume + + @pytest.mark.asyncio + async def test_fetch_aggregate_market_volumes( + self, + exchange_servicer, + ): + volume = market_pb.VolumeRecord( + maker_volume="3000000000000000000", + taker_volume="4000000000000000000", + ) + market_volume = market_pb.MarketVolume( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + volume=volume, + ) + exchange_servicer.aggregate_market_volumes_responses.append( + exchange_query_pb.QueryAggregateMarketVolumesResponse( + volumes=[market_volume], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + volume_response = await api.fetch_aggregate_market_volumes( + market_ids=[market_volume.market_id], + ) + expected_volume = { + "volumes": [ + { + "marketId": market_volume.market_id, + "volume": { + "makerVolume": volume.maker_volume, + "takerVolume": volume.taker_volume, + }, + }, + ], + } + + assert volume_response == expected_volume + + @pytest.mark.asyncio + async def test_fetch_denom_decimal( + self, + exchange_servicer, + ): + decimal = 18 + exchange_servicer.denom_decimal_responses.append( + exchange_query_pb.QueryDenomDecimalResponse( + decimal=decimal, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + denom_decimal = await api.fetch_denom_decimal(denom="inj") + expected_decimal = {"decimal": str(decimal)} + + assert denom_decimal == expected_decimal + + @pytest.mark.asyncio + async def test_fetch_denom_decimals( + self, + exchange_servicer, + ): + denom_decimal = exchange_pb.DenomDecimals( + denom="inj", + decimals=18, + ) + exchange_servicer.denom_decimals_responses.append( + exchange_query_pb.QueryDenomDecimalsResponse( + denom_decimals=[denom_decimal], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + denom_decimals = await api.fetch_denom_decimals(denoms=[denom_decimal.denom]) + expected_decimals = { + "denomDecimals": [ + { + "denom": denom_decimal.denom, + "decimals": str(denom_decimal.decimals), + } + ] + } + + assert denom_decimals == expected_decimals + + @pytest.mark.asyncio + async def test_fetch_spot_markets( + self, + exchange_servicer, + ): + market = market_pb.SpotMarket( + ticker="INJ/USDT", + base_denom="inj", + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="0.4", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + status=1, + min_price_tick_size="0.000000000000001", + min_quantity_tick_size="1000000000000000", + min_notional="5000000000000000000", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + base_decimals=18, + quote_decimals=6, + ) + exchange_servicer.spot_markets_responses.append( + exchange_query_pb.QuerySpotMarketsResponse( + markets=[market], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + status_string = market_pb.MarketStatus.Name(market.status) + markets = await api.fetch_spot_markets( + status=status_string, + market_ids=[market.market_id], + ) + expected_markets = { + "markets": [ + { + "ticker": market.ticker, + "baseDenom": market.base_denom, + "quoteDenom": market.quote_denom, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "marketId": market.market_id, + "status": status_string, + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "minNotional": market.min_notional, + "admin": market.admin, + "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, + } + ] + } + + assert markets == expected_markets + + @pytest.mark.asyncio + async def test_fetch_spot_market( + self, + exchange_servicer, + ): + market = market_pb.SpotMarket( + ticker="INJ/USDT", + base_denom="inj", + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="0.4", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + status=1, + min_price_tick_size="0.000000000000001", + min_quantity_tick_size="1000000000000000", + min_notional="5000000000000000000", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + base_decimals=18, + quote_decimals=6, + ) + exchange_servicer.spot_market_responses.append( + exchange_query_pb.QuerySpotMarketResponse( + market=market, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + response_market = await api.fetch_spot_market( + market_id=market.market_id, + ) + expected_market = { + "market": { + "ticker": market.ticker, + "baseDenom": market.base_denom, + "quoteDenom": market.quote_denom, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "marketId": market.market_id, + "status": market_pb.MarketStatus.Name(market.status), + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "minNotional": market.min_notional, + "admin": market.admin, + "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, + } + } + + assert response_market == expected_market + + @pytest.mark.asyncio + async def test_fetch_full_spot_markets( + self, + exchange_servicer, + ): + market = market_pb.SpotMarket( + ticker="INJ/USDT", + base_denom="inj", + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="0.4", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + status=1, + min_price_tick_size="0.000000000000001", + min_quantity_tick_size="1000000000000000", + min_notional="5000000000000000000", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + base_decimals=18, + quote_decimals=6, + ) + mid_price_and_tob = exchange_pb.MidPriceAndTOB( + mid_price="2000000000000000000", + best_buy_price="1000000000000000000", + best_sell_price="3000000000000000000", + ) + full_market = exchange_query_pb.FullSpotMarket( + market=market, + mid_price_and_tob=mid_price_and_tob, + ) + exchange_servicer.full_spot_markets_responses.append( + exchange_query_pb.QueryFullSpotMarketsResponse( + markets=[full_market], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + status_string = market_pb.MarketStatus.Name(market.status) + markets = await api.fetch_full_spot_markets( + status=status_string, + market_ids=[market.market_id], + with_mid_price_and_tob=True, + ) + expected_markets = { + "markets": [ + { + "market": { + "ticker": market.ticker, + "baseDenom": market.base_denom, + "quoteDenom": market.quote_denom, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "marketId": market.market_id, + "status": status_string, + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "minNotional": market.min_notional, + "admin": market.admin, + "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, + }, + "midPriceAndTob": { + "midPrice": mid_price_and_tob.mid_price, + "bestBuyPrice": mid_price_and_tob.best_buy_price, + "bestSellPrice": mid_price_and_tob.best_sell_price, + }, + } + ] + } + + assert markets == expected_markets + + @pytest.mark.asyncio + async def test_fetch_full_spot_market( + self, + exchange_servicer, + ): + market = market_pb.SpotMarket( + ticker="INJ/USDT", + base_denom="inj", + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="0.4", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + status=1, + min_price_tick_size="0.000000000000001", + min_quantity_tick_size="1000000000000000", + min_notional="5000000000000000000", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + base_decimals=18, + quote_decimals=6, + ) + mid_price_and_tob = exchange_pb.MidPriceAndTOB( + mid_price="2000000000000000000", + best_buy_price="1000000000000000000", + best_sell_price="3000000000000000000", + ) + full_market = exchange_query_pb.FullSpotMarket( + market=market, + mid_price_and_tob=mid_price_and_tob, + ) + exchange_servicer.full_spot_market_responses.append( + exchange_query_pb.QueryFullSpotMarketResponse( + market=full_market, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + status_string = market_pb.MarketStatus.Name(market.status) + market_response = await api.fetch_full_spot_market( + market_id=market.market_id, + with_mid_price_and_tob=True, + ) + expected_market = { + "market": { + "market": { + "ticker": market.ticker, + "baseDenom": market.base_denom, + "quoteDenom": market.quote_denom, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "marketId": market.market_id, + "status": status_string, + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "minNotional": market.min_notional, + "admin": market.admin, + "adminPermissions": market.admin_permissions, + "baseDecimals": market.base_decimals, + "quoteDecimals": market.quote_decimals, + }, + "midPriceAndTob": { + "midPrice": mid_price_and_tob.mid_price, + "bestBuyPrice": mid_price_and_tob.best_buy_price, + "bestSellPrice": mid_price_and_tob.best_sell_price, + }, + } + } + + assert market_response == expected_market + + @pytest.mark.asyncio + async def test_fetch_spot_orderbook( + self, + exchange_servicer, + ): + buy_price_level = exchange_pb.Level( + p="1000000000000000000", + q="1000000000000000", + ) + sell_price_level = exchange_pb.Level( + p="2000000000000000000", + q="2000000000000000", + ) + exchange_servicer.spot_orderbook_responses.append( + exchange_query_pb.QuerySpotOrderbookResponse( + buys_price_level=[buy_price_level], + sells_price_level=[sell_price_level], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orderbook = await api.fetch_spot_orderbook( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + order_side="Side_Unspecified", + limit_cumulative_notional="1000000000000000000", + limit_cumulative_quantity="1000000000000000", + pagination=PaginationOption(limit=100), + ) + expected_orderbook = { + "buysPriceLevel": [ + { + "p": buy_price_level.p, + "q": buy_price_level.q, + } + ], + "sellsPriceLevel": [ + { + "p": sell_price_level.p, + "q": sell_price_level.q, + } + ], + } + + assert orderbook == expected_orderbook + + @pytest.mark.asyncio + async def test_fetch_trader_spot_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedSpotLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.trader_spot_orders_responses.append( + exchange_query_pb.QueryTraderSpotOrdersResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_trader_spot_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_account_address_spot_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedSpotLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.account_address_spot_orders_responses.append( + exchange_query_pb.QueryAccountAddressSpotOrdersResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_account_address_spot_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + account_address="inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_spot_orders_by_hashes( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedSpotLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.spot_orders_by_hashes_responses.append( + exchange_query_pb.QuerySpotOrdersByHashesResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_spot_orders_by_hashes( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + order_hashes=[order.order_hash], + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_subaccount_orders( + self, + exchange_servicer, + ): + buy_subaccount_order = exchange_pb.SubaccountOrder( + price="1000000000000000000", + quantity="1000000000000000", + isReduceOnly=False, + cid="buy_cid", + ) + buy_order = exchange_pb.SubaccountOrderData( + order=buy_subaccount_order, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849".encode(), + ) + sell_subaccount_order = exchange_pb.SubaccountOrder( + price="2000000000000000000", + quantity="2000000000000000", + isReduceOnly=False, + cid="sell_cid", + ) + sell_order = exchange_pb.SubaccountOrderData( + order=sell_subaccount_order, + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2".encode(), + ) + exchange_servicer.subaccount_orders_responses.append( + exchange_query_pb.QuerySubaccountOrdersResponse( + buy_orders=[buy_order], + sell_orders=[sell_order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_subaccount_orders( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) + expected_orders = { + "buyOrders": [ + { + "order": { + "price": buy_subaccount_order.price, + "quantity": buy_subaccount_order.quantity, + "isReduceOnly": buy_subaccount_order.isReduceOnly, + "cid": buy_subaccount_order.cid, + }, + "orderHash": base64.b64encode(buy_order.order_hash).decode(), + } + ], + "sellOrders": [ + { + "order": { + "price": sell_subaccount_order.price, + "quantity": sell_subaccount_order.quantity, + "isReduceOnly": sell_subaccount_order.isReduceOnly, + "cid": sell_subaccount_order.cid, + }, + "orderHash": base64.b64encode(sell_order.order_hash).decode(), + } + ], + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_trader_spot_transient_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedSpotLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.trader_spot_transient_orders_responses.append( + exchange_query_pb.QueryTraderSpotOrdersResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_trader_spot_transient_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_spot_mid_price_and_tob( + self, + exchange_servicer, + ): + response = exchange_query_pb.QuerySpotMidPriceAndTOBResponse( + mid_price="2000000000000000000", + best_buy_price="1000000000000000000", + best_sell_price="3000000000000000000", + ) + exchange_servicer.spot_mid_price_and_tob_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + prices = await api.fetch_spot_mid_price_and_tob( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) + expected_prices = { + "midPrice": response.mid_price, + "bestBuyPrice": response.best_buy_price, + "bestSellPrice": response.best_sell_price, + } + + assert prices == expected_prices + + @pytest.mark.asyncio + async def test_fetch_derivative_mid_price_and_tob( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryDerivativeMidPriceAndTOBResponse( + mid_price="2000000000000000000", + best_buy_price="1000000000000000000", + best_sell_price="3000000000000000000", + ) + exchange_servicer.derivative_mid_price_and_tob_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + prices = await api.fetch_derivative_mid_price_and_tob( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) + expected_prices = { + "midPrice": response.mid_price, + "bestBuyPrice": response.best_buy_price, + "bestSellPrice": response.best_sell_price, + } + + assert prices == expected_prices + + @pytest.mark.asyncio + async def test_fetch_derivative_orderbook( + self, + exchange_servicer, + ): + buy_price_level = exchange_pb.Level( + p="1000000000000000000", + q="1000000000000000", + ) + sell_price_level = exchange_pb.Level( + p="2000000000000000000", + q="2000000000000000", + ) + exchange_servicer.derivative_orderbook_responses.append( + exchange_query_pb.QueryDerivativeOrderbookResponse( + buys_price_level=[buy_price_level], + sells_price_level=[sell_price_level], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orderbook = await api.fetch_derivative_orderbook( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + limit_cumulative_notional="1000000000000000000", + pagination=PaginationOption(limit=100), + ) + expected_orderbook = { + "buysPriceLevel": [ + { + "p": buy_price_level.p, + "q": buy_price_level.q, + } + ], + "sellsPriceLevel": [ + { + "p": sell_price_level.p, + "q": sell_price_level.q, + } + ], + } + + assert orderbook == expected_orderbook + + @pytest.mark.asyncio + async def test_fetch_trader_derivative_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedDerivativeLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + margin="1000000000000000000000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.trader_derivative_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeOrdersResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_trader_derivative_orders( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "margin": order.margin, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_account_address_derivative_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedDerivativeLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + margin="1000000000000000000000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.account_address_derivative_orders_responses.append( + exchange_query_pb.QueryAccountAddressDerivativeOrdersResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_account_address_derivative_orders( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + account_address="inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "margin": order.margin, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_derivative_orders_by_hashes( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedDerivativeLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + margin="1000000000000000000000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.derivative_orders_by_hashes_responses.append( + exchange_query_pb.QueryDerivativeOrdersByHashesResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_derivative_orders_by_hashes( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + order_hashes=[order.order_hash], + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "margin": order.margin, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_trader_derivative_transient_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedDerivativeLimitOrder( + price="1000000000000000000", + quantity="1000000000000000", + margin="1000000000000000000000000000000000", + fillable="1000000000000000", + isBuy=True, + order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + cid="order_cid", + ) + exchange_servicer.trader_derivative_transient_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeOrdersResponse( + orders=[order], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_trader_derivative_transient_orders( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "margin": order.margin, + "fillable": order.fillable, + "isBuy": order.isBuy, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_derivative_markets( + self, + exchange_servicer, + ): + market = market_pb.DerivativeMarket( + ticker="20250608/USDT", + oracle_base="0x2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3", + oracle_quote="0x1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588", + oracle_type=9, + oracle_scale_factor=6, + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + initial_margin_ratio="50000000000000000", + maintenance_margin_ratio="20000000000000000", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="400000000000000000", + isPerpetual=True, + status=1, + min_price_tick_size="100000000000000000000", + min_quantity_tick_size="1000000000000000", + min_notional="5000000000000000000", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + quote_decimals=6, + ) + market_info = market_pb.PerpetualMarketInfo( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + hourly_funding_rate_cap="625000000000000", + hourly_interest_rate="4166660000000", + next_funding_timestamp=1708099200, + funding_interval=3600, + ) + funding_info = market_pb.PerpetualMarketFunding( + cumulative_funding="-107853477278881692857461", + cumulative_price="0", + last_timestamp=1708099200, + ) + perpetual_info = exchange_query_pb.PerpetualMarketState( + market_info=market_info, + funding_info=funding_info, + ) + mid_price_and_tob = exchange_pb.MidPriceAndTOB( + mid_price="2000000000000000000", + best_buy_price="1000000000000000000", + best_sell_price="3000000000000000000", + ) + full_market = exchange_query_pb.FullDerivativeMarket( + market=market, + perpetual_info=perpetual_info, + mark_price="33803835513327368963000000", + mid_price_and_tob=mid_price_and_tob, + ) + exchange_servicer.derivative_markets_responses.append( + exchange_query_pb.QueryDerivativeMarketsResponse( + markets=[full_market], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + status_string = market_pb.MarketStatus.Name(market.status) + markets = await api.fetch_derivative_markets( + status=status_string, + market_ids=[market.market_id], + ) + expected_markets = { + "markets": [ + { + "market": { + "ticker": market.ticker, + "oracleBase": market.oracle_base, + "oracleQuote": market.oracle_quote, + "oracleType": oracle_pb.OracleType.Name(market.oracle_type), + "oracleScaleFactor": market.oracle_scale_factor, + "quoteDenom": market.quote_denom, + "marketId": market.market_id, + "initialMarginRatio": market.initial_margin_ratio, + "maintenanceMarginRatio": market.maintenance_margin_ratio, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "isPerpetual": market.isPerpetual, + "status": status_string, + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "minNotional": market.min_notional, + "admin": market.admin, + "adminPermissions": market.admin_permissions, + "quoteDecimals": market.quote_decimals, + }, + "perpetualInfo": { + "marketInfo": { + "marketId": market_info.market_id, + "hourlyFundingRateCap": market_info.hourly_funding_rate_cap, + "hourlyInterestRate": market_info.hourly_interest_rate, + "nextFundingTimestamp": str(market_info.next_funding_timestamp), + "fundingInterval": str(market_info.funding_interval), + }, + "fundingInfo": { + "cumulativeFunding": funding_info.cumulative_funding, + "cumulativePrice": funding_info.cumulative_price, + "lastTimestamp": str(funding_info.last_timestamp), + }, + }, + "markPrice": full_market.mark_price, + "midPriceAndTob": { + "midPrice": mid_price_and_tob.mid_price, + "bestBuyPrice": mid_price_and_tob.best_buy_price, + "bestSellPrice": mid_price_and_tob.best_sell_price, + }, + } + ] + } + + assert markets == expected_markets + + @pytest.mark.asyncio + async def test_fetch_derivative_market( + self, + exchange_servicer, + ): + market = market_pb.DerivativeMarket( + ticker="INJ/USDT PERP", + oracle_base="0x2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3", + oracle_quote="0x1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588", + oracle_type=9, + oracle_scale_factor=6, + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + initial_margin_ratio="50000000000000000", + maintenance_margin_ratio="20000000000000000", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="400000000000000000", + isPerpetual=True, + status=1, + min_price_tick_size="100000000000000000000", + min_quantity_tick_size="1000000000000000", + min_notional="5000000000000000000", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + quote_decimals=6, + ) + market_info = market_pb.PerpetualMarketInfo( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + hourly_funding_rate_cap="625000000000000", + hourly_interest_rate="4166660000000", + next_funding_timestamp=1708099200, + funding_interval=3600, + ) + funding_info = market_pb.PerpetualMarketFunding( + cumulative_funding="-107853477278881692857461", + cumulative_price="0", + last_timestamp=1708099200, + ) + perpetual_info = exchange_query_pb.PerpetualMarketState( + market_info=market_info, + funding_info=funding_info, + ) + mid_price_and_tob = exchange_pb.MidPriceAndTOB( + mid_price="2000000000000000000", + best_buy_price="1000000000000000000", + best_sell_price="3000000000000000000", + ) + full_market = exchange_query_pb.FullDerivativeMarket( + market=market, + perpetual_info=perpetual_info, + mark_price="33803835513327368963000000", + mid_price_and_tob=mid_price_and_tob, + ) + exchange_servicer.derivative_market_responses.append( + exchange_query_pb.QueryDerivativeMarketResponse( + market=full_market, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + status_string = market_pb.MarketStatus.Name(market.status) + market_response = await api.fetch_derivative_market( + market_id=market.market_id, + ) + expected_market = { + "market": { + "market": { + "ticker": market.ticker, + "oracleBase": market.oracle_base, + "oracleQuote": market.oracle_quote, + "oracleType": oracle_pb.OracleType.Name(market.oracle_type), + "oracleScaleFactor": market.oracle_scale_factor, + "quoteDenom": market.quote_denom, + "marketId": market.market_id, + "initialMarginRatio": market.initial_margin_ratio, + "maintenanceMarginRatio": market.maintenance_margin_ratio, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "isPerpetual": market.isPerpetual, + "status": status_string, + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "minNotional": market.min_notional, + "admin": market.admin, + "adminPermissions": market.admin_permissions, + "quoteDecimals": market.quote_decimals, + }, + "perpetualInfo": { + "marketInfo": { + "marketId": market_info.market_id, + "hourlyFundingRateCap": market_info.hourly_funding_rate_cap, + "hourlyInterestRate": market_info.hourly_interest_rate, + "nextFundingTimestamp": str(market_info.next_funding_timestamp), + "fundingInterval": str(market_info.funding_interval), + }, + "fundingInfo": { + "cumulativeFunding": funding_info.cumulative_funding, + "cumulativePrice": funding_info.cumulative_price, + "lastTimestamp": str(funding_info.last_timestamp), + }, + }, + "markPrice": full_market.mark_price, + "midPriceAndTob": { + "midPrice": mid_price_and_tob.mid_price, + "bestBuyPrice": mid_price_and_tob.best_buy_price, + "bestSellPrice": mid_price_and_tob.best_sell_price, + }, + } + } + + assert market_response == expected_market + + @pytest.mark.asyncio + async def test_fetch_derivative_market_address( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryDerivativeMarketAddressResponse( + address="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + subaccount_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20000000000000000000000000", + ) + exchange_servicer.derivative_market_address_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + address = await api.fetch_derivative_market_address( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_address = { + "address": response.address, + "subaccountId": response.subaccount_id, + } + + assert address == expected_address + + @pytest.mark.asyncio + async def test_fetch_subaccount_trade_nonce( + self, + exchange_servicer, + ): + response = exchange_query_pb.QuerySubaccountTradeNonceResponse(nonce=1234567879) + exchange_servicer.subaccount_trade_nonce_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + nonce = await api.fetch_subaccount_trade_nonce( + subaccount_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20000000000000000000000000", + ) + expected_nonce = { + "nonce": response.nonce, + } + + assert nonce == expected_nonce + + @pytest.mark.asyncio + async def test_fetch_positions( + self, + exchange_servicer, + ): + position = exchange_pb.Position( + isLong=True, + quantity="1000000000000000", + entry_price="2000000000000000000", + margin="2000000000000000000000000000000000", + cumulative_funding_entry="4000000", + ) + derivative_position = exchange_pb.DerivativePosition( + subaccount_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20000000000000000000000000", + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + position=position, + ) + exchange_servicer.positions_responses.append( + exchange_query_pb.QueryPositionsResponse(state=[derivative_position]) + ) + + api = self._api_instance(servicer=exchange_servicer) + + positions = await api.fetch_positions() + expected_positions = { + "state": [ + { + "subaccountId": derivative_position.subaccount_id, + "marketId": derivative_position.market_id, + "position": { + "isLong": position.isLong, + "quantity": position.quantity, + "entryPrice": position.entry_price, + "margin": position.margin, + "cumulativeFundingEntry": position.cumulative_funding_entry, + }, + }, + ], + } + + assert positions == expected_positions + + @pytest.mark.asyncio + async def test_fetch_subaccount_positions( + self, + exchange_servicer, + ): + position = exchange_pb.Position( + isLong=True, + quantity="1000000000000000", + entry_price="2000000000000000000", + margin="2000000000000000000000000000000000", + cumulative_funding_entry="4000000", + ) + derivative_position = exchange_pb.DerivativePosition( + subaccount_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20000000000000000000000000", + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + position=position, + ) + exchange_servicer.subaccount_positions_responses.append( + exchange_query_pb.QuerySubaccountPositionsResponse(state=[derivative_position]) + ) + + api = self._api_instance(servicer=exchange_servicer) + + positions = await api.fetch_subaccount_positions(subaccount_id=derivative_position.subaccount_id) + expected_positions = { + "state": [ + { + "subaccountId": derivative_position.subaccount_id, + "marketId": derivative_position.market_id, + "position": { + "isLong": position.isLong, + "quantity": position.quantity, + "entryPrice": position.entry_price, + "margin": position.margin, + "cumulativeFundingEntry": position.cumulative_funding_entry, + }, + }, + ], + } + + assert positions == expected_positions + + @pytest.mark.asyncio + async def test_fetch_subaccount_position_in_market( + self, + exchange_servicer, + ): + subaccount_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20000000000000000000000000" + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + position = exchange_pb.Position( + isLong=True, + quantity="1000000000000000", + entry_price="2000000000000000000", + margin="2000000000000000000000000000000000", + cumulative_funding_entry="4000000", + ) + exchange_servicer.subaccount_position_in_market_responses.append( + exchange_query_pb.QuerySubaccountPositionInMarketResponse(state=position) + ) + + api = self._api_instance(servicer=exchange_servicer) + + position_response = await api.fetch_subaccount_position_in_market( + subaccount_id=subaccount_id, + market_id=market_id, + ) + expected_position = { + "state": { + "isLong": position.isLong, + "quantity": position.quantity, + "entryPrice": position.entry_price, + "margin": position.margin, + "cumulativeFundingEntry": position.cumulative_funding_entry, + }, + } + + assert position_response == expected_position + + @pytest.mark.asyncio + async def test_fetch_subaccount_effective_position_in_market( + self, + exchange_servicer, + ): + subaccount_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20000000000000000000000000" + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + effective_position = exchange_query_pb.EffectivePosition( + is_long=True, + quantity="1000000000000000", + entry_price="2000000000000000000", + effective_margin="2000000000000000000000000000000000", + ) + exchange_servicer.subaccount_effective_position_in_market_responses.append( + exchange_query_pb.QuerySubaccountEffectivePositionInMarketResponse(state=effective_position) + ) + + api = self._api_instance(servicer=exchange_servicer) + + position_response = await api.fetch_subaccount_effective_position_in_market( + subaccount_id=subaccount_id, + market_id=market_id, + ) + expected_position = { + "state": { + "isLong": effective_position.is_long, + "quantity": effective_position.quantity, + "entryPrice": effective_position.entry_price, + "effectiveMargin": effective_position.effective_margin, + }, + } + + assert position_response == expected_position + + @pytest.mark.asyncio + async def test_fetch_perpetual_market_info( + self, + exchange_servicer, + ): + perpetual_market_info = market_pb.PerpetualMarketInfo( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + hourly_funding_rate_cap="625000000000000", + hourly_interest_rate="4166660000000", + next_funding_timestamp=1708099200, + funding_interval=3600, + ) + exchange_servicer.perpetual_market_info_responses.append( + exchange_query_pb.QueryPerpetualMarketInfoResponse(info=perpetual_market_info) + ) + + api = self._api_instance(servicer=exchange_servicer) + + market_info = await api.fetch_perpetual_market_info(market_id=perpetual_market_info.market_id) + expected_market_info = { + "info": { + "marketId": perpetual_market_info.market_id, + "hourlyFundingRateCap": perpetual_market_info.hourly_funding_rate_cap, + "hourlyInterestRate": perpetual_market_info.hourly_interest_rate, + "nextFundingTimestamp": str(perpetual_market_info.next_funding_timestamp), + "fundingInterval": str(perpetual_market_info.funding_interval), + } + } + + assert market_info == expected_market_info + + @pytest.mark.asyncio + async def test_fetch_expiry_futures_market_info( + self, + exchange_servicer, + ): + expiry_futures_market_info = market_pb.ExpiryFuturesMarketInfo( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + expiration_timestamp=1708099200, + twap_start_timestamp=1705566200, + expiration_twap_start_price_cumulative="1000000000000000000", + settlement_price="2000000000000000000", + ) + exchange_servicer.expiry_futures_market_info_responses.append( + exchange_query_pb.QueryExpiryFuturesMarketInfoResponse(info=expiry_futures_market_info) + ) + + api = self._api_instance(servicer=exchange_servicer) + + market_info = await api.fetch_expiry_futures_market_info(market_id=expiry_futures_market_info.market_id) + expected_market_info = { + "info": { + "marketId": expiry_futures_market_info.market_id, + "expirationTimestamp": str(expiry_futures_market_info.expiration_timestamp), + "twapStartTimestamp": str(expiry_futures_market_info.twap_start_timestamp), + "expirationTwapStartPriceCumulative": expiry_futures_market_info.expiration_twap_start_price_cumulative, + "settlementPrice": expiry_futures_market_info.settlement_price, + } + } + + assert market_info == expected_market_info + + @pytest.mark.asyncio + async def test_fetch_perpetual_market_funding( + self, + exchange_servicer, + ): + perpetual_market_funding = market_pb.PerpetualMarketFunding( + cumulative_funding="-107853477278881692857461", + cumulative_price="0", + last_timestamp=1708099200, + ) + exchange_servicer.perpetual_market_funding_responses.append( + exchange_query_pb.QueryPerpetualMarketFundingResponse(state=perpetual_market_funding) + ) + + api = self._api_instance(servicer=exchange_servicer) + + funding = await api.fetch_perpetual_market_funding( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + ) + expected_funding = { + "state": { + "cumulativeFunding": perpetual_market_funding.cumulative_funding, + "cumulativePrice": perpetual_market_funding.cumulative_price, + "lastTimestamp": str(perpetual_market_funding.last_timestamp), + } + } + + assert funding == expected_funding + + @pytest.mark.asyncio + async def test_fetch_subaccount_order_metadata( + self, + exchange_servicer, + ): + metadata = orderbook_pb.SubaccountOrderbookMetadata( + vanilla_limit_order_count=1, + reduce_only_limit_order_count=2, + aggregate_reduce_only_quantity="1000000000000000", + aggregate_vanilla_quantity="2000000000000000", + vanilla_conditional_order_count=3, + reduce_only_conditional_order_count=4, + ) + subaccount_order_metadata = exchange_query_pb.SubaccountOrderbookMetadataWithMarket( + metadata=metadata, + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + isBuy=True, + ) + exchange_servicer.subaccount_order_metadata_responses.append( + exchange_query_pb.QuerySubaccountOrderMetadataResponse(metadata=[subaccount_order_metadata]) + ) + + api = self._api_instance(servicer=exchange_servicer) + + metadata_response = await api.fetch_subaccount_order_metadata( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001" + ) + expected_metadata = { + "metadata": [ + { + "metadata": { + "vanillaLimitOrderCount": metadata.vanilla_limit_order_count, + "reduceOnlyLimitOrderCount": metadata.reduce_only_limit_order_count, + "aggregateReduceOnlyQuantity": metadata.aggregate_reduce_only_quantity, + "aggregateVanillaQuantity": metadata.aggregate_vanilla_quantity, + "vanillaConditionalOrderCount": metadata.vanilla_conditional_order_count, + "reduceOnlyConditionalOrderCount": metadata.reduce_only_conditional_order_count, + }, + "marketId": subaccount_order_metadata.market_id, + "isBuy": subaccount_order_metadata.isBuy, + }, + ] + } + + assert metadata_response == expected_metadata + + @pytest.mark.asyncio + async def test_fetch_trade_reward_points( + self, + exchange_servicer, + ): + points = "40" + response = exchange_query_pb.QueryTradeRewardPointsResponse(account_trade_reward_points=[points]) + exchange_servicer.trade_reward_points_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + trade_reward_points = await api.fetch_trade_reward_points( + accounts=["inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"], + pending_pool_timestamp=1708099200, + ) + expected_trade_reward_points = {"accountTradeRewardPoints": [points]} + + assert trade_reward_points == expected_trade_reward_points + + @pytest.mark.asyncio + async def test_fetch_pending_trade_reward_points( + self, + exchange_servicer, + ): + points = "40" + response = exchange_query_pb.QueryTradeRewardPointsResponse(account_trade_reward_points=[points]) + exchange_servicer.pending_trade_reward_points_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + trade_reward_points = await api.fetch_pending_trade_reward_points( + accounts=["inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"], + pending_pool_timestamp=1708099200, + ) + expected_trade_reward_points = {"accountTradeRewardPoints": [points]} + + assert trade_reward_points == expected_trade_reward_points + + @pytest.mark.asyncio + async def test_fetch_trade_reward_campaign( + self, + exchange_servicer, + ): + spot_market_multiplier = exchange_pb.PointsMultiplier( + maker_points_multiplier="10.0", + taker_points_multiplier="5.0", + ) + derivative_market_multiplier = exchange_pb.PointsMultiplier( + maker_points_multiplier="9.0", + taker_points_multiplier="6.0", + ) + trading_reward_boost_info = exchange_pb.TradingRewardCampaignBoostInfo( + boosted_spot_market_ids=["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00aaf7"], + spot_market_multipliers=[spot_market_multiplier], + boosted_derivative_market_ids=["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"], + derivative_market_multipliers=[derivative_market_multiplier], + ) + trading_reward_campaign_info = exchange_pb.TradingRewardCampaignInfo( + campaign_duration_seconds=3600, + quote_denoms=["peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"], + trading_reward_boost_info=trading_reward_boost_info, + disqualified_market_ids=["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00aaf7"], + ) + reward = coin_pb.Coin( + amount="1000000000000000000", + denom="inj", + ) + trading_reward_pool_campaign_schedule = exchange_pb.CampaignRewardPool( + start_timestamp=1708099200, + max_campaign_rewards=[reward], + ) + total_trade_reward_points = "40" + pending_reward = coin_pb.Coin( + amount="2000000000000000000", + denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + ) + pending_trading_reward_pool_campaign_schedule = exchange_pb.CampaignRewardPool( + start_timestamp=1709099200, + max_campaign_rewards=[pending_reward], + ) + pending_total_trade_reward_points = "80" + response = exchange_query_pb.QueryTradeRewardCampaignResponse( + trading_reward_campaign_info=trading_reward_campaign_info, + trading_reward_pool_campaign_schedule=[trading_reward_pool_campaign_schedule], + total_trade_reward_points=total_trade_reward_points, + pending_trading_reward_pool_campaign_schedule=[pending_trading_reward_pool_campaign_schedule], + pending_total_trade_reward_points=[pending_total_trade_reward_points], + ) + exchange_servicer.trade_reward_campaign_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + trade_reward_campaign = await api.fetch_trade_reward_campaign() + expected_campaign = { + "tradingRewardCampaignInfo": { + "campaignDurationSeconds": str(trading_reward_campaign_info.campaign_duration_seconds), + "quoteDenoms": trading_reward_campaign_info.quote_denoms, + "tradingRewardBoostInfo": { + "boostedSpotMarketIds": ( + trading_reward_campaign_info.trading_reward_boost_info.boosted_spot_market_ids + ), + "spotMarketMultipliers": [ + { + "makerPointsMultiplier": spot_market_multiplier.maker_points_multiplier, + "takerPointsMultiplier": spot_market_multiplier.taker_points_multiplier, + }, + ], + "boostedDerivativeMarketIds": ( + trading_reward_campaign_info.trading_reward_boost_info.boosted_derivative_market_ids + ), + "derivativeMarketMultipliers": [ + { + "makerPointsMultiplier": derivative_market_multiplier.maker_points_multiplier, + "takerPointsMultiplier": derivative_market_multiplier.taker_points_multiplier, + }, + ], + }, + "disqualifiedMarketIds": trading_reward_campaign_info.disqualified_market_ids, + }, + "tradingRewardPoolCampaignSchedule": [ + { + "startTimestamp": str(trading_reward_pool_campaign_schedule.start_timestamp), + "maxCampaignRewards": [ + { + "amount": trading_reward_pool_campaign_schedule.max_campaign_rewards[0].amount, + "denom": trading_reward_pool_campaign_schedule.max_campaign_rewards[0].denom, + }, + ], + }, + ], + "totalTradeRewardPoints": total_trade_reward_points, + "pendingTradingRewardPoolCampaignSchedule": [ + { + "startTimestamp": str(pending_trading_reward_pool_campaign_schedule.start_timestamp), + "maxCampaignRewards": [ + { + "amount": pending_trading_reward_pool_campaign_schedule.max_campaign_rewards[0].amount, + "denom": pending_trading_reward_pool_campaign_schedule.max_campaign_rewards[0].denom, + }, + ], + }, + ], + "pendingTotalTradeRewardPoints": [pending_total_trade_reward_points], + } + + assert trade_reward_campaign == expected_campaign + + @pytest.mark.asyncio + async def test_fetch_fee_discount_account_info( + self, + exchange_servicer, + ): + account_info = exchange_pb.FeeDiscountTierInfo( + maker_discount_rate="0.0001", + taker_discount_rate="0.0002", + staked_amount="1000000000", + volume="1000000000000000000", + ) + account_ttl = exchange_pb.FeeDiscountTierTTL( + tier=3, + ttl_timestamp=1708099200, + ) + response = exchange_query_pb.QueryFeeDiscountAccountInfoResponse( + tier_level=3, + account_info=account_info, + account_ttl=account_ttl, + ) + exchange_servicer.fee_discount_account_info_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + fee_discount = await api.fetch_fee_discount_account_info(account="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r") + expected_fee_discount = { + "tierLevel": str(response.tier_level), + "accountInfo": { + "makerDiscountRate": account_info.maker_discount_rate, + "takerDiscountRate": account_info.taker_discount_rate, + "stakedAmount": account_info.staked_amount, + "volume": account_info.volume, + }, + "accountTtl": { + "tier": str(account_ttl.tier), + "ttlTimestamp": str(account_ttl.ttl_timestamp), + }, + } + + assert fee_discount == expected_fee_discount + + @pytest.mark.asyncio + async def test_fetch_fee_discount_schedule( + self, + exchange_servicer, + ): + fee_discount_tier_info = exchange_pb.FeeDiscountTierInfo( + maker_discount_rate="0.0001", + taker_discount_rate="0.0002", + staked_amount="1000000000", + volume="1000000000000000000", + ) + fee_discount_schedule = exchange_pb.FeeDiscountSchedule( + bucket_count=3, + bucket_duration=3600, + quote_denoms=["peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"], + tier_infos=[fee_discount_tier_info], + disqualified_market_ids=["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"], + ) + exchange_servicer.fee_discount_schedule_responses.append( + exchange_query_pb.QueryFeeDiscountScheduleResponse( + fee_discount_schedule=fee_discount_schedule, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + schedule = await api.fetch_fee_discount_schedule() + expected_schedule = { + "feeDiscountSchedule": { + "bucketCount": str(fee_discount_schedule.bucket_count), + "bucketDuration": str(fee_discount_schedule.bucket_duration), + "quoteDenoms": fee_discount_schedule.quote_denoms, + "tierInfos": [ + { + "makerDiscountRate": fee_discount_tier_info.maker_discount_rate, + "takerDiscountRate": fee_discount_tier_info.taker_discount_rate, + "stakedAmount": fee_discount_tier_info.staked_amount, + "volume": fee_discount_tier_info.volume, + } + ], + "disqualifiedMarketIds": fee_discount_schedule.disqualified_market_ids, + }, + } + + assert schedule == expected_schedule + + @pytest.mark.asyncio + async def test_fetch_balance_mismatches( + self, + exchange_servicer, + ): + balance_mismatch = exchange_query_pb.BalanceMismatch( + subaccountId="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + available="1000000000000000", + total="2000000000000000", + balance_hold="3000000000000000", + expected_total="4000000000000000", + difference="500000000000000", + ) + exchange_servicer.balance_mismatches_responses.append( + exchange_query_pb.QueryBalanceMismatchesResponse( + balance_mismatches=[balance_mismatch], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + mismatches = await api.fetch_balance_mismatches(dust_factor=20) + expected_mismatches = { + "balanceMismatches": [ + { + "subaccountId": balance_mismatch.subaccountId, + "denom": balance_mismatch.denom, + "available": balance_mismatch.available, + "total": balance_mismatch.total, + "balanceHold": balance_mismatch.balance_hold, + "expectedTotal": balance_mismatch.expected_total, + "difference": balance_mismatch.difference, + } + ], + } + + assert mismatches == expected_mismatches + + @pytest.mark.asyncio + async def test_fetch_balance_with_balance_holds( + self, + exchange_servicer, + ): + balance_with_balance_hold = exchange_query_pb.BalanceWithMarginHold( + subaccountId="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + available="1000000000000000", + total="2000000000000000", + balance_hold="3000000000000000", + ) + exchange_servicer.balance_with_balance_holds_responses.append( + exchange_query_pb.QueryBalanceWithBalanceHoldsResponse( + balance_with_balance_holds=[balance_with_balance_hold], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + balance = await api.fetch_balance_with_balance_holds() + expected_balance = { + "balanceWithBalanceHolds": [ + { + "subaccountId": balance_with_balance_hold.subaccountId, + "denom": balance_with_balance_hold.denom, + "available": balance_with_balance_hold.available, + "total": balance_with_balance_hold.total, + "balanceHold": balance_with_balance_hold.balance_hold, + } + ], + } + + assert balance == expected_balance + + @pytest.mark.asyncio + async def test_fetch_fee_discount_tier_statistics( + self, + exchange_servicer, + ): + tier_statistics = exchange_query_pb.TierStatistic( + tier=3, + count=30, + ) + exchange_servicer.fee_discount_tier_statistics_responses.append( + exchange_query_pb.QueryFeeDiscountTierStatisticsResponse( + statistics=[tier_statistics], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + statistics = await api.fetch_fee_discount_tier_statistics() + expected_statistics = { + "statistics": [ + { + "tier": str(tier_statistics.tier), + "count": str(tier_statistics.count), + } + ], + } + + assert statistics == expected_statistics + + @pytest.mark.asyncio + async def test_fetch_mito_vault_infos( + self, + exchange_servicer, + ): + master_address = "inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9" + derivative_address = "inj1zlh5" + spot_address = "inj1zlh6" + cw20_address = "inj1zlh7" + response = exchange_query_pb.MitoVaultInfosResponse( + master_addresses=[master_address], + derivative_addresses=[derivative_address], + spot_addresses=[spot_address], + cw20_addresses=[cw20_address], + ) + exchange_servicer.mito_vault_infos_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + mito_vaults = await api.fetch_mito_vault_infos() + expected_mito_vaults = { + "masterAddresses": [master_address], + "derivativeAddresses": [derivative_address], + "spotAddresses": [spot_address], + "cw20Addresses": [cw20_address], + } + + assert mito_vaults == expected_mito_vaults + + @pytest.mark.asyncio + async def test_fetch_market_id_from_vault( + self, + exchange_servicer, + ): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + exchange_servicer.market_id_from_vault_responses.append( + exchange_query_pb.QueryMarketIDFromVaultResponse( + market_id=market_id, + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + market_id_response = await api.fetch_market_id_from_vault( + vault_address="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9" + ) + expected_market_id = { + "marketId": market_id, + } + + assert market_id_response == expected_market_id + + @pytest.mark.asyncio + async def test_fetch_historical_trade_records( + self, + exchange_servicer, + ): + latest_trade_record = exchange_pb.TradeRecord( + timestamp=1708099200, + price="2000000000000000000", + quantity="1000000000000000", + ) + trade_record = exchange_pb.TradeRecords( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + latest_trade_records=[latest_trade_record], + ) + exchange_servicer.historical_trade_records_responses.append( + exchange_query_pb.QueryHistoricalTradeRecordsResponse( + trade_records=[trade_record], + ) + ) + + api = self._api_instance(servicer=exchange_servicer) + + records = await api.fetch_historical_trade_records(market_id=trade_record.market_id) + expected_records = { + "tradeRecords": [ + { + "marketId": trade_record.market_id, + "latestTradeRecords": [ + { + "timestamp": str(latest_trade_record.timestamp), + "price": latest_trade_record.price, + "quantity": latest_trade_record.quantity, + } + ], + }, + ], + } + + assert records == expected_records + + @pytest.mark.asyncio + async def test_fetch_is_opted_out_of_rewards( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryIsOptedOutOfRewardsResponse( + is_opted_out=False, + ) + exchange_servicer.is_opted_out_of_rewards_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + is_opted_out = await api.fetch_is_opted_out_of_rewards(account="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9") + expected_is_opted_out = { + "isOptedOut": response.is_opted_out, + } + + assert is_opted_out == expected_is_opted_out + + @pytest.mark.asyncio + async def test_fetch_opted_out_of_rewards_accounts( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryOptedOutOfRewardsAccountsResponse( + accounts=["inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9"], + ) + exchange_servicer.opted_out_of_rewards_accounts_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + opted_out = await api.fetch_opted_out_of_rewards_accounts() + expected_opted_out = { + "accounts": response.accounts, + } + + assert opted_out == expected_opted_out + + @pytest.mark.asyncio + async def test_fetch_market_volatility( + self, + exchange_servicer, + ): + history_metadata = oracle_pb.MetadataStatistics( + group_count=2, + records_sample_size=10, + mean="0.0001", + twap="0.0005", + first_timestamp=1702399200, + last_timestamp=1708099200, + min_price="1000000000000", + max_price="3000000000000", + median_price="2000000000000", + ) + trade_record = exchange_pb.TradeRecord( + timestamp=1708099200, + price="2000000000000000000", + quantity="1000000000000000", + ) + response = exchange_query_pb.QueryMarketVolatilityResponse( + volatility="0.0001", history_metadata=history_metadata, raw_history=[trade_record] + ) + exchange_servicer.market_volatility_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + volatility = await api.fetch_market_volatility( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + trade_grouping_sec=0, + max_age=28000000, + include_raw_history=True, + include_metadata=True, + ) + expected_volatility = { + "volatility": response.volatility, + "historyMetadata": { + "groupCount": history_metadata.group_count, + "recordsSampleSize": history_metadata.records_sample_size, + "mean": history_metadata.mean, + "twap": history_metadata.twap, + "firstTimestamp": str(history_metadata.first_timestamp), + "lastTimestamp": str(history_metadata.last_timestamp), + "minPrice": history_metadata.min_price, + "maxPrice": history_metadata.max_price, + "medianPrice": history_metadata.median_price, + }, + "rawHistory": [ + { + "timestamp": str(trade_record.timestamp), + "price": trade_record.price, + "quantity": trade_record.quantity, + } + ], + } + + assert volatility == expected_volatility + + @pytest.mark.asyncio + async def test_fetch_binary_options_markets( + self, + exchange_servicer, + ): + market = market_pb.BinaryOptionsMarket( + ticker="20250608/USDT", + oracle_symbol="0x2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3", + oracle_provider="Pyth", + oracle_type=9, + oracle_scale_factor=6, + expiration_timestamp=1708099200, + settlement_timestamp=1707099200, + admin="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + maker_fee_rate="-0.0001", + taker_fee_rate="0.001", + relayer_fee_share_rate="400000000000000000", + status=1, + min_price_tick_size="100000000000000000000", + min_quantity_tick_size="1000000000000000", + settlement_price="2000000000000000000", + min_notional="5000000000000000000", + admin_permissions=1, + quote_decimals=6, + ) + response = exchange_query_pb.QueryBinaryMarketsResponse( + markets=[market], + ) + exchange_servicer.binary_options_markets_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + markets = await api.fetch_binary_options_markets(status="Active") + expected_markets = { + "markets": [ + { + "ticker": market.ticker, + "oracleSymbol": market.oracle_symbol, + "oracleProvider": market.oracle_provider, + "oracleType": oracle_pb.OracleType.Name(market.oracle_type), + "oracleScaleFactor": market.oracle_scale_factor, + "expirationTimestamp": str(market.expiration_timestamp), + "settlementTimestamp": str(market.settlement_timestamp), + "admin": market.admin, + "quoteDenom": market.quote_denom, + "marketId": market.market_id, + "makerFeeRate": market.maker_fee_rate, + "takerFeeRate": market.taker_fee_rate, + "relayerFeeShareRate": market.relayer_fee_share_rate, + "status": market_pb.MarketStatus.Name(market.status), + "minPriceTickSize": market.min_price_tick_size, + "minQuantityTickSize": market.min_quantity_tick_size, + "settlementPrice": market.settlement_price, + "minNotional": market.min_notional, + "adminPermissions": market.admin_permissions, + "quoteDecimals": market.quote_decimals, + }, + ] + } + + assert markets == expected_markets + + @pytest.mark.asyncio + async def test_fetch_trader_derivative_conditional_orders( + self, + exchange_servicer, + ): + order = exchange_query_pb.TrimmedDerivativeConditionalOrder( + price="2000000000000000000", + quantity="1000000000000000", + margin="2000000000000000000000000000000000", + triggerPrice="3000000000000000000", + isBuy=True, + isLimit=True, + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + cid="order_cid", + ) + response = exchange_query_pb.QueryTraderDerivativeConditionalOrdersResponse(orders=[order]) + exchange_servicer.trader_derivative_conditional_orders_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + orders = await api.fetch_trader_derivative_conditional_orders( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_orders = { + "orders": [ + { + "price": order.price, + "quantity": order.quantity, + "margin": order.margin, + "triggerPrice": order.triggerPrice, + "isBuy": order.isBuy, + "isLimit": order.isLimit, + "orderHash": order.order_hash, + "cid": order.cid, + } + ] + } + + assert orders == expected_orders + + @pytest.mark.asyncio + async def test_fetch_market_atomic_execution_fee_multiplier( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryMarketAtomicExecutionFeeMultiplierResponse( + multiplier="100", + ) + exchange_servicer.market_atomic_execution_fee_multiplier_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + multiplier = await api.fetch_market_atomic_execution_fee_multiplier( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_multiplier = { + "multiplier": response.multiplier, + } + + assert multiplier == expected_multiplier + + @pytest.mark.asyncio + async def test_fetch_active_stake_grant( + self, + exchange_servicer, + ): + grant = exchange_pb.ActiveGrant( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + amount="1000000000000000", + ) + effective_grant = exchange_pb.EffectiveGrant( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + net_granted_stake="2000000000000000", + is_valid=True, + ) + response = exchange_query_pb.QueryActiveStakeGrantResponse( + grant=grant, + effective_grant=effective_grant, + ) + exchange_servicer.active_stake_grant_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + active_grant = await api.fetch_active_stake_grant( + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) + expected_grant = { + "grant": { + "granter": grant.granter, + "amount": grant.amount, + }, + "effectiveGrant": { + "granter": effective_grant.granter, + "netGrantedStake": effective_grant.net_granted_stake, + "isValid": effective_grant.is_valid, + }, + } + + assert active_grant == expected_grant + + @pytest.mark.asyncio + async def test_fetch_grant_authorization( + self, + exchange_servicer, + ): + response = exchange_query_pb.QueryGrantAuthorizationResponse( + amount="1000000000000000", + ) + exchange_servicer.grant_authorization_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + active_grant = await api.fetch_grant_authorization( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) + expected_grant = { + "amount": response.amount, + } + + assert active_grant == expected_grant + + @pytest.mark.asyncio + async def test_fetch_grant_authorizations( + self, + exchange_servicer, + ): + grant = exchange_pb.GrantAuthorization( + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + amount="1000000000000000", + ) + response = exchange_query_pb.QueryGrantAuthorizationsResponse( + total_grant_amount="1000000000000000", + grants=[grant], + ) + exchange_servicer.grant_authorizations_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + active_grant = await api.fetch_grant_authorizations( + granter="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", + ) + expected_grant = { + "totalGrantAmount": response.total_grant_amount, + "grants": [ + { + "grantee": grant.grantee, + "amount": grant.amount, + }, + ], + } + + assert active_grant == expected_grant + + @pytest.mark.asyncio + async def test_fetch_l3_derivative_orderbook( + self, + exchange_servicer, + ): + bid = exchange_query_pb.TrimmedLimitOrder( + price="2000000000000000000", + quantity="1000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + ask = exchange_query_pb.TrimmedLimitOrder( + price="5000000000000000000", + quantity="3000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abf7", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000002", + ) + response = exchange_query_pb.QueryFullDerivativeOrderbookResponse( + Bids=[bid], + Asks=[ask], + ) + exchange_servicer.l3_derivative_orderbook_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + orderbook = await api.fetch_l3_derivative_orderbook( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_orderbook = { + "Bids": [ + { + "price": bid.price, + "quantity": bid.quantity, + "orderHash": bid.order_hash, + "subaccountId": bid.subaccount_id, + } + ], + "Asks": [ + { + "price": ask.price, + "quantity": ask.quantity, + "orderHash": ask.order_hash, + "subaccountId": ask.subaccount_id, + } + ], + } + + assert orderbook == expected_orderbook + + @pytest.mark.asyncio + async def test_fetch_l3_spot_orderbook( + self, + exchange_servicer, + ): + bid = exchange_query_pb.TrimmedLimitOrder( + price="2000000000000000000", + quantity="1000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) + ask = exchange_query_pb.TrimmedLimitOrder( + price="5000000000000000000", + quantity="3000000000000000", + order_hash="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abf7", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000002", + ) + response = exchange_query_pb.QueryFullSpotOrderbookResponse( + Bids=[bid], + Asks=[ask], + ) + exchange_servicer.l3_spot_orderbook_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + orderbook = await api.fetch_l3_spot_orderbook( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + expected_orderbook = { + "Bids": [ + { + "price": bid.price, + "quantity": bid.quantity, + "orderHash": bid.order_hash, + "subaccountId": bid.subaccount_id, + } + ], + "Asks": [ + { + "price": ask.price, + "quantity": ask.quantity, + "orderHash": ask.order_hash, + "subaccountId": ask.subaccount_id, + } + ], + } + + assert orderbook == expected_orderbook + + def _api_instance(self, servicer): + network = Network.devnet() + channel = grpc.aio.insecure_channel(network.grpc_endpoint) + cookie_assistant = DisabledCookieAssistant() + + api = ChainGrpcExchangeV2Api(channel=channel, cookie_assistant=cookie_assistant) + api._stub = servicer + + return api diff --git a/tests/client/chain/stream_grpc/configurable_chain_stream_query_servicer.py b/tests/client/chain/stream_grpc/configurable_chain_stream_query_servicer.py index fe27f667..943b91c0 100644 --- a/tests/client/chain/stream_grpc/configurable_chain_stream_query_servicer.py +++ b/tests/client/chain/stream_grpc/configurable_chain_stream_query_servicer.py @@ -1,13 +1,28 @@ from collections import deque from pyinjective.proto.injective.stream.v1beta1 import query_pb2 as chain_stream_pb, query_pb2_grpc as chain_stream_grpc +from pyinjective.proto.injective.stream.v2 import ( + query_pb2 as chain_stream_v2_pb, + query_pb2_grpc as chain_stream_v2_grpc, +) class ConfigurableChainStreamQueryServicer(chain_stream_grpc.StreamServicer): def __init__(self): super().__init__() self.stream_responses = deque() + self.stream_v2_responses = deque() async def Stream(self, request: chain_stream_pb.StreamRequest, context=None, metadata=None): for event in self.stream_responses: yield event + + +class ConfigurableChainStreamV2QueryServicer(chain_stream_v2_grpc.StreamServicer): + def __init__(self): + super().__init__() + self.stream_responses = deque() + + async def StreamV2(self, request: chain_stream_v2_pb.StreamRequest, context=None, metadata=None): + for event in self.stream_responses: + yield event diff --git a/tests/client/chain/stream_grpc/test_chain_grpc_chain_stream.py b/tests/client/chain/stream_grpc/test_chain_grpc_chain_stream.py index 39513fdc..53f9cd66 100644 --- a/tests/client/chain/stream_grpc/test_chain_grpc_chain_stream.py +++ b/tests/client/chain/stream_grpc/test_chain_grpc_chain_stream.py @@ -9,8 +9,13 @@ from pyinjective.core.network import DisabledCookieAssistant, Network from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as coin_pb from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb +from pyinjective.proto.injective.exchange.v2 import exchange_pb2 as exchange_v2_pb, order_pb2 as order_v2_pb from pyinjective.proto.injective.stream.v1beta1 import query_pb2 as chain_stream_pb -from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer +from pyinjective.proto.injective.stream.v2 import query_pb2 as chain_stream_v2_pb +from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ( + ConfigurableChainStreamQueryServicer, + ConfigurableChainStreamV2QueryServicer, +) @pytest.fixture @@ -18,11 +23,17 @@ def chain_stream_servicer(): return ConfigurableChainStreamQueryServicer() +@pytest.fixture +def chain_stream_v2_servicer(): + return ConfigurableChainStreamV2QueryServicer() + + class TestChainGrpcChainStream: @pytest.mark.asyncio async def test_stream( self, chain_stream_servicer, + chain_stream_v2_servicer, ): block_height = 19114391 block_time = 1701457189786 @@ -54,7 +65,7 @@ async def test_stream( price="18215000", subaccount_id="0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001", fee="76503000000000000000", - order_hash=b"\xaa\xb0Ju\xa3)@\xfe\xd58N\xba\xdfG\xfd\xd8}\xe4\r\xf4\xf8a\xd9\n\xa9\xd6x+V\x9b\x02&", + order_hash="0xce0d9b701f77cd6ddfda5dd3a4fe7b2d53ba83e5d6c054fb2e9e886200b7b7bb", fee_recipient_address="inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx", cid="HBOTSIJUT60b77b9c56f0456af96c5c6c0d8", trade_id=f"{block_height}_0", @@ -100,9 +111,7 @@ async def test_stream( ) spot_order_update = chain_stream_pb.SpotOrderUpdate( status="Booked", - order_hash=( - b"\xf9\xc7\xd8v8\x84-\x9b\x99s\xf5\xdfX\xc9\xf9V\x9a\xf7\xf9\xc3\xa1\x00h\t\xc17<\xd1k\x9d\x12\xed" - ), + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", cid="cid2", order=spot_order, ) @@ -128,7 +137,7 @@ async def test_stream( ) derivative_order_update = chain_stream_pb.DerivativeOrderUpdate( status="Booked", - order_hash=b"\x03\xc9\xf8G*Q-G%\xf1\xbcF3\xe89g\xbe\xeag\xd8Y\x7f\x87\x8a\xa5\xac\x8ew\x8a\x91\xa2F", + order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", cid="cid3", order=derivative_order, ) @@ -194,7 +203,7 @@ async def test_stream( network = Network.devnet() composer = Composer(network=network.string()) - api = self._api_instance(servicer=chain_stream_servicer) + api = self._api_instance(servicer=chain_stream_servicer, servicer_v2=chain_stream_v2_servicer) events = asyncio.Queue() end_event = asyncio.Event() @@ -251,7 +260,7 @@ async def test_stream( "price": spot_trade.price, "subaccountId": spot_trade.subaccount_id, "fee": spot_trade.fee, - "orderHash": base64.b64encode(spot_trade.order_hash).decode(), + "orderHash": spot_trade.order_hash, "feeRecipientAddress": spot_trade.fee_recipient_address, "cid": spot_trade.cid, "tradeId": spot_trade.trade_id, @@ -280,7 +289,7 @@ async def test_stream( "spotOrders": [ { "status": "Booked", - "orderHash": base64.b64encode(spot_order_update.order_hash).decode(), + "orderHash": spot_order_update.order_hash, "cid": spot_order_update.cid, "order": { "marketId": spot_order.market_id, @@ -303,7 +312,7 @@ async def test_stream( "derivativeOrders": [ { "status": "Booked", - "orderHash": base64.b64encode(derivative_order_update.order_hash).decode(), + "orderHash": derivative_order_update.order_hash, "cid": derivative_order_update.cid, "order": { "marketId": derivative_order.market_id, @@ -405,12 +414,398 @@ async def test_stream( assert first_update == expected_update assert end_event.is_set() - def _api_instance(self, servicer): + @pytest.mark.asyncio + async def test_stream_v2( + self, + chain_stream_servicer, + chain_stream_v2_servicer, + ): + block_height = 19114391 + block_time = 1701457189786 + balance_coin = coin_pb.Coin( + denom="inj", + amount="6941221373191000000000", + ) + bank_balance = chain_stream_v2_pb.BankBalance( + account="inj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4", + balances=[balance_coin], + ) + deposit = exchange_v2_pb.Deposit( + available_balance="112292968420000000000000", + total_balance="73684013968420000000000000", + ) + subaccount_deposit = chain_stream_v2_pb.SubaccountDeposit( + denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + deposit=deposit, + ) + subaccount_deposits = chain_stream_v2_pb.SubaccountDeposits( + subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000007", + deposits=[subaccount_deposit], + ) + spot_trade = chain_stream_v2_pb.SpotTrade( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + is_buy=False, + executionType="LimitMatchNewOrder", + quantity="70", + price="18.215", + subaccount_id="0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001", + fee="7.6503", + order_hash="0xce0d9b701f77cd6ddfda5dd3a4fe7b2d53ba83e5d6c054fb2e9e886200b7b7bb", + fee_recipient_address="inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx", + cid="HBOTSIJUT60b77b9c56f0456af96c5c6c0d8", + trade_id=f"{block_height}_0", + ) + position_delta = exchange_v2_pb.PositionDelta( + is_long=True, + execution_quantity="5", + execution_price="13.9456", + execution_margin="69.728", + ) + derivative_trade = chain_stream_v2_pb.DerivativeTrade( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + is_buy=False, + executionType="LimitMatchNewOrder", + subaccount_id="0xc7dca7c15c364865f77a4fb67ab11dc95502e6fe000000000000000000000001", + position_delta=position_delta, + payout="0", + fee="7.6503", + order_hash="0xe549e4750287c93fcc8dec24f319c15025e07e89a8d0937be2b3865ed79d9da7", + fee_recipient_address="inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt", + cid="cid1", + trade_id=f"{block_height}_1", + ) + spot_order_info = order_v2_pb.OrderInfo( + subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", + fee_recipient="inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy", + price="18.775", + quantity="54.606542", + cid="cid2", + ) + spot_limit_order = order_v2_pb.SpotLimitOrder( + order_info=spot_order_info, + order_type=order_v2_pb.OrderType.SELL_PO, + fillable="54.606542", + trigger_price="", + order_hash=( + b"\xf9\xc7\xd8v8\x84-\x9b\x99s\xf5\xdfX\xc9\xf9V\x9a\xf7\xf9\xc3\xa1\x00h\t\xc17<\xd1k\x9d\x12\xed" + ), + ) + spot_order = chain_stream_v2_pb.SpotOrder( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + order=spot_limit_order, + ) + spot_order_update = chain_stream_v2_pb.SpotOrderUpdate( + status="Booked", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + cid="cid2", + order=spot_order, + ) + derivative_order_info = order_v2_pb.OrderInfo( + subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", + fee_recipient="inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy", + price="18.775", + quantity="54.606542", + cid="cid2", + ) + derivative_limit_order = order_v2_pb.DerivativeLimitOrder( + order_info=derivative_order_info, + order_type=order_v2_pb.OrderType.SELL_PO, + margin="546.06542", + fillable="54.606542", + trigger_price="", + order_hash=b"\x03\xc9\xf8G*Q-G%\xf1\xbcF3\xe89g\xbe\xeag\xd8Y\x7f\x87\x8a\xa5\xac\x8ew\x8a\x91\xa2F", + ) + derivative_order = chain_stream_v2_pb.DerivativeOrder( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + order=derivative_limit_order, + is_market=False, + ) + derivative_order_update = chain_stream_v2_pb.DerivativeOrderUpdate( + status="Booked", + order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", + cid="cid3", + order=derivative_order, + ) + spot_buy_level = exchange_v2_pb.Level(p="17.28", q="445577.34") + spot_sell_level = exchange_v2_pb.Level( + p="18.207", + q="221963.95", + ) + spot_orderbook = chain_stream_v2_pb.Orderbook( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + buy_levels=[spot_buy_level], + sell_levels=[spot_sell_level], + ) + spot_orderbook_update = chain_stream_v2_pb.OrderbookUpdate( + seq=6645013, + orderbook=spot_orderbook, + ) + derivative_buy_level = exchange_v2_pb.Level(p="17.28", q="445577.34") + derivative_sell_level = exchange_v2_pb.Level( + p="18.207", + q="221963.95", + ) + derivative_orderbook = chain_stream_v2_pb.Orderbook( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + buy_levels=[derivative_buy_level], + sell_levels=[derivative_sell_level], + ) + derivative_orderbook_update = chain_stream_v2_pb.OrderbookUpdate( + seq=6645013, + orderbook=derivative_orderbook, + ) + position = chain_stream_v2_pb.Position( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", + isLong=True, + quantity="221.96395", + entry_price="18.207", + margin="2219.6395", + cumulative_funding_entry="0", + ) + oracle_price = chain_stream_v2_pb.OraclePrice( + symbol="0x41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722", + price="99.991086", + type="pyth", + ) + + chain_stream_v2_servicer.stream_responses.append( + chain_stream_v2_pb.StreamResponse( + block_height=block_height, + block_time=block_time, + bank_balances=[bank_balance], + subaccount_deposits=[subaccount_deposits], + spot_trades=[spot_trade], + derivative_trades=[derivative_trade], + spot_orders=[spot_order_update], + derivative_orders=[derivative_order_update], + spot_orderbook_updates=[spot_orderbook_update], + derivative_orderbook_updates=[derivative_orderbook_update], + positions=[position], + oracle_prices=[oracle_price], + ) + ) + + network = Network.devnet() + composer = Composer(network=network.string()) + api = self._api_instance(servicer=chain_stream_servicer, servicer_v2=chain_stream_v2_servicer) + + events = asyncio.Queue() + end_event = asyncio.Event() + + callback = lambda update: events.put_nowait(update) + error_callback = lambda exception: pytest.fail(str(exception)) + end_callback = lambda: end_event.set() + + bank_balances_filter = composer.chain_stream_bank_balances_v2_filter() + subaccount_deposits_filter = composer.chain_stream_subaccount_deposits_v2_filter() + spot_trades_filter = composer.chain_stream_trades_v2_filter() + derivative_trades_filter = composer.chain_stream_trades_v2_filter() + spot_orders_filter = composer.chain_stream_orders_v2_filter() + derivative_orders_filter = composer.chain_stream_orders_v2_filter() + spot_orderbooks_filter = composer.chain_stream_orderbooks_v2_filter() + derivative_orderbooks_filter = composer.chain_stream_orderbooks_v2_filter() + positions_filter = composer.chain_stream_positions_v2_filter() + oracle_price_filter = composer.chain_stream_oracle_price_v2_filter() + + expected_update = { + "blockHeight": str(block_height), + "blockTime": str(block_time), + "bankBalances": [ + { + "account": bank_balance.account, + "balances": [ + { + "denom": balance_coin.denom, + "amount": balance_coin.amount, + } + ], + }, + ], + "subaccountDeposits": [ + { + "subaccountId": subaccount_deposits.subaccount_id, + "deposits": [ + { + "denom": subaccount_deposit.denom, + "deposit": { + "availableBalance": deposit.available_balance, + "totalBalance": deposit.total_balance, + }, + } + ], + } + ], + "spotTrades": [ + { + "marketId": spot_trade.market_id, + "isBuy": spot_trade.is_buy, + "executionType": spot_trade.executionType, + "quantity": spot_trade.quantity, + "price": spot_trade.price, + "subaccountId": spot_trade.subaccount_id, + "fee": spot_trade.fee, + "orderHash": spot_trade.order_hash, + "feeRecipientAddress": spot_trade.fee_recipient_address, + "cid": spot_trade.cid, + "tradeId": spot_trade.trade_id, + }, + ], + "derivativeTrades": [ + { + "marketId": derivative_trade.market_id, + "isBuy": derivative_trade.is_buy, + "executionType": derivative_trade.executionType, + "subaccountId": derivative_trade.subaccount_id, + "positionDelta": { + "isLong": position_delta.is_long, + "executionMargin": position_delta.execution_margin, + "executionQuantity": position_delta.execution_quantity, + "executionPrice": position_delta.execution_price, + }, + "payout": derivative_trade.payout, + "fee": derivative_trade.fee, + "orderHash": derivative_trade.order_hash, + "feeRecipientAddress": derivative_trade.fee_recipient_address, + "cid": derivative_trade.cid, + "tradeId": derivative_trade.trade_id, + } + ], + "spotOrders": [ + { + "status": "Booked", + "orderHash": spot_order_update.order_hash, + "cid": spot_order_update.cid, + "order": { + "marketId": spot_order.market_id, + "order": { + "orderInfo": { + "subaccountId": spot_order_info.subaccount_id, + "feeRecipient": spot_order_info.fee_recipient, + "price": spot_order_info.price, + "quantity": spot_order_info.quantity, + "cid": spot_order_info.cid, + }, + "orderType": "SELL_PO", + "fillable": spot_limit_order.fillable, + "triggerPrice": spot_limit_order.trigger_price, + "orderHash": base64.b64encode(spot_limit_order.order_hash).decode(), + }, + }, + }, + ], + "derivativeOrders": [ + { + "status": "Booked", + "orderHash": derivative_order_update.order_hash, + "cid": derivative_order_update.cid, + "order": { + "marketId": derivative_order.market_id, + "order": { + "orderInfo": { + "subaccountId": derivative_order_info.subaccount_id, + "feeRecipient": derivative_order_info.fee_recipient, + "price": derivative_order_info.price, + "quantity": derivative_order_info.quantity, + "cid": derivative_order_info.cid, + }, + "orderType": "SELL_PO", + "margin": derivative_limit_order.margin, + "fillable": derivative_limit_order.fillable, + "triggerPrice": derivative_limit_order.trigger_price, + "orderHash": base64.b64encode(derivative_limit_order.order_hash).decode(), + }, + "isMarket": derivative_order.is_market, + }, + }, + ], + "spotOrderbookUpdates": [ + { + "seq": str(spot_orderbook_update.seq), + "orderbook": { + "marketId": spot_orderbook.market_id, + "buyLevels": [ + { + "p": spot_buy_level.p, + "q": spot_buy_level.q, + }, + ], + "sellLevels": [ + {"p": spot_sell_level.p, "q": spot_sell_level.q}, + ], + }, + }, + ], + "derivativeOrderbookUpdates": [ + { + "seq": str(derivative_orderbook_update.seq), + "orderbook": { + "marketId": derivative_orderbook.market_id, + "buyLevels": [ + { + "p": derivative_buy_level.p, + "q": derivative_buy_level.q, + }, + ], + "sellLevels": [ + { + "p": derivative_sell_level.p, + "q": derivative_sell_level.q, + }, + ], + }, + }, + ], + "positions": [ + { + "marketId": position.market_id, + "subaccountId": position.subaccount_id, + "isLong": position.isLong, + "quantity": position.quantity, + "entryPrice": position.entry_price, + "margin": position.margin, + "cumulativeFundingEntry": position.cumulative_funding_entry, + } + ], + "oraclePrices": [ + { + "symbol": oracle_price.symbol, + "price": oracle_price.price, + "type": oracle_price.type, + }, + ], + } + + asyncio.get_event_loop().create_task( + api.stream_v2( + callback=callback, + on_end_callback=end_callback, + on_status_callback=error_callback, + bank_balances_filter=bank_balances_filter, + subaccount_deposits_filter=subaccount_deposits_filter, + spot_trades_filter=spot_trades_filter, + derivative_trades_filter=derivative_trades_filter, + spot_orders_filter=spot_orders_filter, + derivative_orders_filter=derivative_orders_filter, + spot_orderbooks_filter=spot_orderbooks_filter, + derivative_orderbooks_filter=derivative_orderbooks_filter, + positions_filter=positions_filter, + oracle_price_filter=oracle_price_filter, + ) + ) + + first_update = await asyncio.wait_for(events.get(), timeout=1) + + assert first_update == expected_update + assert end_event.is_set() + + def _api_instance(self, servicer, servicer_v2): network = Network.devnet() channel = grpc.aio.insecure_channel(network.grpc_endpoint) cookie_assistant = DisabledCookieAssistant() api = ChainGrpcChainStream(channel=channel, cookie_assistant=cookie_assistant) api._stub = servicer + api._stub_v2 = servicer_v2 return api diff --git a/tests/core/test_gas_limit_estimator.py b/tests/core/test_gas_limit_estimator.py index fa336e64..dbef0073 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -21,15 +21,66 @@ from pyinjective.proto.cosmos.gov.v1beta1 import tx_pb2 as gov_tx_pb from pyinjective.proto.cosmwasm.wasm.v1 import tx_pb2 as wasm_tx_pb from pyinjective.proto.injective.exchange.v1beta1 import tx_pb2 as injective_exchange_tx_pb -from tests.model_fixtures.markets_fixtures import btc_usdt_perp_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import first_match_bet_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_usdt_spot_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_perp_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_token # noqa: F401 +from tests.model_fixtures.markets_fixtures import ( # noqa: F401 + btc_usdt_perp_market, + first_match_bet_market, + inj_token, + inj_usdt_spot_market, + usdt_perp_token, + usdt_token, +) class TestGasLimitEstimator: + def test_estimation_for_message_without_applying_rule(self): + composer = Composer(network="testnet") + message = composer.msg_send(from_address="from_address", to_address="to_address", amount=1, denom="inj") + + estimator = GasLimitEstimator.for_message(message=message) + + expected_message_gas_limit = 150_000 + + assert expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_privileged_execute_contract_message(self): + message = injective_exchange_tx_pb.MsgPrivilegedExecuteContract() + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 900_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_execute_contract_message(self): + composer = Composer(network="testnet") + message = composer.MsgExecuteContract( + sender="", + contract="", + msg="", + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 375_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_wasm_message(self): + message = wasm_tx_pb.MsgInstantiateContract2() + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 225_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_governance_message(self): + message = gov_tx_pb.MsgDeposit() + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 2_250_000 + + assert expected_gas_limit == estimator.gas_limit() + + +class TestGasLimitEstimatorForV1ExchangeMessages: @pytest.fixture def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): composer = Composer( @@ -46,15 +97,6 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return composer - def test_estimation_for_message_without_applying_rule(self, basic_composer): - message = basic_composer.MsgSend(from_address="from_address", to_address="to_address", amount=1, denom="INJ") - - estimator = GasLimitEstimator.for_message(message=message) - - expected_message_gas_limit = 150_000 - - assert expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ @@ -83,27 +125,26 @@ def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_cancel_spot_orders(self): - spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_cancel_spot_orders(self, basic_composer): + spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_cancel_spot_orders(sender="sender", orders_data=orders) + message = basic_composer.msg_batch_cancel_spot_orders(sender="sender", orders_data=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT @@ -141,27 +182,26 @@ def test_estimation_for_batch_create_derivative_limit_orders(self, basic_compose assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_cancel_derivative_orders(self): - spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_cancel_derivative_orders(self, basic_composer): + spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_cancel_derivative_orders(sender="sender", orders_data=orders) + message = basic_composer.msg_batch_cancel_derivative_orders(sender="sender", orders_data=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT @@ -239,9 +279,8 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_token): - market_id = "0x230dcce315364ff6360097838701b14713e2f4007d704df20ed3d81d09eec957" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_create_binary_orders(self, basic_composer, usdt_token): + market_id = list(basic_composer.binary_option_markets.keys())[0] market = BinaryOptionMarket( id=market_id, status="active", @@ -260,9 +299,9 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t min_quantity_tick_size=Decimal("1"), min_notional=Decimal(0), ) - composer.binary_option_markets[market.id] = market + basic_composer.binary_option_markets[market.id] = market orders = [ - composer.binary_options_order( + basic_composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -271,7 +310,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t margin=Decimal(3), order_type="BUY", ), - composer.binary_options_order( + basic_composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -281,7 +320,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t order_type="SELL", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -296,27 +335,26 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): - market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -330,27 +368,26 @@ def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): - market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -364,27 +401,26 @@ def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): - market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self, basic_composer): + market_id = list(basic_composer.binary_option_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -491,48 +527,471 @@ def test_estimation_for_exec_message(self, basic_composer): == estimator.gas_limit() ) - def test_estimation_for_privileged_execute_contract_message(self): - message = injective_exchange_tx_pb.MsgPrivilegedExecuteContract() + def test_estimation_for_generic_exchange_message(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] + message = basic_composer.msg_create_spot_limit_order( + sender="sender", + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY", + ) estimator = GasLimitEstimator.for_message(message=message) - expected_gas_limit = 900_000 + expected_gas_limit = 120_000 assert expected_gas_limit == estimator.gas_limit() - def test_estimation_for_execute_contract_message(self): + +class TestGasLimitEstimatorForV2ExchangeMessages: + def test_estimation_for_batch_create_spot_limit_orders(self): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") - message = composer.MsgExecuteContract( - sender="", - contract="", - msg="", + orders = [ + composer.create_spot_order_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + composer.create_spot_order_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("4"), + quantity=Decimal("1"), + order_type="BUY", + ), + ] + message = composer.msg_batch_create_spot_limit_orders_v2(sender="sender", orders=orders) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT + expected_message_gas_limit = BatchCreateSpotLimitOrdersGasLimitEstimator.GENERAL_MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_cancel_spot_orders(self): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.create_order_data_without_mask_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_order_data_without_mask_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_order_data_without_mask_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_cancel_spot_orders_v2(sender="sender", orders_data=orders) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT + expected_message_gas_limit = BatchCancelSpotOrdersGasLimitEstimator.GENERAL_MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_create_derivative_limit_orders(self): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + composer = Composer(network="testnet") + orders = [ + composer.create_derivative_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(3), + quantity=Decimal(1), + margin=Decimal(3), + order_type="BUY", + ), + composer.create_derivative_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(20), + quantity=Decimal(1), + margin=Decimal(20), + order_type="SELL", + ), + ] + message = composer.msg_batch_create_derivative_limit_orders_v2(sender="sender", orders=orders) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + expected_message_gas_limit = BatchCreateDerivativeLimitOrdersGasLimitEstimator.GENERAL_MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_cancel_derivative_orders(self): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.create_order_data_without_mask_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_order_data_without_mask_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_order_data_without_mask_v2( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_cancel_derivative_orders_v2(sender="sender", orders_data=orders) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + expected_message_gas_limit = BatchCancelDerivativeOrdersGasLimitEstimator.GENERAL_MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_create_spot_orders(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.create_spot_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + composer.create_spot_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("4"), + quantity=Decimal("1"), + order_type="BUY", + ), + ] + message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=orders, + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], ) estimator = GasLimitEstimator.for_message(message=message) - expected_gas_limit = 375_000 + expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT - assert expected_gas_limit == estimator.gas_limit() + assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_wasm_message(self): - message = wasm_tx_pb.MsgInstantiateContract2() + def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + composer = Composer(network="testnet") + orders = [ + composer.create_derivative_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(3), + quantity=Decimal(1), + margin=Decimal(3), + order_type="BUY", + ), + composer.create_derivative_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(20), + quantity=Decimal(1), + margin=Decimal(20), + order_type="SELL", + ), + ] + message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=orders, + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) estimator = GasLimitEstimator.for_message(message=message) - expected_gas_limit = 225_000 + expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT - assert expected_gas_limit == estimator.gas_limit() + assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_governance_message(self): - message = gov_tx_pb.MsgDeposit() + def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_token): + market_id = "0x230dcce315364ff6360097838701b14713e2f4007d704df20ed3d81d09eec957" + composer = Composer(network="testnet") + market = BinaryOptionMarket( + id=market_id, + status="active", + ticker="5fdbe0b1-1707800399-WAS", + oracle_symbol="Frontrunner", + oracle_provider="Frontrunner", + oracle_type="provider", + oracle_scale_factor=6, + expiration_timestamp=1707800399, + settlement_timestamp=1707843599, + quote_token=usdt_token, + maker_fee_rate=Decimal("0"), + taker_fee_rate=Decimal("0"), + service_provider_fee=Decimal("0.4"), + min_price_tick_size=Decimal("10000"), + min_quantity_tick_size=Decimal("1"), + min_notional=Decimal(0), + ) + composer.binary_option_markets[market.id] = market + orders = [ + composer.create_binary_options_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(3), + quantity=Decimal(1), + margin=Decimal(3), + order_type="BUY", + ), + composer.create_binary_options_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(20), + quantity=Decimal(1), + margin=Decimal(20), + order_type="SELL", + ), + ] + message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=[], + binary_options_orders_to_create=orders, + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) estimator = GasLimitEstimator.for_message(message=message) - expected_gas_limit = 2_250_000 + expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT - assert expected_gas_limit == estimator.gas_limit() + assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_generic_exchange_message(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] - message = basic_composer.msg_create_spot_limit_order( + def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=orders, + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + composer = Composer(network="testnet") + orders = [ + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=orders, + spot_orders_to_cancel=[], + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + composer = Composer(network="testnet") + orders = [ + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_order_data_without_mask_v2( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + binary_options_orders_to_cancel=orders, + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + + assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_all_for_spot_market(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + + message = composer.msg_batch_update_orders_v2( + sender="senders", + subaccount_id="subaccount_id", + spot_market_ids_to_cancel_all=[market_id], + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = BatchUpdateOrdersGasLimitEstimator.CANCEL_ALL_SPOT_MARKET_GAS_LIMIT * 20 + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + + assert expected_gas_limit + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + + message = composer.msg_batch_update_orders_v2( + sender="senders", + subaccount_id="subaccount_id", + derivative_market_ids_to_cancel_all=[market_id], + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = BatchUpdateOrdersGasLimitEstimator.CANCEL_ALL_DERIVATIVE_MARKET_GAS_LIMIT * 20 + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + + assert expected_gas_limit + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_market(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + + message = composer.msg_batch_update_orders_v2( + sender="senders", + subaccount_id="subaccount_id", + binary_options_market_ids_to_cancel_all=[market_id], + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = BatchUpdateOrdersGasLimitEstimator.CANCEL_ALL_DERIVATIVE_MARKET_GAS_LIMIT * 20 + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + + assert expected_gas_limit + expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_exec_message(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.create_spot_order_v2( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + ] + inner_message = composer.msg_batch_update_orders_v2( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=orders, + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + message = composer.MsgExec(grantee="grantee", msgs=[inner_message]) + + estimator = GasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT + expected_inner_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT + expected_exec_message_gas_limit = ExecGasLimitEstimator.DEFAULT_GAS_LIMIT + + assert ( + expected_order_gas_limit + expected_inner_message_gas_limit + expected_exec_message_gas_limit + == estimator.gas_limit() + ) + + def test_estimation_for_generic_exchange_message(self): + composer = Composer(network="testnet") + message = composer.msg_create_spot_limit_order_v2( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), diff --git a/tests/core/test_market.py b/tests/core/test_market.py index 514e6256..1f631ff3 100644 --- a/tests/core/test_market.py +++ b/tests/core/test_market.py @@ -3,12 +3,14 @@ from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.utils.denom import Denom -from tests.model_fixtures.markets_fixtures import btc_usdt_perp_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import first_match_bet_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_usdt_spot_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_perp_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_token # noqa: F401; noqa: F401 +from tests.model_fixtures.markets_fixtures import ( # noqa: F401 + btc_usdt_perp_market, + first_match_bet_market, + inj_token, + inj_usdt_spot_market, + usdt_perp_token, + usdt_token, +) class TestSpotMarket: @@ -16,11 +18,11 @@ def test_convert_quantity_to_chain_format(self, inj_usdt_spot_market: SpotMarket original_quantity = Decimal("123.456789") chain_value = inj_usdt_spot_market.quantity_to_chain_format(human_readable_value=original_quantity) - expected_value = original_quantity * Decimal(f"1e{inj_usdt_spot_market.base_token.decimals}") - quantized_value = ( - expected_value // inj_usdt_spot_market.min_quantity_tick_size + quantized_quantity = ( + original_quantity // inj_usdt_spot_market.min_quantity_tick_size ) * inj_usdt_spot_market.min_quantity_tick_size - quantized_chain_format_value = quantized_value * Decimal("1e18") + expected_value = quantized_quantity * Decimal(f"1e{inj_usdt_spot_market.base_token.decimals}") + quantized_chain_format_value = expected_value * Decimal("1e18") assert quantized_chain_format_value == chain_value @@ -29,11 +31,11 @@ def test_convert_price_to_chain_format(self, inj_usdt_spot_market: SpotMarket): chain_value = inj_usdt_spot_market.price_to_chain_format(human_readable_value=original_quantity) price_decimals = inj_usdt_spot_market.quote_token.decimals - inj_usdt_spot_market.base_token.decimals - expected_value = original_quantity * Decimal(f"1e{price_decimals}") quantized_value = ( - expected_value // inj_usdt_spot_market.min_price_tick_size + original_quantity // inj_usdt_spot_market.min_price_tick_size ) * inj_usdt_spot_market.min_price_tick_size - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_value = quantized_value * Decimal(f"1e{price_decimals}") + quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -129,11 +131,11 @@ def test_convert_price_to_chain_format(self, btc_usdt_perp_market: DerivativeMar chain_value = btc_usdt_perp_market.price_to_chain_format(human_readable_value=original_quantity) price_decimals = btc_usdt_perp_market.quote_token.decimals - expected_value = original_quantity * Decimal(f"1e{price_decimals}") quantized_value = ( - expected_value // btc_usdt_perp_market.min_price_tick_size + original_quantity // btc_usdt_perp_market.min_price_tick_size ) * btc_usdt_perp_market.min_price_tick_size - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_value = quantized_value * Decimal(f"1e{price_decimals}") + quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -248,19 +250,19 @@ def test_convert_quantity_to_chain_format_with_fixed_denom(self, first_match_bet description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_value = first_match_bet_market.quantity_to_chain_format( human_readable_value=original_quantity, special_denom=fixed_denom ) - chain_formatted_quantity = original_quantity * Decimal(f"1e{fixed_denom.base}") - quantized_value = (chain_formatted_quantity // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( + quantized_value = (original_quantity // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( str(fixed_denom.min_quantity_tick_size) ) - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + chain_formatted_quantity = quantized_value * Decimal(f"1e{fixed_denom.base}") + quantized_chain_format_value = chain_formatted_quantity * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -283,9 +285,9 @@ def test_convert_price_to_chain_format_with_fixed_denom(self, first_match_bet_ma description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_value = first_match_bet_market.price_to_chain_format( @@ -293,11 +295,11 @@ def test_convert_price_to_chain_format_with_fixed_denom(self, first_match_bet_ma special_denom=fixed_denom, ) price_decimals = fixed_denom.quote - expected_value = original_quantity * Decimal(f"1e{price_decimals}") - quantized_value = (expected_value // Decimal(str(fixed_denom.min_price_tick_size))) * Decimal( + quantized_value = (original_quantity // Decimal(str(fixed_denom.min_price_tick_size))) * Decimal( str(fixed_denom.min_price_tick_size) ) - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_value = quantized_value * Decimal(f"1e{price_decimals}") + quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -306,11 +308,11 @@ def test_convert_price_to_chain_format_without_fixed_denom(self, first_match_bet chain_value = first_match_bet_market.price_to_chain_format(human_readable_value=original_quantity) price_decimals = first_match_bet_market.quote_token.decimals - expected_value = original_quantity * Decimal(f"1e{price_decimals}") quantized_value = ( - expected_value // first_match_bet_market.min_price_tick_size + original_quantity // first_match_bet_market.min_price_tick_size ) * first_match_bet_market.min_price_tick_size - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_value = quantized_value * Decimal(f"1e{price_decimals}") + quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -320,9 +322,9 @@ def test_convert_margin_to_chain_format_with_fixed_denom(self, first_match_bet_m description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_value = first_match_bet_market.margin_to_chain_format( @@ -330,11 +332,11 @@ def test_convert_margin_to_chain_format_with_fixed_denom(self, first_match_bet_m special_denom=fixed_denom, ) price_decimals = fixed_denom.quote - expected_value = original_quantity * Decimal(f"1e{price_decimals}") - quantized_value = (expected_value // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( + quantized_value = (original_quantity // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( str(fixed_denom.min_quantity_tick_size) ) - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_value = quantized_value * Decimal(f"1e{price_decimals}") + quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -343,11 +345,11 @@ def test_convert_margin_to_chain_format_without_fixed_denom(self, first_match_be chain_value = first_match_bet_market.margin_to_chain_format(human_readable_value=original_quantity) price_decimals = first_match_bet_market.quote_token.decimals - expected_value = original_quantity * Decimal(f"1e{price_decimals}") quantized_value = ( - expected_value // first_match_bet_market.min_quantity_tick_size + original_quantity // first_match_bet_market.min_quantity_tick_size ) * first_match_bet_market.min_quantity_tick_size - quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_value = quantized_value * Decimal(f"1e{price_decimals}") + quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -358,9 +360,9 @@ def test_calculate_margin_for_buy_with_fixed_denom(self, first_match_bet_market: description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_value = first_match_bet_market.calculate_margin_in_chain_format( @@ -370,15 +372,12 @@ def test_calculate_margin_for_buy_with_fixed_denom(self, first_match_bet_market: special_denom=fixed_denom, ) - quantity_decimals = fixed_denom.base - price_decimals = fixed_denom.quote - expected_quantity = original_quantity * Decimal(f"1e{quantity_decimals}") - expected_price = original_price * Decimal(f"1e{price_decimals}") - expected_margin = expected_quantity * expected_price - quantized_margin = (expected_margin // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( + margin = original_quantity * original_price + quantized_margin = (margin // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( str(fixed_denom.min_quantity_tick_size) ) - quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_margin = quantized_margin * Decimal(f"1e{fixed_denom.quote}") + quantized_chain_format_margin = expected_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_margin == chain_value @@ -393,12 +392,12 @@ def test_calculate_margin_for_buy_without_fixed_denom(self, first_match_bet_mark ) price_decimals = first_match_bet_market.quote_token.decimals - expected_price = original_price * Decimal(f"1e{price_decimals}") - expected_margin = original_quantity * expected_price - quantized_margin = (expected_margin // Decimal(str(first_match_bet_market.min_quantity_tick_size))) * Decimal( + margin = original_quantity * original_price + quantized_margin = (margin // Decimal(str(first_match_bet_market.min_quantity_tick_size))) * Decimal( str(first_match_bet_market.min_quantity_tick_size) ) - quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_margin = quantized_margin * Decimal(f"1e{price_decimals}") + quantized_chain_format_margin = expected_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_margin == chain_value @@ -413,12 +412,13 @@ def test_calculate_margin_for_sell_without_fixed_denom(self, first_match_bet_mar ) price_decimals = first_match_bet_market.quote_token.decimals - expected_price = (Decimal(1) - original_price) * Decimal(f"1e{price_decimals}") - expected_margin = original_quantity * expected_price - quantized_margin = (expected_margin // Decimal(str(first_match_bet_market.min_quantity_tick_size))) * Decimal( + price = Decimal(1) - original_price + margin = original_quantity * price + quantized_margin = (margin // Decimal(str(first_match_bet_market.min_quantity_tick_size))) * Decimal( str(first_match_bet_market.min_quantity_tick_size) ) - quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_margin = quantized_margin * Decimal(f"1e{price_decimals}") + quantized_chain_format_margin = expected_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_margin == chain_value @@ -438,9 +438,9 @@ def test_convert_quantity_from_chain_format_with_fixed_denom(self, first_match_b description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_formatted_quantity = original_quantity * Decimal(f"1e{fixed_denom.base}") @@ -468,9 +468,9 @@ def test_convert_price_from_chain_format_with_fixed_denom(self, first_match_bet_ description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_formatted_price = original_price * Decimal(f"1e{fixed_denom.quote}") @@ -506,9 +506,9 @@ def test_convert_quantity_from_extended_chain_format_with_fixed_denom( description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_formatted_quantity = ( @@ -542,9 +542,9 @@ def test_convert_price_from_extended_chain_format_with_fixed_denom( description="Fixed denom", base=2, quote=4, - min_quantity_tick_size=100, - min_price_tick_size=10000, - min_notional=0, + min_quantity_tick_size=1, + min_price_tick_size=1, + min_notional=1, ) chain_formatted_price = ( diff --git a/tests/core/test_message_based_transaction_fee_calculator.py b/tests/core/test_message_based_transaction_fee_calculator.py index 303aa1c9..d46d6bee 100644 --- a/tests/core/test_message_based_transaction_fee_calculator.py +++ b/tests/core/test_message_based_transaction_fee_calculator.py @@ -17,31 +17,9 @@ from pyinjective.proto.cosmos.gov.v1beta1 import tx_pb2 as gov_tx_pb2 from pyinjective.proto.cosmwasm.wasm.v1 import tx_pb2 as wasm_tx_pb2 from pyinjective.proto.injective.exchange.v1beta1 import tx_pb2 -from tests.model_fixtures.markets_fixtures import btc_usdt_perp_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import first_match_bet_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_usdt_spot_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_perp_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_token # noqa: F401 class TestMessageBasedTransactionFeeCalculator: - @pytest.fixture - def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( - network=Network.devnet().string(), - spot_markets={inj_usdt_spot_market.id: inj_usdt_spot_market}, - derivative_markets={btc_usdt_perp_market.id: btc_usdt_perp_market}, - binary_option_markets={first_match_bet_market.id: first_match_bet_market}, - tokens={ - inj_usdt_spot_market.base_token.symbol: inj_usdt_spot_market.base_token, - inj_usdt_spot_market.quote_token.symbol: inj_usdt_spot_market.quote_token, - btc_usdt_perp_market.quote_token.symbol: btc_usdt_perp_market.quote_token, - }, - ) - - return composer - @pytest.mark.asyncio async def test_gas_fee_for_privileged_execute_contract_message(self): network = Network.testnet(node="sentry") @@ -137,20 +115,19 @@ async def test_gas_fee_for_governance_message(self): assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @pytest.mark.asyncio - async def test_gas_fee_for_exchange_message(self, basic_composer): + async def test_gas_fee_for_exchange_message(self): network = Network.testnet(node="sentry") client = AsyncClient(network=network) + composer = Composer(network=network.string()) calculator = MessageBasedTransactionFeeCalculator( client=client, - composer=basic_composer, + composer=composer, gas_price=5_000_000, ) - market_id = list(basic_composer.spot_markets.keys())[0] - - message = basic_composer.msg_create_spot_limit_order( + message = composer.msg_create_spot_limit_order_v2( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), @@ -168,27 +145,26 @@ async def test_gas_fee_for_exchange_message(self, basic_composer): assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @pytest.mark.asyncio - async def test_gas_fee_for_msg_exec_message(self, basic_composer): + async def test_gas_fee_for_msg_exec_message(self): network = Network.testnet(node="sentry") client = AsyncClient(network=network) + composer = Composer(network=network.string()) calculator = MessageBasedTransactionFeeCalculator( client=client, - composer=basic_composer, + composer=composer, gas_price=5_000_000, ) - market_id = list(basic_composer.spot_markets.keys())[0] - - inner_message = basic_composer.msg_create_spot_limit_order( + inner_message = composer.msg_create_spot_limit_order_v2( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), quantity=Decimal("0.01"), order_type="BUY", ) - message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = composer.MsgExec(grantee="grantee", msgs=[inner_message]) transaction = Transaction() transaction.with_messages(message) @@ -204,29 +180,28 @@ async def test_gas_fee_for_msg_exec_message(self, basic_composer): assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @pytest.mark.asyncio - async def test_gas_fee_for_two_messages_in_one_transaction(self, basic_composer): + async def test_gas_fee_for_two_messages_in_one_transaction(self): network = Network.testnet(node="sentry") client = AsyncClient(network=network) + composer = Composer(network=network.string()) calculator = MessageBasedTransactionFeeCalculator( client=client, - composer=basic_composer, + composer=composer, gas_price=5_000_000, ) - market_id = list(basic_composer.spot_markets.keys())[0] - - inner_message = basic_composer.msg_create_spot_limit_order( + inner_message = composer.msg_create_spot_limit_order_v2( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), quantity=Decimal("0.01"), order_type="BUY", ) - message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = composer.MsgExec(grantee="grantee", msgs=[inner_message]) - send_message = basic_composer.MsgSend(from_address="address", to_address="to_address", amount=1, denom="INJ") + send_message = composer.msg_send(from_address="address", to_address="to_address", amount=1, denom="INJ") transaction = Transaction() transaction.with_messages(message, send_message) diff --git a/tests/core/test_network_deprecation_warnings.py b/tests/core/test_network_deprecation_warnings.py deleted file mode 100644 index 1764576c..00000000 --- a/tests/core/test_network_deprecation_warnings.py +++ /dev/null @@ -1,56 +0,0 @@ -from warnings import catch_warnings - -from pyinjective.core.network import DisabledCookieAssistant, Network - - -class TestNetworkDeprecationWarnings: - def test_use_secure_connection_parameter_deprecation_warning(self): - with catch_warnings(record=True) as all_warnings: - Network( - lcd_endpoint="lcd_endpoint", - tm_websocket_endpoint="tm_websocket_endpoint", - grpc_endpoint="grpc_endpoint", - grpc_exchange_endpoint="grpc_exchange_endpoint", - grpc_explorer_endpoint="grpc_explorer_endpoint", - chain_stream_endpoint="chain_stream_endpoint", - chain_id="chain_id", - fee_denom="fee_denom", - env="env", - official_tokens_list_url="https://tokens.url", - chain_cookie_assistant=DisabledCookieAssistant(), - exchange_cookie_assistant=DisabledCookieAssistant(), - explorer_cookie_assistant=DisabledCookieAssistant(), - use_secure_connection=True, - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "use_secure_connection parameter in Network is no longer used and will be deprecated" - ) - - def test_use_secure_connection_parameter_in_custom_network_deprecation_warning(self): - with catch_warnings(record=True) as all_warnings: - Network.custom( - lcd_endpoint="lcd_endpoint", - tm_websocket_endpoint="tm_websocket_endpoint", - grpc_endpoint="grpc_endpoint", - grpc_exchange_endpoint="grpc_exchange_endpoint", - grpc_explorer_endpoint="grpc_explorer_endpoint", - chain_stream_endpoint="chain_stream_endpoint", - chain_id="chain_id", - env="env", - official_tokens_list_url="https://tokens.url", - chain_cookie_assistant=DisabledCookieAssistant(), - exchange_cookie_assistant=DisabledCookieAssistant(), - explorer_cookie_assistant=DisabledCookieAssistant(), - use_secure_connection=True, - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "use_secure_connection parameter in Network is no longer used and will be deprecated" - ) diff --git a/tests/model_fixtures/markets_fixtures.py b/tests/model_fixtures/markets_fixtures.py index bdfa1d2a..a00eb8d6 100644 --- a/tests/model_fixtures/markets_fixtures.py +++ b/tests/model_fixtures/markets_fixtures.py @@ -62,9 +62,9 @@ def inj_usdt_spot_market(inj_token, usdt_token): maker_fee_rate=Decimal("-0.0001"), taker_fee_rate=Decimal("0.001"), service_provider_fee=Decimal("0.4"), - min_price_tick_size=Decimal("0.000000000000001"), - min_quantity_tick_size=Decimal("1000000000000000"), - min_notional=Decimal("0.000000000001"), + min_price_tick_size=Decimal("0.01"), + min_quantity_tick_size=Decimal("0.001"), + min_notional=Decimal("1"), ) return market @@ -86,9 +86,9 @@ def btc_usdt_perp_market(usdt_perp_token): maker_fee_rate=Decimal("-0.0001"), taker_fee_rate=Decimal("0.001"), service_provider_fee=Decimal("0.4"), - min_price_tick_size=Decimal("1000000"), + min_price_tick_size=Decimal("0.01"), min_quantity_tick_size=Decimal("0.0001"), - min_notional=Decimal("0.000001"), + min_notional=Decimal("1"), ) return market @@ -110,7 +110,7 @@ def first_match_bet_market(usdt_token): maker_fee_rate=Decimal("0"), taker_fee_rate=Decimal("0"), service_provider_fee=Decimal("0.4"), - min_price_tick_size=Decimal("10000"), + min_price_tick_size=Decimal("0.01"), min_quantity_tick_size=Decimal("1"), min_notional=Decimal("0.000001"), ) diff --git a/tests/rpc_fixtures/markets_fixtures.py b/tests/rpc_fixtures/markets_fixtures.py index 9aecaf56..b4e35dfd 100644 --- a/tests/rpc_fixtures/markets_fixtures.py +++ b/tests/rpc_fixtures/markets_fixtures.py @@ -109,9 +109,9 @@ def usdt_perp_token_meta(): @pytest.fixture def ape_usdt_spot_market_meta(): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = exchange_pb.SpotMarket( + market = market_pb.SpotMarket( ticker="APE/USDT", base_denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", quote_denom="factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt", @@ -125,6 +125,8 @@ def ape_usdt_spot_market_meta(): min_notional="5", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) return market @@ -132,9 +134,9 @@ def ape_usdt_spot_market_meta(): @pytest.fixture def inj_usdt_spot_market_meta(inj_token_meta, usdt_token_meta): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = exchange_pb.SpotMarket( + market = market_pb.SpotMarket( ticker="INJ/USDT", base_denom="inj", quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", @@ -148,6 +150,8 @@ def inj_usdt_spot_market_meta(inj_token_meta, usdt_token_meta): min_notional="5", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) return market @@ -155,9 +159,13 @@ def inj_usdt_spot_market_meta(inj_token_meta, usdt_token_meta): @pytest.fixture def btc_usdt_perp_market_meta(usdt_perp_token_meta): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb, query_pb2 as exchange_query_pb + from pyinjective.proto.injective.exchange.v2 import ( + exchange_pb2 as exchange_pb, + market_pb2 as market_pb, + query_pb2 as exchange_query_pb, + ) - market = exchange_pb.DerivativeMarket( + market = market_pb.DerivativeMarket( ticker="BTC/USDT PERP", oracle_base="BTC", oracle_quote="USDT", @@ -177,15 +185,16 @@ def btc_usdt_perp_market_meta(usdt_perp_token_meta): min_notional="5", admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", admin_permissions=1, + quote_decimals=6, ) - market_info = exchange_pb.PerpetualMarketInfo( + market_info = market_pb.PerpetualMarketInfo( market_id="0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce", hourly_funding_rate_cap="625000000000000", hourly_interest_rate="4166660000000", next_funding_timestamp=1708099200, funding_interval=3600, ) - funding_info = exchange_pb.PerpetualMarketFunding( + funding_info = market_pb.PerpetualMarketFunding( cumulative_funding="-107853477278881692857461", cumulative_price="0", last_timestamp=1708099200, @@ -211,9 +220,9 @@ def btc_usdt_perp_market_meta(usdt_perp_token_meta): @pytest.fixture def first_match_bet_market_meta(inj_usdt_spot_market_meta): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = exchange_pb.BinaryOptionsMarket( + market = market_pb.BinaryOptionsMarket( ticker="5fdbe0b1-1707800399-WAS", oracle_symbol="Frontrunner", oracle_provider="Frontrunner", @@ -233,6 +242,7 @@ def first_match_bet_market_meta(inj_usdt_spot_market_meta): settlement_price="1", min_notional="1", admin_permissions=1, + quote_decimals=6, ) return market diff --git a/tests/test_async_client.py b/tests/test_async_client.py index 92a4c98f..46e30d4b 100644 --- a/tests/test_async_client.py +++ b/tests/test_async_client.py @@ -6,9 +6,9 @@ from pyinjective.core.network import Network from pyinjective.proto.cosmos.bank.v1beta1 import query_pb2 as bank_query_pb from pyinjective.proto.cosmos.base.query.v1beta1 import pagination_pb2 as pagination_pb -from pyinjective.proto.injective.exchange.v1beta1 import query_pb2 as exchange_query_pb +from pyinjective.proto.injective.exchange.v2 import query_pb2 as exchange_query_pb from tests.client.chain.grpc.configurable_bank_query_servicer import ConfigurableBankQueryServicer -from tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer +from tests.client.chain.grpc.configurable_exchange_v2_query_servicer import ConfigurableExchangeV2QueryServicer from tests.rpc_fixtures.markets_fixtures import ( # noqa: F401 ape_token_meta, ape_usdt_spot_market_meta, @@ -30,7 +30,7 @@ def bank_servicer(): @pytest.fixture def exchange_servicer(): - return ConfigurableExchangeQueryServicer() + return ConfigurableExchangeV2QueryServicer() class TestAsyncClient: @@ -162,7 +162,7 @@ async def test_initialize_tokens_and_markets( network=test_network, ) - client.chain_exchange_api._stub = exchange_servicer + client.chain_exchange_v2_api._stub = exchange_servicer await client._initialize_tokens_and_markets() @@ -254,7 +254,7 @@ async def test_tokens_and_markets_initialization_read_tokens_from_official_list( network=test_network, ) - client.chain_exchange_api._stub = exchange_servicer + client.chain_exchange_v2_api._stub = exchange_servicer await client._initialize_tokens_and_markets() @@ -296,7 +296,7 @@ async def test_initialize_tokens_from_chain_denoms( network=test_network, ) - client.chain_exchange_api._stub = exchange_servicer + client.chain_exchange_v2_api._stub = exchange_servicer client.bank_api._stub = bank_servicer await client._initialize_tokens_and_markets() diff --git a/tests/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py index 3d8954ca..425a60b9 100644 --- a/tests/test_async_client_deprecation_warnings.py +++ b/tests/test_async_client_deprecation_warnings.py @@ -1,67 +1,13 @@ from warnings import catch_warnings -import grpc import pytest from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network -from pyinjective.proto.cosmos.authz.v1beta1 import query_pb2 as authz_query -from pyinjective.proto.cosmos.bank.v1beta1 import query_pb2 as bank_query_pb -from pyinjective.proto.cosmos.base.tendermint.v1beta1 import query_pb2 as tendermint_query -from pyinjective.proto.cosmos.tx.v1beta1 import service_pb2 as tx_service -from pyinjective.proto.exchange import ( - injective_accounts_rpc_pb2 as exchange_accounts_pb, - injective_auction_rpc_pb2 as exchange_auction_pb, - injective_derivative_exchange_rpc_pb2 as exchange_derivative_pb, - injective_explorer_rpc_pb2 as exchange_explorer_pb, - injective_insurance_rpc_pb2 as exchange_insurance_pb, - injective_meta_rpc_pb2 as exchange_meta_pb, - injective_oracle_rpc_pb2 as exchange_oracle_pb, - injective_portfolio_rpc_pb2 as exchange_portfolio_pb, - injective_spot_exchange_rpc_pb2 as exchange_spot_pb, -) +from pyinjective.proto.injective.exchange.v1beta1 import query_pb2 as exchange_query_pb from pyinjective.proto.injective.stream.v1beta1 import query_pb2 as chain_stream_pb -from pyinjective.proto.injective.types.v1beta1 import account_pb2 as account_pb -from tests.client.chain.grpc.configurable_auth_query_servicer import ConfigurableAuthQueryServicer -from tests.client.chain.grpc.configurable_authz_query_servicer import ConfigurableAuthZQueryServicer -from tests.client.chain.grpc.configurable_bank_query_servicer import ConfigurableBankQueryServicer +from tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer -from tests.client.indexer.configurable_account_query_servicer import ConfigurableAccountQueryServicer -from tests.client.indexer.configurable_auction_query_servicer import ConfigurableAuctionQueryServicer -from tests.client.indexer.configurable_derivative_query_servicer import ConfigurableDerivativeQueryServicer -from tests.client.indexer.configurable_explorer_query_servicer import ConfigurableExplorerQueryServicer -from tests.client.indexer.configurable_insurance_query_servicer import ConfigurableInsuranceQueryServicer -from tests.client.indexer.configurable_meta_query_servicer import ConfigurableMetaQueryServicer -from tests.client.indexer.configurable_oracle_query_servicer import ConfigurableOracleQueryServicer -from tests.client.indexer.configurable_portfolio_query_servicer import ConfigurablePortfolioQueryServicer -from tests.client.indexer.configurable_spot_query_servicer import ConfigurableSpotQueryServicer -from tests.core.tendermint.grpc.configurable_tendermint_query_servicer import ConfigurableTendermintQueryServicer -from tests.core.tx.grpc.configurable_tx_query_servicer import ConfigurableTxQueryServicer - - -@pytest.fixture -def account_servicer(): - return ConfigurableAccountQueryServicer() - - -@pytest.fixture -def auction_servicer(): - return ConfigurableAuctionQueryServicer() - - -@pytest.fixture -def auth_servicer(): - return ConfigurableAuthQueryServicer() - - -@pytest.fixture -def authz_servicer(): - return ConfigurableAuthZQueryServicer() - - -@pytest.fixture -def bank_servicer(): - return ConfigurableBankQueryServicer() @pytest.fixture @@ -69,1656 +15,971 @@ def chain_stream_servicer(): return ConfigurableChainStreamQueryServicer() -@pytest.fixture -def derivative_servicer(): - return ConfigurableDerivativeQueryServicer() - - -@pytest.fixture -def explorer_servicer(): - return ConfigurableExplorerQueryServicer() - - -@pytest.fixture -def insurance_servicer(): - return ConfigurableInsuranceQueryServicer() - - -@pytest.fixture -def meta_servicer(): - return ConfigurableMetaQueryServicer() - - -@pytest.fixture -def oracle_servicer(): - return ConfigurableOracleQueryServicer() - - -@pytest.fixture -def portfolio_servicer(): - return ConfigurablePortfolioQueryServicer() - - -@pytest.fixture -def spot_servicer(): - return ConfigurableSpotQueryServicer() - - -@pytest.fixture -def tx_servicer(): - return ConfigurableTxQueryServicer() - - -@pytest.fixture -def tendermint_servicer(): - return ConfigurableTendermintQueryServicer() - - -class TestAsyncClientDeprecationWarnings: - def test_insecure_parameter_deprecation_warning( - self, - auth_servicer, - ): - with catch_warnings(record=True) as all_warnings: - AsyncClient( - network=Network.local(), - insecure=False, - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "insecure parameter in AsyncClient is no longer used and will be deprecated" - ) - - @pytest.mark.asyncio - async def test_get_account_deprecation_warning( - self, - auth_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubAuth = auth_servicer - auth_servicer.account_responses.append(account_pb.EthAccount()) - - with catch_warnings(record=True) as all_warnings: - await client.get_account(address="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_account instead" - - @pytest.mark.asyncio - async def test_get_bank_balance_deprecation_warning( - self, - bank_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubBank = bank_servicer - bank_servicer.balance_responses.append(bank_query_pb.QueryBalanceResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_bank_balance(address="", denom="inj") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_bank_balance instead" - - @pytest.mark.asyncio - async def test_get_bank_balances_deprecation_warning( - self, - bank_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubBank = bank_servicer - bank_servicer.balances_responses.append(bank_query_pb.QueryAllBalancesResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_bank_balances(address="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_bank_balances instead" - - @pytest.mark.asyncio - async def test_get_order_states_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.order_states_responses.append(exchange_accounts_pb.OrderStatesResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_order_states(spot_order_hashes=["hash1"], derivative_order_hashes=["hash2"]) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_order_states instead" - - @pytest.mark.asyncio - async def test_get_subaccount_list_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.subaccounts_list_responses.append(exchange_accounts_pb.SubaccountsListResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_subaccount_list(account_address="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_subaccounts_list instead" - - @pytest.mark.asyncio - async def test_get_subaccount_balances_list_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.subaccount_balances_list_responses.append( - exchange_accounts_pb.SubaccountBalancesListResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.get_subaccount_balances_list(subaccount_id="", denoms=[]) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_subaccount_balances_list instead" - ) - - @pytest.mark.asyncio - async def test_get_subaccount_balance_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.subaccount_balance_responses.append(exchange_accounts_pb.SubaccountBalanceEndpointResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_subaccount_balance(subaccount_id="", denom="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_subaccount_balance instead" - - @pytest.mark.asyncio - async def test_get_subaccount_history_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.subaccount_history_responses.append(exchange_accounts_pb.SubaccountHistoryResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_subaccount_history(subaccount_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_subaccount_history instead" - - @pytest.mark.asyncio - async def test_get_subaccount_order_summary_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.subaccount_order_summary_responses.append( - exchange_accounts_pb.SubaccountOrderSummaryResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.get_subaccount_order_summary(subaccount_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_subaccount_order_summary instead" - ) - - @pytest.mark.asyncio - async def test_get_portfolio_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.portfolio_responses.append(exchange_accounts_pb.PortfolioResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_portfolio(account_address="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_portfolio instead" - - @pytest.mark.asyncio - async def test_get_rewards_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.rewards_responses.append(exchange_accounts_pb.RewardsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_rewards(account_address="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_rewards instead" - - @pytest.mark.asyncio - async def test_stream_subaccount_balance_deprecation_warning( - self, - account_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - account_servicer.stream_subaccount_balance_responses.append( - exchange_accounts_pb.StreamSubaccountBalanceResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.stream_subaccount_balance(subaccount_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_subaccount_balance_updates instead" - ) - - @pytest.mark.asyncio - async def test_get_grants_deprecation_warning( - self, - authz_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubAuthz = authz_servicer - authz_servicer.grants_responses.append(authz_query.QueryGrantsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_grants(granter="granter", grantee="grantee") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_grants instead" - - @pytest.mark.asyncio - async def test_simulate_deprecation_warning( - self, - tx_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubTx = tx_servicer - tx_servicer.simulate_responses.append(tx_service.SimulateResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.simulate_tx(tx_byte="".encode()) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use simulate instead" - - @pytest.mark.asyncio - async def test_get_tx_deprecation_warning( - self, - tx_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubTx = tx_servicer - tx_servicer.get_tx_responses.append(tx_service.GetTxResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_tx(tx_hash="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_tx instead" - - @pytest.mark.asyncio - async def test_send_tx_sync_mode_deprecation_warning( - self, - tx_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubTx = tx_servicer - tx_servicer.broadcast_responses.append(tx_service.BroadcastTxResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.send_tx_sync_mode(tx_byte="".encode()) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use broadcast_tx_sync_mode instead" - - @pytest.mark.asyncio - async def test_send_tx_async_mode_deprecation_warning( - self, - tx_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubTx = tx_servicer - tx_servicer.broadcast_responses.append(tx_service.BroadcastTxResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.send_tx_async_mode(tx_byte="".encode()) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use broadcast_tx_async_mode instead" - - @pytest.mark.asyncio - async def test_send_tx_block_mode_deprecation_warning( - self, - tx_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubTx = tx_servicer - tx_servicer.broadcast_responses.append(tx_service.BroadcastTxResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.send_tx_block_mode(tx_byte="".encode()) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. BLOCK broadcast mode should not be used" - ) - - @pytest.mark.asyncio - async def test_ping_deprecation_warning( - self, - meta_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubMeta = meta_servicer - meta_servicer.ping_responses.append(exchange_meta_pb.PingResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.ping() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_ping instead" - - @pytest.mark.asyncio - async def test_version_deprecation_warning( - self, - meta_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubMeta = meta_servicer - meta_servicer.version_responses.append(exchange_meta_pb.VersionResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.version() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_version instead" - - @pytest.mark.asyncio - async def test_info_deprecation_warning( - self, - meta_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubMeta = meta_servicer - meta_servicer.info_responses.append(exchange_meta_pb.InfoResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.info() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_info instead" - - @pytest.mark.asyncio - async def test_stream_keepalive_deprecation_warning( - self, - meta_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExchangeAccount = account_servicer - meta_servicer.stream_keepalive_responses.append(exchange_meta_pb.StreamKeepaliveResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_keepalive() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_keepalive instead" - - @pytest.mark.asyncio - async def test_get_oracle_list_deprecation_warning( - self, - oracle_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubOracle = oracle_servicer - oracle_servicer.oracle_list_responses.append(exchange_oracle_pb.OracleListResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_oracle_list() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_oracle_list instead" - - @pytest.mark.asyncio - async def test_get_oracle_prices_deprecation_warning( - self, - oracle_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubOracle = oracle_servicer - oracle_servicer.price_responses.append(exchange_oracle_pb.PriceResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_oracle_prices( - base_symbol="Gold", - quote_symbol="USDT", - oracle_type="pricefeed", - oracle_scale_factor=6, - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_oracle_price instead" - - @pytest.mark.asyncio - async def test_stream_oracle_prices_deprecation_warning( - self, - oracle_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubOracle = oracle_servicer - oracle_servicer.stream_prices_responses.append(exchange_oracle_pb.StreamPricesResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_oracle_prices( - base_symbol="Gold", - quote_symbol="USDT", - oracle_type="pricefeed", - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_oracle_prices_updates instead" - ) - - @pytest.mark.asyncio - async def test_get_insurance_funds_deprecation_warning( - self, - insurance_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubInsurance = insurance_servicer - insurance_servicer.funds_responses.append(exchange_insurance_pb.FundsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_insurance_funds() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_insurance_funds instead" - - @pytest.mark.asyncio - async def test_get_redemptions_deprecation_warning( - self, - insurance_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubInsurance = insurance_servicer - insurance_servicer.redemptions_responses.append(exchange_insurance_pb.RedemptionsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_redemptions() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_redemptions instead" - - @pytest.mark.asyncio - async def test_get_auction_deprecation_warning( - self, - auction_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubAuction = auction_servicer - auction_servicer.auction_endpoint_responses.append(exchange_auction_pb.AuctionEndpointResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_auction(bid_round=1) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_auction instead" - - @pytest.mark.asyncio - async def test_get_auctions_deprecation_warning( - self, - auction_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubAuction = auction_servicer - auction_servicer.auctions_responses.append(exchange_auction_pb.AuctionsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_auctions() +@pytest.fixture +def exchange_servicer(): + return ConfigurableExchangeQueryServicer() - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_auctions instead" +class TestAsyncClientDeprecationWarnings: @pytest.mark.asyncio - async def test_stream_bids_deprecation_warning( + async def test_listen_chain_stream_updates_deprecation_warning( self, - auction_servicer, + chain_stream_servicer, ): - client = AsyncClient( - network=Network.local(), - ) - client.stubAuction = auction_servicer - auction_servicer.stream_bids_responses.append(exchange_auction_pb.StreamBidsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_bids() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_bids_updates instead" + async def callback(event): + pass - @pytest.mark.asyncio - async def test_get_spot_markets_deprecation_warning( - self, - spot_servicer, - ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.markets_responses.append(exchange_spot_pb.MarketsResponse()) + client.chain_stream_api._stub = chain_stream_servicer + chain_stream_servicer.stream_responses.append(chain_stream_pb.StreamResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_spot_markets() + await client.listen_chain_stream_updates(callback=callback) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_markets instead" - - @pytest.mark.asyncio - async def test_get_spot_market_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use listen_chain_stream_v2_updates instead" ) - client.stubSpotExchange = spot_servicer - spot_servicer.market_responses.append(exchange_spot_pb.MarketResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_spot_market(market_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_market instead" @pytest.mark.asyncio - async def test_get_spot_orderbookV2_deprecation_warning( + async def test_fetch_aggregate_volume_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.orderbook_v2_responses.append(exchange_spot_pb.OrderbookV2Response()) - - with catch_warnings(record=True) as all_warnings: - await client.get_spot_orderbookV2(market_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_orderbook_v2 instead" + client.chain_exchange_api._stub = exchange_servicer - @pytest.mark.asyncio - async def test_get_spot_orderbooksV2_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.orderbooks_v2_responses.append(exchange_spot_pb.OrderbooksV2Response()) + exchange_servicer.aggregate_volume_responses.append(exchange_query_pb.QueryAggregateVolumeResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_spot_orderbooksV2(market_ids=[]) + await client.fetch_aggregate_volume( + account="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_orderbooks_v2 instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_aggregate_volume_v2 instead" + ) @pytest.mark.asyncio - async def test_get_spot_orders_deprecation_warning( + async def test_fetch_aggregate_volumes_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.orders_responses.append(exchange_spot_pb.OrdersResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.aggregate_volumes_responses.append(exchange_query_pb.QueryAggregateVolumesResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_spot_orders(market_id="") + await client.fetch_aggregate_volumes( + accounts=["inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"], + market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_orders instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_aggregate_volumes_v2 instead" + ) @pytest.mark.asyncio - async def test_get_spot_trades_deprecation_warning( + async def test_fetch_aggregate_market_volume_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.trades_responses.append(exchange_spot_pb.TradesResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_spot_trades() + client.chain_exchange_api._stub = exchange_servicer - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_trades instead" - - @pytest.mark.asyncio - async def test_get_spot_subaccount_orders_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.aggregate_market_volume_responses.append( + exchange_query_pb.QueryAggregateMarketVolumeResponse() ) - client.stubSpotExchange = spot_servicer - spot_servicer.subaccount_orders_list_responses.append(exchange_spot_pb.SubaccountOrdersListResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_spot_subaccount_orders(subaccount_id="", market_id="") + await client.fetch_aggregate_market_volume( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_spot_subaccount_orders_list instead" + == "This method is deprecated. Use fetch_aggregate_market_volume_v2 instead" ) @pytest.mark.asyncio - async def test_get_spot_subaccount_trades_deprecation_warning( + async def test_fetch_aggregate_market_volumes_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.subaccount_trades_list_responses.append(exchange_spot_pb.SubaccountTradesListResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.aggregate_market_volumes_responses.append( + exchange_query_pb.QueryAggregateMarketVolumesResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.get_spot_subaccount_trades(subaccount_id="") + await client.fetch_aggregate_market_volumes( + market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_spot_subaccount_trades_list instead" + == "This method is deprecated. Use fetch_aggregate_market_volumes_v2 instead" ) @pytest.mark.asyncio - async def test_get_historical_spot_orders_deprecation_warning( + async def test_fetch_chain_spot_markets_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.orders_history_responses.append(exchange_spot_pb.SubaccountTradesListResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.spot_markets_responses.append(exchange_query_pb.QuerySpotMarketsResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_historical_spot_orders() + await client.fetch_chain_spot_markets() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_spot_orders_history instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_chain_spot_markets_v2 instead" ) @pytest.mark.asyncio - async def test_stream_spot_markets_deprecation_warning( + async def test_fetch_chain_spot_market_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_markets_responses.append(exchange_spot_pb.StreamMarketsResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.spot_market_responses.append(exchange_query_pb.QuerySpotMarketResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_spot_markets() + await client.fetch_chain_spot_market( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_spot_markets_updates instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_chain_spot_market_v2 instead" ) @pytest.mark.asyncio - async def test_stream_spot_orderbook_snapshot_deprecation_warning( + async def test_fetch_chain_full_spot_markets_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orderbook_v2_responses.append(exchange_spot_pb.StreamOrderbookV2Response()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.full_spot_markets_responses.append(exchange_query_pb.QueryFullSpotMarketsResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_spot_orderbook_snapshot(market_ids=[]) + await client.fetch_chain_full_spot_markets() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_spot_orderbook_snapshots instead" + == "This method is deprecated. Use fetch_chain_full_spot_markets_v2 instead" ) @pytest.mark.asyncio - async def test_stream_spot_orderbook_update_deprecation_warning( + async def test_fetch_chain_full_spot_markets_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orderbook_update_responses.append(exchange_spot_pb.StreamOrderbookUpdateRequest()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.full_spot_market_responses.append(exchange_query_pb.QueryFullSpotMarketResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_spot_orderbook_update(market_ids=[]) + await client.fetch_chain_full_spot_market( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_spot_orderbook_updates instead" + == "This method is deprecated. Use fetch_chain_full_spot_market_v2 instead" ) @pytest.mark.asyncio - async def test_stream_spot_orders_deprecation_warning( + async def test_fetch_chain_spot_orderbook_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orders_responses.append(exchange_spot_pb.StreamOrdersRequest()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_spot_orders(market_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_spot_orders_updates instead" - ) + client.chain_exchange_api._stub = exchange_servicer - @pytest.mark.asyncio - async def test_stream_spot_trades_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orders_responses.append(exchange_spot_pb.StreamTradesResponse()) + exchange_servicer.spot_orderbook_responses.append(exchange_query_pb.QuerySpotOrderbookResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_spot_trades() + await client.fetch_chain_spot_orderbook( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_spot_trades_updates instead" + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_chain_spot_orderbook_v2 instead" ) @pytest.mark.asyncio - async def test_stream_historical_spot_orders_deprecation_warning( + async def test_fetch_chain_trader_spot_orders_deprecation_warning( self, - spot_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orders_history_responses.append(exchange_spot_pb.StreamOrdersHistoryRequest()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.trader_spot_orders_responses.append(exchange_query_pb.QueryTraderSpotOrdersResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_historical_spot_orders(market_id="") + await client.fetch_chain_trader_spot_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_spot_orders_history_updates instead" + == "This method is deprecated. Use fetch_chain_trader_spot_orders_v2 instead" ) @pytest.mark.asyncio - async def test_get_derivative_markets_deprecation_warning( + async def test_fetch_chain_account_address_spot_orders_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.markets_responses.append(exchange_derivative_pb.MarketsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_markets() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_derivative_markets instead" + client.chain_exchange_api._stub = exchange_servicer - @pytest.mark.asyncio - async def test_get_derivative_market_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.account_address_spot_orders_responses.append( + exchange_query_pb.QueryAccountAddressSpotOrdersResponse() ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.market_responses.append(exchange_derivative_pb.MarketResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_market(market_id="") + await client.fetch_chain_account_address_spot_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + account_address="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_derivative_market instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_chain_account_address_spot_orders_v2 instead" + ) @pytest.mark.asyncio - async def test_get_binary_options_markets_deprecation_warning( + async def test_fetch_chain_spot_orders_by_hashes_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.binary_options_markets_responses.append( - exchange_derivative_pb.BinaryOptionsMarketsResponse() - ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.spot_orders_by_hashes_responses.append(exchange_query_pb.QuerySpotOrdersByHashesResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_binary_options_markets() + await client.fetch_chain_spot_orders_by_hashes( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + order_hashes=["0x57a01cd26f1e2080860af3264e865d7c9c034a701e30946d01c1dc7a303cf2c1"], + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_binary_options_markets instead" + == "This method is deprecated. Use fetch_chain_spot_orders_by_hashes_v2 instead" ) @pytest.mark.asyncio - async def test_get_binary_options_market_deprecation_warning( + async def test_fetch_chain_subaccount_orders_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.binary_options_market_responses.append(exchange_derivative_pb.BinaryOptionsMarketResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.subaccount_orders_responses.append(exchange_query_pb.QuerySubaccountOrdersResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_binary_options_market(market_id="") + await client.fetch_chain_subaccount_orders( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_binary_options_market instead" + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_chain_subaccount_orders_v2 instead" ) @pytest.mark.asyncio - async def test_get_derivative_orderbook_deprecation_warning( + async def test_fetch_chain_trader_spot_transient_orders_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orderbook_v2_responses.append(exchange_derivative_pb.OrderbookV2Request()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.trader_spot_transient_orders_responses.append( + exchange_query_pb.QueryTraderSpotOrdersResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_orderbook(market_id="") + await client.fetch_chain_trader_spot_transient_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_orderbook_v2 instead" + == "This method is deprecated. Use fetch_chain_trader_spot_transient_orders_v2 instead" ) @pytest.mark.asyncio - async def test_get_derivative_orderbooksV2_deprecation_warning( + async def test_fetch_spot_mid_price_and_tob_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orderbooks_v2_responses.append(exchange_derivative_pb.OrderbooksV2Request()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.spot_mid_price_and_tob_responses.append(exchange_query_pb.QuerySpotMidPriceAndTOBResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_orderbooksV2(market_ids=[]) + await client.fetch_spot_mid_price_and_tob( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_orderbooks_v2 instead" + == "This method is deprecated. Use fetch_spot_mid_price_and_tob_v2 instead" ) @pytest.mark.asyncio - async def test_get_derivative_orders_deprecation_warning( + async def test_fetch_derivative_mid_price_and_tob_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orders_responses.append(exchange_derivative_pb.OrdersResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_orders(market_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_derivative_orders instead" + client.chain_exchange_api._stub = exchange_servicer - @pytest.mark.asyncio - async def test_get_derivative_positions_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.derivative_mid_price_and_tob_responses.append( + exchange_query_pb.QueryDerivativeMidPriceAndTOBResponse() ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.positions_responses.append(exchange_derivative_pb.PositionsResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_positions() + await client.fetch_derivative_mid_price_and_tob( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_positions_v2 instead" + == "This method is deprecated. Use fetch_derivative_mid_price_and_tob_v2 instead" ) @pytest.mark.asyncio - async def test_get_derivative_liquidable_positions_deprecation_warning( + async def test_fetch_chain_derivative_orderbook_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.liquidable_positions_responses.append(exchange_derivative_pb.LiquidablePositionsResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.derivative_orderbook_responses.append(exchange_query_pb.QueryDerivativeOrderbookResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_liquidable_positions() + await client.fetch_chain_derivative_orderbook( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_liquidable_positions instead" + == "This method is deprecated. Use fetch_chain_derivative_orderbook_v2 instead" ) @pytest.mark.asyncio - async def test_get_funding_payments_deprecation_warning( + async def test_fetch_chain_trader_derivative_orders_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.funding_payments_responses.append(exchange_derivative_pb.FundingPaymentsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_funding_payments(subaccount_id="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_funding_payments instead" + client.chain_exchange_api._stub = exchange_servicer - @pytest.mark.asyncio - async def test_get_funding_rates_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.trader_derivative_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeOrdersResponse() ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.funding_rates_responses.append(exchange_derivative_pb.FundingRatesResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_funding_rates(market_id="") + await client.fetch_chain_trader_derivative_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_funding_rates instead" - - @pytest.mark.asyncio - async def test_get_derivative_trades_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_chain_trader_derivative_orders_v2 instead" ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.trades_responses.append(exchange_derivative_pb.TradesResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_trades() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_derivative_trades instead" @pytest.mark.asyncio - async def test_get_derivative_subaccount_orders_deprecation_warning( + async def test_fetch_chain_account_address_derivative_orders_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.subaccount_orders_list_responses.append( - exchange_derivative_pb.SubaccountOrdersListResponse() + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.account_address_derivative_orders_responses.append( + exchange_query_pb.QueryAccountAddressDerivativeOrdersResponse() ) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_subaccount_orders(subaccount_id="") + await client.fetch_chain_account_address_derivative_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + account_address="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_subaccount_orders instead" + == "This method is deprecated. Use fetch_chain_account_address_derivative_orders_v2 instead" ) @pytest.mark.asyncio - async def test_get_derivative_subaccount_trades_deprecation_warning( + async def test_fetch_chain_derivative_orders_by_hashes_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.subaccount_trades_list_responses.append( - exchange_derivative_pb.SubaccountTradesListResponse() + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.derivative_orders_by_hashes_responses.append( + exchange_query_pb.QueryDerivativeOrdersByHashesResponse() ) with catch_warnings(record=True) as all_warnings: - await client.get_derivative_subaccount_trades(subaccount_id="") + await client.fetch_chain_derivative_orders_by_hashes( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + order_hashes=["0x57a01cd26f1e2080860af3264e865d7c9c034a701e30946d01c1dc7a303cf2c1"], + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_subaccount_trades instead" + == "This method is deprecated. Use fetch_chain_derivative_orders_by_hashes_v2 instead" ) @pytest.mark.asyncio - async def test_get_historical_derivative_orders_deprecation_warning( + async def test_fetch_chain_trader_derivative_transient_orders_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orders_history_responses.append(exchange_derivative_pb.OrdersHistoryResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.trader_derivative_transient_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeOrdersResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.get_historical_derivative_orders() + await client.fetch_chain_trader_derivative_transient_orders( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_derivative_orders_history instead" + == "This method is deprecated. Use fetch_chain_trader_derivative_transient_orders_v2 instead" ) @pytest.mark.asyncio - async def test_stream_derivative_markets_deprecation_warning( + async def test_fetch_chain_derivative_markets_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.stream_market_responses.append(exchange_derivative_pb.StreamMarketResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.derivative_markets_responses.append(exchange_query_pb.QueryDerivativeMarketsResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_markets() + await client.fetch_chain_derivative_markets() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_market_updates instead" + == "This method is deprecated. Use fetch_chain_derivative_markets_v2 instead" ) @pytest.mark.asyncio - async def test_stream_derivative_orderbook_snapshot_deprecation_warning( + async def test_fetch_chain_derivative_market_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = spot_servicer - derivative_servicer.stream_orderbook_v2_responses.append(exchange_derivative_pb.StreamOrderbookV2Response()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.derivative_market_responses.append(exchange_query_pb.QueryDerivativeMarketResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_orderbook_snapshot(market_ids=[]) + await client.fetch_chain_derivative_market( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_orderbook_snapshots instead" + == "This method is deprecated. Use fetch_chain_derivative_market_v2 instead" ) @pytest.mark.asyncio - async def test_stream_derivative_orderbook_update_deprecation_warning( + async def test_fetch_chain_positions_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.stream_orderbook_update_responses.append( - exchange_derivative_pb.StreamOrderbookUpdateRequest() - ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.positions_responses.append(exchange_query_pb.QueryPositionsResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_orderbook_update(market_ids=[]) + await client.fetch_chain_positions() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_orderbook_updates instead" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_chain_positions_v2 instead" @pytest.mark.asyncio - async def test_stream_derivative_positions_deprecation_warning( + async def test_fetch_chain_subaccount_positions_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.stream_positions_responses.append(exchange_derivative_pb.StreamPositionsRequest()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.subaccount_positions_responses.append(exchange_query_pb.QuerySubaccountPositionsResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_positions() + await client.fetch_chain_subaccount_positions( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_positions_updates instead" + == "This method is deprecated. Use fetch_chain_subaccount_positions_v2 instead" ) @pytest.mark.asyncio - async def test_stream_derivative_orders_deprecation_warning( + async def test_fetch_chain_subaccount_position_in_market_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = derivative_servicer - derivative_servicer.stream_orders_responses.append(exchange_derivative_pb.StreamOrdersRequest()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.subaccount_position_in_market_responses.append( + exchange_query_pb.QuerySubaccountPositionInMarketResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_orders(market_id="") + await client.fetch_chain_subaccount_position_in_market( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_orders_updates instead" + == "This method is deprecated. Use fetch_chain_subaccount_position_in_market_v2 instead" ) @pytest.mark.asyncio - async def test_stream_derivative_trades_deprecation_warning( + async def test_fetch_chain_subaccount_effective_position_in_market_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = derivative_servicer - derivative_servicer.stream_orders_responses.append(exchange_derivative_pb.StreamTradesResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.subaccount_effective_position_in_market_responses.append( + exchange_query_pb.QuerySubaccountEffectivePositionInMarketResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_trades() + await client.fetch_chain_subaccount_effective_position_in_market( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_trades_updates instead" + == "This method is deprecated. Use fetch_chain_subaccount_effective_position_in_market_v2 instead" ) @pytest.mark.asyncio - async def test_stream_historical_derivative_orders_deprecation_warning( + async def test_fetch_chain_expiry_futures_market_info_deprecation_warning( self, - derivative_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubSpotExchange = derivative_servicer - derivative_servicer.stream_orders_history_responses.append(exchange_spot_pb.StreamOrdersHistoryRequest()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.expiry_futures_market_info_responses.append( + exchange_query_pb.QueryExpiryFuturesMarketInfoResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.stream_historical_derivative_orders(market_id="") + await client.fetch_chain_expiry_futures_market_info( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_derivative_orders_history_updates instead" + == "This method is deprecated. Use fetch_chain_expiry_futures_market_info_v2 instead" ) @pytest.mark.asyncio - async def test_get_account_portfolio_deprecation_warning( + async def test_fetch_chain_perpetual_market_funding_deprecation_warning( self, - portfolio_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubPortfolio = portfolio_servicer - portfolio_servicer.account_portfolio_responses.append(exchange_portfolio_pb.AccountPortfolioResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.perpetual_market_funding_responses.append( + exchange_query_pb.QueryPerpetualMarketFundingResponse() + ) with catch_warnings(record=True) as all_warnings: - await client.get_account_portfolio(account_address="") + await client.fetch_chain_perpetual_market_funding( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use fetch_account_portfolio_balances instead" + == "This method is deprecated. Use fetch_chain_perpetual_market_funding_v2 instead" ) @pytest.mark.asyncio - async def test_stream_account_portfolio_deprecation_warning( + async def test_fetch_subaccount_order_metadata_deprecation_warning( self, - portfolio_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubPortfolio = portfolio_servicer - portfolio_servicer.stream_account_portfolio_responses.append( - exchange_portfolio_pb.StreamAccountPortfolioResponse() + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.subaccount_order_metadata_responses.append( + exchange_query_pb.QuerySubaccountOrderMetadataResponse() ) with catch_warnings(record=True) as all_warnings: - await client.stream_account_portfolio(account_address="") + await client.fetch_subaccount_order_metadata( + subaccount_id="0x5303d92e49a619bb29de8fb6f59c0e7589213cc8000000000000000000000001", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use listen_account_portfolio_updates instead" + == "This method is deprecated. Use fetch_subaccount_order_metadata_v2 instead" ) @pytest.mark.asyncio - async def test_get_account_txs_deprecation_warning( + async def test_fetch_fee_discount_account_info_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubExplorer = explorer_servicer - explorer_servicer.account_txs_responses.append(exchange_explorer_pb.GetAccountTxsResponse()) + client.chain_exchange_api._stub = exchange_servicer - with catch_warnings(record=True) as all_warnings: - await client.get_account_txs(address="") - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_account_txs instead" - - @pytest.mark.asyncio - async def test_get_blocks_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.fee_discount_account_info_responses.append( + exchange_query_pb.QueryFeeDiscountAccountInfoResponse() ) - client.stubExplorer = explorer_servicer - explorer_servicer.blocks_responses.append(exchange_explorer_pb.GetBlocksResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_blocks() + await client.fetch_fee_discount_account_info( + account="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_blocks instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_fee_discount_account_info_v2 instead" + ) @pytest.mark.asyncio - async def test_get_block_deprecation_warning( + async def test_fetch_fee_discount_schedule_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubExplorer = explorer_servicer - explorer_servicer.block_responses.append(exchange_explorer_pb.GetBlockResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.fee_discount_schedule_responses.append(exchange_query_pb.QueryFeeDiscountScheduleResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_block(block_height="") + await client.fetch_fee_discount_schedule() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_block instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_fee_discount_schedule_v2 instead" + ) @pytest.mark.asyncio - async def test_get_txs_deprecation_warning( + async def test_fetch_historical_trade_records_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubExplorer = explorer_servicer - explorer_servicer.txs_responses.append(exchange_explorer_pb.GetTxsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_txs() + client.chain_exchange_api._stub = exchange_servicer - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_txs instead" - - @pytest.mark.asyncio - async def test_get_tx_by_hash_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.historical_trade_records_responses.append( + exchange_query_pb.QueryHistoricalTradeRecordsResponse() ) - client.stubExplorer = explorer_servicer - explorer_servicer.tx_by_tx_hash_responses.append(exchange_explorer_pb.GetTxByTxHashResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_tx_by_hash(tx_hash="") + await client.fetch_historical_trade_records( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_tx_by_tx_hash instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_historical_trade_records_v2 instead" + ) @pytest.mark.asyncio - async def test_get_peggy_deposits_deprecation_warning( + async def test_fetch_market_volatility_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubExplorer = explorer_servicer - explorer_servicer.peggy_deposit_txs_responses.append(exchange_explorer_pb.GetPeggyDepositTxsResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.market_volatility_responses.append(exchange_query_pb.QueryMarketVolatilityResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_peggy_deposits() + await client.fetch_market_volatility( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_peggy_deposit_txs instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_market_volatility_v2 instead" + ) @pytest.mark.asyncio - async def test_get_peggy_withdrawals_deprecation_warning( + async def test_fetch_chain_binary_options_markets_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubExplorer = explorer_servicer - explorer_servicer.peggy_withdrawal_txs_responses.append(exchange_explorer_pb.GetPeggyWithdrawalTxsResponse()) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.binary_options_markets_responses.append(exchange_query_pb.QueryBinaryMarketsResponse()) with catch_warnings(record=True) as all_warnings: - await client.get_peggy_withdrawals() + await client.fetch_chain_binary_options_markets() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_peggy_withdrawal_txs instead" + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_chain_binary_options_markets_v2 instead" ) @pytest.mark.asyncio - async def test_get_ibc_transfers_deprecation_warning( + async def test_fetch_trader_derivative_conditional_orders_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubExplorer = explorer_servicer - explorer_servicer.ibc_transfer_txs_responses.append(exchange_explorer_pb.GetIBCTransferTxsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_ibc_transfers() + client.chain_exchange_api._stub = exchange_servicer - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_ibc_transfer_txs instead" - - @pytest.mark.asyncio - async def test_stream_txs_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.trader_derivative_conditional_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeConditionalOrdersResponse() ) - client.stubPortfolio = explorer_servicer - explorer_servicer.stream_txs_responses.append(exchange_explorer_pb.StreamTxsResponse()) with catch_warnings(record=True) as all_warnings: - await client.stream_txs() + await client.fetch_trader_derivative_conditional_orders() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_txs_updates instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_trader_derivative_conditional_orders_v2 instead" + ) @pytest.mark.asyncio - async def test_stream_blocks_deprecation_warning( + async def test_fetch_l3_derivative_orderbook_deprecation_warning( self, - explorer_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubPortfolio = explorer_servicer - explorer_servicer.stream_blocks_responses.append(exchange_explorer_pb.StreamBlocksResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_blocks() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_blocks_updates instead" + client.chain_exchange_api._stub = exchange_servicer - @pytest.mark.asyncio - async def test_chain_stream_deprecation_warning( - self, - chain_stream_servicer, - ): - client = AsyncClient( - network=Network.local(), + exchange_servicer.l3_derivative_orderbook_responses.append( + exchange_query_pb.QueryFullDerivativeOrderbookResponse() ) - client.chain_stream_stub = chain_stream_servicer - chain_stream_servicer.stream_responses.append(chain_stream_pb.StreamRequest()) with catch_warnings(record=True) as all_warnings: - await client.chain_stream() + await client.fetch_l3_derivative_orderbook( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use listen_chain_stream_updates instead" + str(deprecation_warnings[0].message) + == "This method is deprecated. Use fetch_l3_derivative_orderbook_v2 instead" ) @pytest.mark.asyncio - async def test_get_latest_block_deprecation_warning( + async def test_fetch_l3_spot_orderbook_deprecation_warning( self, - tendermint_servicer, + exchange_servicer, ): client = AsyncClient( network=Network.local(), ) - client.stubCosmosTendermint = tendermint_servicer - tendermint_servicer.get_latest_block_responses.append(tendermint_query.GetLatestBlockResponse()) + client.chain_exchange_api._stub = exchange_servicer - with catch_warnings(record=True) as all_warnings: - await client.get_latest_block() - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_latest_block instead" + exchange_servicer.l3_spot_orderbook_responses.append(exchange_query_pb.QueryFullSpotOrderbookResponse()) - def test_credentials_parameter_deprecation_warning( - self, - auth_servicer, - ): with catch_warnings(record=True) as all_warnings: - AsyncClient(network=Network.local(), credentials=grpc.ssl_channel_credentials()) + await client.fetch_l3_spot_orderbook( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) - == "credentials parameter in AsyncClient is no longer used and will be deprecated" + str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_l3_spot_orderbook_v2 instead" ) diff --git a/tests/test_composer.py b/tests/test_composer.py index 9b7fa84a..673a4099 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -7,6 +7,7 @@ from pyinjective.composer import Composer from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS, INJ_DECIMALS from pyinjective.core.network import Network +from pyinjective.core.token import Token from tests.model_fixtures.markets_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, @@ -226,14 +227,12 @@ def test_msg_execute_contract_compat(self, basic_composer): def test_msg_deposit(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - amount = Decimal(100) - denom = "INJ" - - token = basic_composer.tokens[denom] + amount = 100 + denom = "inj" - expected_amount = token.chain_formatted_value(human_readable_value=Decimal(amount)) + expected_amount = Decimal(str(amount)) - message = basic_composer.msg_deposit( + message = basic_composer.msg_deposit_v2( sender=sender, subaccount_id=subaccount_id, amount=amount, @@ -245,7 +244,7 @@ def test_msg_deposit(self, basic_composer): "subaccountId": subaccount_id, "amount": { "amount": f"{expected_amount.normalize():f}", - "denom": token.denom, + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -257,14 +256,10 @@ def test_msg_deposit(self, basic_composer): def test_msg_withdraw(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - amount = Decimal(100) - denom = "INJ" - - token = basic_composer.tokens[denom] - - expected_amount = token.chain_formatted_value(human_readable_value=Decimal(amount)) + amount = 100 + denom = "inj" - message = basic_composer.msg_withdraw( + message = basic_composer.msg_withdraw_v2( sender=sender, subaccount_id=subaccount_id, amount=amount, @@ -275,8 +270,8 @@ def test_msg_withdraw(self, basic_composer): "sender": sender, "subaccountId": subaccount_id, "amount": { - "amount": f"{expected_amount.normalize():f}", - "denom": token.denom, + "amount": f"{Decimal(str(amount)):f}", + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -288,24 +283,15 @@ def test_msg_withdraw(self, basic_composer): def test_msg_instant_spot_market_launch(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" ticker = "INJ/USDT" - base_denom = "INJ" - quote_denom = "USDT" + base_denom = "inj" + quote_denom = "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7" min_price_tick_size = Decimal("0.01") min_quantity_tick_size = Decimal("1") min_notional = Decimal("2") + base_decimals = 18 + quote_decimals = 6 - base_token = basic_composer.tokens[base_denom] - quote_token = basic_composer.tokens[quote_denom] - - expected_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{quote_token.decimals - base_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - expected_min_quantity_tick_size = min_quantity_tick_size * Decimal( - f"1e{base_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - expected_min_notional = min_notional * Decimal(f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - - message = basic_composer.msg_instant_spot_market_launch( + message = basic_composer.msg_instant_spot_market_launch_v2( sender=sender, ticker=ticker, base_denom=base_denom, @@ -313,16 +299,24 @@ def test_msg_instant_spot_market_launch(self, basic_composer): min_price_tick_size=min_price_tick_size, min_quantity_tick_size=min_quantity_tick_size, min_notional=min_notional, + base_decimals=base_decimals, + quote_decimals=quote_decimals, ) + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + expected_message = { "sender": sender, "ticker": ticker, - "baseDenom": base_token.denom, - "quoteDenom": quote_token.denom, - "minPriceTickSize": f"{expected_min_price_tick_size.normalize():f}", - "minQuantityTickSize": f"{expected_min_quantity_tick_size.normalize():f}", - "minNotional": f"{expected_min_notional.normalize():f}", + "baseDenom": base_denom, + "quoteDenom": quote_denom, + "minPriceTickSize": f"{chain_min_price_tick_size.normalize():f}", + "minQuantityTickSize": f"{chain_min_quantity_tick_size.normalize():f}", + "minNotional": f"{chain_min_notional.normalize():f}", + "baseDecimals": base_decimals, + "quoteDecimals": quote_decimals, } dict_message = json_format.MessageToDict( message=message, @@ -333,7 +327,7 @@ def test_msg_instant_spot_market_launch(self, basic_composer): def test_msg_instant_perpetual_market_launch(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" ticker = "BTC/INJ PERP" - quote_denom = "INJ" + quote_denom = "inj" oracle_base = "BTC" oracle_quote = "INJ" oracle_scale_factor = 6 @@ -346,19 +340,15 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): maintenance_margin_ratio = Decimal("0.03") min_notional = Decimal("2") - quote_token = basic_composer.tokens[quote_denom] - - expected_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) + expected_min_price_tick_size = min_price_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") expected_min_quantity_tick_size = min_quantity_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") expected_maker_fee_rate = maker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") expected_taker_fee_rate = taker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") expected_initial_margin_ratio = initial_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") expected_maintenance_margin_ratio = maintenance_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_min_notional = min_notional * Decimal(f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_min_notional = min_notional * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - message = basic_composer.msg_instant_perpetual_market_launch( + message = basic_composer.msg_instant_perpetual_market_launch_v2( sender=sender, ticker=ticker, quote_denom=quote_denom, @@ -378,7 +368,7 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): expected_message = { "sender": sender, "ticker": ticker, - "quoteDenom": quote_token.denom, + "quoteDenom": quote_denom, "oracleBase": oracle_base, "oracleQuote": oracle_quote, "oracleScaleFactor": oracle_scale_factor, @@ -400,7 +390,7 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): def test_msg_instant_expiry_futures_market_launch(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" ticker = "BTC/INJ PERP" - quote_denom = "INJ" + quote_denom = "inj" oracle_base = "BTC" oracle_quote = "INJ" oracle_scale_factor = 6 @@ -414,19 +404,17 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): maintenance_margin_ratio = Decimal("0.03") min_notional = Decimal("2") - quote_token = basic_composer.tokens[quote_denom] - - expected_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" + expected_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + expected_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + expected_maker_fee_rate = Token.convert_value_to_extended_decimal_format(value=maker_fee_rate) + expected_taker_fee_rate = Token.convert_value_to_extended_decimal_format(value=taker_fee_rate) + expected_initial_margin_ratio = Token.convert_value_to_extended_decimal_format(value=initial_margin_ratio) + expected_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format( + value=maintenance_margin_ratio ) - expected_min_quantity_tick_size = min_quantity_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_maker_fee_rate = maker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_taker_fee_rate = taker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_initial_margin_ratio = initial_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_maintenance_margin_ratio = maintenance_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_min_notional = min_notional * Decimal(f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) - message = basic_composer.msg_instant_expiry_futures_market_launch( + message = basic_composer.msg_instant_expiry_futures_market_launch_v2( sender=sender, ticker=ticker, quote_denom=quote_denom, @@ -447,7 +435,7 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): expected_message = { "sender": sender, "ticker": ticker, - "quoteDenom": quote_token.denom, + "quoteDenom": quote_denom, "oracleBase": oracle_base, "oracleQuote": oracle_quote, "oracleType": oracle_type, @@ -568,7 +556,7 @@ def test_msg_create_spot_limit_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - message = basic_composer.msg_create_spot_limit_order( + message = basic_composer.msg_create_spot_limit_order_v2( market_id=spot_market.id, sender=sender, subaccount_id=subaccount_id, @@ -580,11 +568,11 @@ def test_msg_create_spot_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = spot_market.price_to_chain_format(human_readable_value=price) - expected_quantity = spot_market.quantity_to_chain_format(human_readable_value=quantity) - expected_trigger_price = spot_market.price_to_chain_format(human_readable_value=trigger_price) + expected_price = Token.convert_value_to_extended_decimal_format(value=price) + expected_quantity = Token.convert_value_to_extended_decimal_format(value=quantity) + expected_trigger_price = Token.convert_value_to_extended_decimal_format(value=trigger_price) - assert "injective.exchange.v1beta1.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name + assert "injective.exchange.v2.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name expected_message = { "sender": sender, "order": { @@ -617,7 +605,7 @@ def test_msg_batch_create_spot_limit_orders(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.spot_order( + order = basic_composer.create_spot_order_v2( market_id=spot_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -628,7 +616,7 @@ def test_msg_batch_create_spot_limit_orders(self, basic_composer): trigger_price=trigger_price, ) - message = basic_composer.msg_batch_create_spot_limit_orders( + message = basic_composer.msg_batch_create_spot_limit_orders_v2( sender=sender, orders=[order], ) @@ -654,7 +642,7 @@ def test_msg_create_spot_market_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - message = basic_composer.msg_create_spot_market_order( + message = basic_composer.msg_create_spot_market_order_v2( market_id=spot_market.id, sender=sender, subaccount_id=subaccount_id, @@ -666,11 +654,7 @@ def test_msg_create_spot_market_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = spot_market.price_to_chain_format(human_readable_value=price) - expected_quantity = spot_market.quantity_to_chain_format(human_readable_value=quantity) - expected_trigger_price = spot_market.price_to_chain_format(human_readable_value=trigger_price) - - assert "injective.exchange.v1beta1.MsgCreateSpotMarketOrder" == message.DESCRIPTOR.full_name + assert "injective.exchange.v2.MsgCreateSpotMarketOrder" == message.DESCRIPTOR.full_name expected_message = { "sender": sender, "order": { @@ -678,12 +662,12 @@ def test_msg_create_spot_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{expected_price.normalize():f}", - "quantity": f"{expected_quantity.normalize():f}", + "price": f"{Token.convert_value_to_extended_decimal_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_extended_decimal_format(value=quantity).normalize():f}", "cid": cid, }, "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -699,7 +683,7 @@ def test_msg_cancel_spot_order(self, basic_composer): order_hash = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" cid = "test_cid" - message = basic_composer.msg_cancel_spot_order( + message = basic_composer.msg_cancel_spot_order_v2( market_id=spot_market.id, sender=sender, subaccount_id=subaccount_id, @@ -725,18 +709,18 @@ def test_msg_batch_cancel_spot_orders(self, basic_composer): subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - order_data = basic_composer.order_data( + order_data = basic_composer.create_order_data_without_mask_v2( market_id=spot_market.id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", ) - message = basic_composer.msg_batch_cancel_spot_orders( + message = basic_composer.msg_batch_cancel_spot_orders_v2( sender=sender, orders_data=[order_data], ) - assert "injective.exchange.v1beta1.MsgBatchCancelSpotOrders" == message.DESCRIPTOR.full_name + assert "injective.exchange.v2.MsgBatchCancelSpotOrders" == message.DESCRIPTOR.full_name expected_message = { "sender": sender, "data": [json_format.MessageToDict(message=order_data, always_print_fields_with_no_presence=True)], @@ -757,22 +741,22 @@ def test_msg_batch_update_orders(self, basic_composer): spot_market_id = spot_market.id derivative_market_id = derivative_market.id binary_options_market_id = binary_options_market.id - spot_order_to_cancel = basic_composer.order_data( + spot_order_to_cancel = basic_composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", ) - derivative_order_to_cancel = basic_composer.order_data( + derivative_order_to_cancel = basic_composer.create_order_data_without_mask_v2( market_id=derivative_market_id, subaccount_id=subaccount_id, order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ) - binary_options_order_to_cancel = basic_composer.order_data( + binary_options_order_to_cancel = basic_composer.create_order_data_without_mask_v2( market_id=binary_options_market_id, subaccount_id=subaccount_id, order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ) - spot_order_to_create = basic_composer.spot_order( + spot_order_to_create = basic_composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -782,7 +766,7 @@ def test_msg_batch_update_orders(self, basic_composer): cid="test_cid", trigger_price=Decimal("43.5"), ) - derivative_order_to_create = basic_composer.derivative_order( + derivative_order_to_create = basic_composer.create_derivative_order_v2( market_id=derivative_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -791,7 +775,7 @@ def test_msg_batch_update_orders(self, basic_composer): margin=Decimal("36.1") * Decimal("100"), order_type="BUY", ) - binary_options_order_to_create = basic_composer.binary_options_order( + binary_options_order_to_create = basic_composer.create_binary_options_order_v2( market_id=binary_options_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -801,7 +785,7 @@ def test_msg_batch_update_orders(self, basic_composer): order_type="BUY", ) - message = basic_composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders_v2( sender=sender, subaccount_id=subaccount_id, spot_market_ids_to_cancel_all=[spot_market_id], @@ -887,7 +871,7 @@ def test_msg_create_derivative_limit_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - message = basic_composer.msg_create_derivative_limit_order( + message = basic_composer.msg_create_derivative_limit_order_v2( market_id=derivative_market.id, sender=sender, subaccount_id=subaccount_id, @@ -900,11 +884,6 @@ def test_msg_create_derivative_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = derivative_market.price_to_chain_format(human_readable_value=price) - expected_quantity = derivative_market.quantity_to_chain_format(human_readable_value=quantity) - expected_margin = derivative_market.margin_to_chain_format(human_readable_value=margin) - expected_trigger_price = derivative_market.price_to_chain_format(human_readable_value=trigger_price) - expected_message = { "sender": sender, "order": { @@ -912,13 +891,13 @@ def test_msg_create_derivative_limit_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{expected_price.normalize():f}", - "quantity": f"{expected_quantity.normalize():f}", + "price": f"{Token.convert_value_to_extended_decimal_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_extended_decimal_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{expected_margin.normalize():f}", + "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -938,7 +917,7 @@ def test_msg_batch_create_derivative_limit_orders(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.derivative_order( + order = basic_composer.create_derivative_order_v2( market_id=derivative_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -950,7 +929,7 @@ def test_msg_batch_create_derivative_limit_orders(self, basic_composer): trigger_price=trigger_price, ) - message = basic_composer.msg_batch_create_derivative_limit_orders( + message = basic_composer.msg_batch_create_derivative_limit_orders_v2( sender=sender, orders=[order], ) @@ -977,7 +956,7 @@ def test_msg_create_derivative_market_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - message = basic_composer.msg_create_derivative_market_order( + message = basic_composer.msg_create_derivative_market_order_v2( market_id=derivative_market.id, sender=sender, subaccount_id=subaccount_id, @@ -990,11 +969,6 @@ def test_msg_create_derivative_market_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = derivative_market.price_to_chain_format(human_readable_value=price) - expected_quantity = derivative_market.quantity_to_chain_format(human_readable_value=quantity) - expected_margin = derivative_market.margin_to_chain_format(human_readable_value=margin) - expected_trigger_price = derivative_market.price_to_chain_format(human_readable_value=trigger_price) - expected_message = { "sender": sender, "order": { @@ -1002,13 +976,13 @@ def test_msg_create_derivative_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{expected_price.normalize():f}", - "quantity": f"{expected_quantity.normalize():f}", + "price": f"{Token.convert_value_to_extended_decimal_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_extended_decimal_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{expected_margin.normalize():f}", + "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1033,7 +1007,7 @@ def test_msg_cancel_derivative_order(self, basic_composer): is_market_order=is_market_order, ) - message = basic_composer.msg_cancel_derivative_order( + message = basic_composer.msg_cancel_derivative_order_v2( market_id=derivative_market.id, sender=sender, subaccount_id=subaccount_id, @@ -1063,13 +1037,13 @@ def test_msg_batch_cancel_derivative_orders(self, basic_composer): subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - order_data = basic_composer.order_data( + order_data = basic_composer.create_order_data_without_mask_v2( market_id=derivative_market.id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", ) - message = basic_composer.msg_batch_cancel_derivative_orders( + message = basic_composer.msg_batch_cancel_derivative_orders_v2( sender=sender, orders_data=[order_data], ) @@ -1091,7 +1065,7 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): oracle_provider = "Injective" oracle_scale_factor = 6 oracle_type = "Band" - quote_denom = "INJ" + quote_denom = "inj" min_price_tick_size = Decimal("0.01") min_quantity_tick_size = Decimal("1") maker_fee_rate = Decimal("0.001") @@ -1101,17 +1075,7 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): admin = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" min_notional = Decimal("2") - quote_token = basic_composer.tokens[quote_denom] - - expected_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - expected_min_quantity_tick_size = min_quantity_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_maker_fee_rate = maker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_taker_fee_rate = taker_fee_rate * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_min_notional = min_notional * Decimal(f"1e{quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - - message = basic_composer.msg_instant_binary_options_market_launch( + message = basic_composer.msg_instant_binary_options_market_launch_v2( sender=sender, ticker=ticker, oracle_symbol=oracle_symbol, @@ -1129,6 +1093,10 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): min_notional=min_notional, ) + chain_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + expected_message = { "sender": sender, "ticker": ticker, @@ -1136,15 +1104,15 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): "oracleProvider": oracle_provider, "oracleType": oracle_type, "oracleScaleFactor": oracle_scale_factor, - "makerFeeRate": f"{expected_maker_fee_rate.normalize():f}", - "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", + "makerFeeRate": f"{Token.convert_value_to_extended_decimal_format(value=maker_fee_rate).normalize():f}", + "takerFeeRate": f"{Token.convert_value_to_extended_decimal_format(value=taker_fee_rate).normalize():f}", "expirationTimestamp": str(expiration_timestamp), "settlementTimestamp": str(settlement_timestamp), "admin": admin, - "quoteDenom": quote_token.denom, - "minPriceTickSize": f"{expected_min_price_tick_size.normalize():f}", - "minQuantityTickSize": f"{expected_min_quantity_tick_size.normalize():f}", - "minNotional": f"{expected_min_notional.normalize():f}", + "quoteDenom": quote_denom, + "minPriceTickSize": f"{chain_min_price_tick_size.normalize():f}", + "minQuantityTickSize": f"{chain_min_quantity_tick_size.normalize():f}", + "minNotional": f"{chain_min_notional.normalize():f}", } dict_message = json_format.MessageToDict( message=message, @@ -1164,7 +1132,7 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - message = basic_composer.msg_create_binary_options_limit_order( + message = basic_composer.msg_create_binary_options_limit_order_v2( market_id=market.id, sender=sender, subaccount_id=subaccount_id, @@ -1177,10 +1145,10 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = market.price_to_chain_format(human_readable_value=price) - expected_quantity = market.quantity_to_chain_format(human_readable_value=quantity) - expected_margin = market.margin_to_chain_format(human_readable_value=margin) - expected_trigger_price = market.price_to_chain_format(human_readable_value=trigger_price) + expected_price = Token.convert_value_to_extended_decimal_format(value=price) + expected_quantity = Token.convert_value_to_extended_decimal_format(value=quantity) + expected_margin = Token.convert_value_to_extended_decimal_format(value=margin) + expected_trigger_price = Token.convert_value_to_extended_decimal_format(value=trigger_price) expected_message = { "sender": sender, @@ -1216,7 +1184,7 @@ def test_msg_create_binary_options_market_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - message = basic_composer.msg_create_binary_options_market_order( + message = basic_composer.msg_create_binary_options_market_order_v2( market_id=market.id, sender=sender, subaccount_id=subaccount_id, @@ -1229,11 +1197,6 @@ def test_msg_create_binary_options_market_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = market.price_to_chain_format(human_readable_value=price) - expected_quantity = market.quantity_to_chain_format(human_readable_value=quantity) - expected_margin = market.margin_to_chain_format(human_readable_value=margin) - expected_trigger_price = market.price_to_chain_format(human_readable_value=trigger_price) - expected_message = { "sender": sender, "order": { @@ -1241,13 +1204,13 @@ def test_msg_create_binary_options_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{expected_price.normalize():f}", - "quantity": f"{expected_quantity.normalize():f}", + "price": f"{Token.convert_value_to_extended_decimal_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_extended_decimal_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{expected_margin.normalize():f}", + "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1272,7 +1235,7 @@ def test_msg_cancel_derivative_order(self, basic_composer): is_market_order=is_market_order, ) - message = basic_composer.msg_cancel_derivative_order( + message = basic_composer.msg_cancel_derivative_order_v2( market_id=market.id, sender=sender, subaccount_id=subaccount_id, @@ -1301,14 +1264,10 @@ def test_msg_subaccount_transfer(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" destination_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000002" - amount = Decimal(100) - denom = "INJ" - - token = basic_composer.tokens[denom] - - expected_amount = token.chain_formatted_value(human_readable_value=amount) + amount = 100 + denom = "inj" - message = basic_composer.msg_subaccount_transfer( + message = basic_composer.msg_subaccount_transfer_v2( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, @@ -1321,8 +1280,8 @@ def test_msg_subaccount_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{expected_amount.normalize():f}", - "denom": token.denom, + "amount": f"{Decimal(str(amount)).normalize():f}", + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -1335,18 +1294,14 @@ def test_msg_external_transfer(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" - amount = Decimal(100) - denom = "INJ" - - token = basic_composer.tokens[denom] - - expected_amount = token.chain_formatted_value(human_readable_value=amount) + amount = 100 + denom = "inj" - message = basic_composer.msg_subaccount_transfer( + message = basic_composer.msg_external_transfer_v2( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, - amount=amount, + amount=100, denom=denom, ) @@ -1355,8 +1310,8 @@ def test_msg_external_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{expected_amount.normalize():f}", - "denom": token.denom, + "amount": f"{Decimal(str(amount)).normalize():f}", + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -1369,7 +1324,7 @@ def test_msg_liquidate_position(self, basic_composer): market = list(basic_composer.derivative_markets.values())[0] sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - order = basic_composer.derivative_order( + order = basic_composer.create_derivative_order_v2( market_id=market.id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -1379,7 +1334,7 @@ def test_msg_liquidate_position(self, basic_composer): order_type="BUY", ) - message = basic_composer.msg_liquidate_position( + message = basic_composer.msg_liquidate_position_v2( sender=sender, subaccount_id=subaccount_id, market_id=market.id, @@ -1403,7 +1358,7 @@ def test_msg_emergency_settle_market(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - message = basic_composer.msg_emergency_settle_market( + message = basic_composer.msg_emergency_settle_market_v2( sender=sender, subaccount_id=subaccount_id, market_id=market.id, @@ -1427,9 +1382,9 @@ def test_msg_increase_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = market.margin_to_chain_format(human_readable_value=amount) + expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) - message = basic_composer.msg_increase_position_margin( + message = basic_composer.msg_increase_position_margin_v2( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, @@ -1457,9 +1412,9 @@ def test_msg_decrease_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = market.margin_to_chain_format(human_readable_value=amount) + expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) - message = basic_composer.msg_decrease_position_margin( + message = basic_composer.msg_decrease_position_margin_v2( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, @@ -1504,9 +1459,9 @@ def test_msg_admin_update_binary_options_market(self, basic_composer): expiration_timestamp = 1630000000 settlement_timestamp = 1660000000 - expected_settlement_price = market.price_to_chain_format(human_readable_value=settlement_price) + expected_settlement_price = Token.convert_value_to_extended_decimal_format(value=settlement_price) - message = basic_composer.msg_admin_update_binary_options_market( + message = basic_composer.msg_admin_update_binary_options_market_v2( sender=sender, market_id=market.id, status=status, @@ -1537,17 +1492,11 @@ def test_msg_update_spot_market(self, basic_composer): min_quantity_tick_size = Decimal("10") min_notional = Decimal("5") - expected_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{market.quote_token.decimals - market.base_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - expected_min_quantity_tick_size = min_quantity_tick_size * Decimal( - f"1e{market.base_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - expected_min_notional = min_notional * Decimal( - f"1e{market.quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) + expected_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + expected_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + expected_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) - message = basic_composer.msg_update_spot_market( + message = basic_composer.msg_update_spot_market_v2( admin=sender, market_id=market.id, new_ticker=new_ticker, @@ -1580,17 +1529,15 @@ def test_msg_update_derivative_market(self, basic_composer): initial_margin_ratio = Decimal("0.05") maintenance_margin_ratio = Decimal("0.009") - expected_min_price_tick_size = min_price_tick_size * Decimal( - f"1e{market.quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" - ) - expected_min_quantity_tick_size = min_quantity_tick_size * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_min_notional = min_notional * Decimal( - f"1e{market.quote_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" + expected_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) + expected_min_quantity_tick_size = Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size) + expected_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + expected_initial_margin_ratio = Token.convert_value_to_extended_decimal_format(value=initial_margin_ratio) + expected_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format( + value=maintenance_margin_ratio ) - expected_initial_margin_ratio = initial_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_maintenance_margin_ratio = maintenance_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - message = basic_composer.msg_update_derivative_market( + message = basic_composer.msg_update_derivative_market_v2( admin=sender, market_id=market.id, new_ticker=new_ticker, @@ -1669,7 +1616,10 @@ def test_msg_ibc_transfer(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" source_port = "transfer" source_channel = "channel-126" - token_amount = basic_composer.create_coin_amount(amount=Decimal("0.1"), token_name="INJ") + token_decimals = 18 + transfer_amount = Decimal("0.1") * Decimal(f"1e{token_decimals}") + inj_chain_denom = "inj" + token_amount = basic_composer.coin(amount=int(transfer_amount), denom=inj_chain_denom) receiver = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" timeout_height = 10 timeout_timestamp = 1630000000 @@ -1925,3 +1875,154 @@ def test_msg_claim_voucher(self, basic_composer): always_print_fields_with_no_presence=True, ) assert dict_message == expected_message + + def test_create_order_data_without_mask_v2(self, basic_composer): + order_data = basic_composer.create_order_data_without_mask_v2( + market_id=list(basic_composer.spot_markets.keys())[0], + subaccount_id="subaccount_id", + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) + + expected_message = { + "marketId": list(basic_composer.spot_markets.keys())[0], + "subaccountId": "subaccount_id", + "orderHash": "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + "orderMask": 1, + "cid": "", + } + + dict_message = json_format.MessageToDict( + message=order_data, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_privileged_execute_contract_v2(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + contract_address = "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7" + data = "test_data" + funds = "100inj,420peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" + + message = basic_composer.msg_privileged_execute_contract_v2( + sender=sender, + contract_address=contract_address, + data=data, + funds=funds, + ) + + expected_message = { + "sender": sender, + "funds": funds, + "contractAddress": contract_address, + "data": data, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_create_insurance_fund(self, basic_composer): + message = basic_composer.msg_create_insurance_fund( + sender="sender", + ticker="AAVE/USDT PERP", + quote_denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + oracle_base="0x2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445", + oracle_quote="0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + oracle_type="Band", + expiry=-1, + initial_deposit=1, + ) + + expected_message = { + "sender": "sender", + "ticker": "AAVE/USDT PERP", + "quoteDenom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + "oracleBase": "0x2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445", + "oracleQuote": "0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "oracleType": "Band", + "expiry": "-1", + "initialDeposit": { + "amount": f"{Decimal('1').normalize():f}", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_send_to_eth_fund(self, basic_composer): + message = basic_composer.msg_send_to_eth( + denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + sender="sender", + eth_dest="eth_dest", + amount=1, + bridge_fee=2, + ) + + expected_message = { + "sender": "sender", + "ethDest": "eth_dest", + "amount": { + "amount": f"{Decimal(1).normalize():f}", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + }, + "bridgeFee": { + "amount": f"{Decimal(2).normalize():f}", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_underwrite(self, basic_composer): + message = basic_composer.msg_underwrite( + sender="sender", + market_id="market_id", + quote_denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + amount=1, + ) + + expected_message = { + "sender": "sender", + "marketId": "market_id", + "deposit": { + "amount": f"{Decimal('1').normalize():f}", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_send(self, basic_composer): + message = basic_composer.msg_send( + from_address="from_address", + to_address="to_address", + amount=1, + denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + ) + + expected_message = { + "fromAddress": "from_address", + "toAddress": "to_address", + "amount": [ + { + "amount": f"{Decimal('1').normalize():f}", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + }, + ], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index 70425269..a0bee361 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -5,12 +5,15 @@ from pyinjective.composer import Composer from pyinjective.core.network import Network -from tests.model_fixtures.markets_fixtures import btc_usdt_perp_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import first_match_bet_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_usdt_spot_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_perp_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_token # noqa: F401 +from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as oracle_pb +from tests.model_fixtures.markets_fixtures import ( # noqa: F401 + btc_usdt_perp_market, + first_match_bet_market, + inj_token, + inj_usdt_spot_market, + usdt_perp_token, + usdt_token, +) class TestComposerDeprecationWarnings: @@ -30,245 +33,354 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return composer - def test_msg_deposit_deprecation_warning(self, basic_composer): + def test_chain_stream_bank_balances_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgDeposit(sender="sender", subaccount_id="subaccount id", amount=1, denom="INJ") + composer.chain_stream_bank_balances_filter(accounts=["account"]) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_deposit instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_bank_balances_v2_filter instead" + ) + + def test_chain_stream_subaccount_deposits_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) - def test_msg_withdraw_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgWithdraw(sender="sender", subaccount_id="subaccount id", amount=1, denom="USDT") + composer.chain_stream_subaccount_deposits_filter() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_withdraw instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_subaccount_deposits_v2_filter instead" + ) - def test_coin_deprecation_warning(self): + def test_chain_stream_trades_filter_deprecation_warning(self): composer = Composer(network=Network.devnet().string()) with warnings.catch_warnings(record=True) as all_warnings: - composer.Coin( - amount=1, - denom="INJ", - ) + composer.chain_stream_trades_filter() + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_trades_v2_filter instead" + ) + + def test_chain_stream_orders_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + composer.chain_stream_orders_filter() deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use coin instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_orders_v2_filter instead" + ) - def test_order_data_deprecation_warning(self): + def test_chain_stream_orderbooks_filter_deprecation_warning(self): composer = Composer(network=Network.devnet().string()) with warnings.catch_warnings(record=True) as all_warnings: - composer.OrderData( - market_id="market id", - subaccount_id="subaccount id", - order_hash="order hash", + composer.chain_stream_orderbooks_filter() + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_orderbooks_v2_filter instead" + ) + + def test_chain_stream_positions_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + composer.chain_stream_positions_filter() + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_positions_v2_filter instead" + ) + + def test_chain_stream_oracle_price_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + composer.chain_stream_oracle_price_filter() + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use chain_stream_oracle_price_v2_filter instead" + ) + + def test_msg_grant_typed_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + composer.MsgGrantTyped( + granter="granter", + grantee="grantee", + msg_type="CreateSpotLimitOrderAuthz", + expire_in=100, + subaccount_id="subaccount_id", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use order_data instead" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use create_typed_msg_grant instead" def test_spot_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - market_id = list(basic_composer.spot_markets.keys())[0] - basic_composer.SpotOrder( - market_id=market_id, - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - is_buy=True, + basic_composer.spot_order( + market_id=list(basic_composer.spot_markets.keys())[0], + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + order_type="BUY", cid="cid", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use spot_order instead" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use create_spot_order_v2 instead" - def test_derivative_order_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.DerivativeOrder( - market_id=market_id, - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - is_buy=True, + def test_basic_derivative_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer._basic_derivative_order( + market_id=list(basic_composer.spot_markets.keys())[0], + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + chain_price=Decimal("1"), + chain_quantity=Decimal("1"), + chain_margin=Decimal("1"), + order_type="BUY", cid="cid", - leverage=1, ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use derivative_order instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use _basic_derivative_order_v2 instead" + ) - def test_msg_create_spot_limit_order_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] + def test_derivative_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateSpotLimitOrder( - market_id=market_id, - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, + basic_composer.derivative_order( + market_id=list(basic_composer.derivative_markets.keys())[0], + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), + order_type="BUY", cid="cid", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 + assert len(deprecation_warnings) == 2 + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use create_derivative_order_v2 instead" + ) + + def test_binary_options_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.binary_options_order( + market_id=list(basic_composer.binary_option_markets.keys())[0], + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), + order_type="BUY", + cid="cid", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 2 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_create_spot_limit_order instead" + str(deprecation_warnings[0].message) + == "This method is deprecated. Use create_binary_options_order_v2 instead" ) def test_msg_batch_create_spot_limit_orders_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] order = basic_composer.spot_order( - market_id=market_id, - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=Decimal(1), - quantity=Decimal(1), + market_id=list(basic_composer.spot_markets.keys())[0], + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), order_type="BUY", + cid="cid", ) - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgBatchCreateSpotLimitOrders( - sender="sender", - orders=[order], - ) + basic_composer.msg_batch_create_spot_limit_orders(sender="sender", orders=[order]) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_batch_create_spot_limit_orders instead" + == "This method is deprecated. Use msg_batch_create_spot_limit_orders_v2 instead" ) def test_msg_create_spot_market_order_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateSpotMarketOrder( - market_id=market_id, + basic_composer.msg_create_spot_market_order( + market_id=list(basic_composer.spot_markets.keys())[0], sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - is_buy=True, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + order_type="BUY", + cid="cid", + trigger_price=Decimal("1"), ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 + assert len(deprecation_warnings) == 2 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_create_spot_market_order instead" + == "This method is deprecated. Use msg_create_spot_market_order_v2 instead" ) - def test_msg_cancel_spot_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_msg_cancel_spot_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_cancel_spot_order( + market_id=list(basic_composer.spot_markets.keys())[0], + sender="sender", + subaccount_id="subaccount_id", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_cancel_spot_order_v2 instead" + + def test_msg_batch_cancel_spot_orders_deprecation_warning(self, basic_composer): + order_data = basic_composer.order_data( + market_id=list(basic_composer.spot_markets.keys())[0], + subaccount_id="subaccount_id", + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCancelSpotOrder( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", + basic_composer.msg_batch_cancel_spot_orders( sender="sender", - subaccount_id="subaccount id", - order_hash="order hash", - cid="cid", + orders_data=[order_data], ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_cancel_spot_order instead" + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_batch_cancel_spot_orders_v2 instead" + ) - def test_msg_batch_cancel_spot_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - orders = [ - composer.order_data( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", + def test_order_data_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.order_data( + market_id=list(basic_composer.spot_markets.keys())[0], subaccount_id="subaccount_id", - order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", - ), - ] + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use create_order_data_v2 instead" + def test_order_data_without_mask_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchCancelSpotOrders(sender="sender", data=orders) + basic_composer.order_data_without_mask( + market_id=list(basic_composer.spot_markets.keys())[0], + subaccount_id="subaccount_id", + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_batch_cancel_spot_orders instead" + == "This method is deprecated. Use create_order_data_without_mask_v2 instead" ) - def test_msg_batch_update_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - + def test_msg_batch_update_orders_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchUpdateOrders(sender="sender") + basic_composer.msg_batch_update_orders( + sender="sender", + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_batch_update_orders instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_batch_update_orders_v2 instead" + ) - def test_msg_privileged_execute_contract_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_msg_privileged_execute_contract_deprecation_warning(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + contract_address = "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7" + data = "test_data" + funds = "100inj,420peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgPrivilegedExecuteContract( - sender="sender", - contract="contract", - msg="msg", + basic_composer.msg_privileged_execute_contract( + sender=sender, + contract_address=contract_address, + data=data, + funds=funds, ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_privileged_execute_contract instead" + == "This method is deprecated. Use msg_privileged_execute_contract_v2 instead" ) def test_msg_create_derivative_limit_order_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateDerivativeLimitOrder( - market_id=market_id, + basic_composer.msg_create_derivative_limit_order( + market_id=list(basic_composer.derivative_markets.keys())[0], sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - cid="cid", - leverage=1, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), + order_type="BUY", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 + assert len(deprecation_warnings) == 3 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_create_derivative_limit_order instead" + == "This method is deprecated. Use msg_create_derivative_limit_order_v2 instead" ) def test_msg_batch_create_derivative_limit_orders_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] order = basic_composer.derivative_order( - market_id=market_id, - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=Decimal(1), - quantity=Decimal(1), - margin=Decimal(1), + market_id=list(basic_composer.derivative_markets.keys())[0], + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), order_type="BUY", + cid="cid", ) with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgBatchCreateDerivativeLimitOrders( + basic_composer.msg_batch_create_derivative_limit_orders( sender="sender", orders=[order], ) @@ -277,260 +389,465 @@ def test_msg_batch_create_derivative_limit_orders_deprecation_warning(self, basi assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_batch_create_derivative_limit_orders instead" + == "This method is deprecated. Use msg_batch_create_derivative_limit_orders_v2 instead" ) def test_msg_create_derivative_market_order_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateDerivativeMarketOrder( - market_id=market_id, + basic_composer.msg_create_derivative_market_order( + market_id=list(basic_composer.derivative_markets.keys())[0], sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - cid="cid", - leverage=1, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), + order_type="BUY", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 + assert len(deprecation_warnings) == 3 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_create_derivative_market_order instead" + == "This method is deprecated. Use msg_create_derivative_market_order_v2 instead" ) - def test_msg_cancel_derivative_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - + def test_msg_cancel_derivative_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCancelDerivativeOrder( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", + basic_composer.msg_cancel_derivative_order( + market_id=list(basic_composer.derivative_markets.keys())[0], sender="sender", - subaccount_id="subaccount id", - order_hash="order hash", - cid="cid", + subaccount_id="subaccount_id", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_cancel_derivative_order instead" + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_cancel_derivative_order_v2 instead" ) - def test_msg_batch_cancel_derivative_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - orders = [ - composer.order_data( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - subaccount_id="subaccount_id", - order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", - ), - ] + def test_msg_batch_cancel_derivative_orders_deprecation_warning(self, basic_composer): + order_data = basic_composer.order_data_without_mask( + market_id=list(basic_composer.derivative_markets.keys())[0], + subaccount_id="subaccount_id", + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchCancelDerivativeOrders(sender="sender", data=orders) + basic_composer.msg_batch_cancel_derivative_orders( + sender="sender", + orders_data=[order_data], + ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_batch_cancel_derivative_orders instead" + == "This method is deprecated. Use msg_batch_cancel_derivative_orders_v2 instead" ) - def test_msg_instant_binary_options_market_launch_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - + def test_msg_instant_binary_options_market_launch_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgInstantBinaryOptionsMarketLaunch( + basic_composer.msg_instant_binary_options_market_launch( sender="sender", - ticker="B2400/INJ", - oracle_symbol="B2400/INJ", - oracle_provider="injective", + ticker="ticker", + oracle_symbol="oracle_symbol", + oracle_provider="oracle_provider", oracle_type="Band", oracle_scale_factor=6, - maker_fee_rate=0.001, - taker_fee_rate=0.001, - expiration_timestamp=1630000000, - settlement_timestamp=1630000000, - quote_denom="inj", - quote_decimals=18, - min_price_tick_size=0.01, - min_quantity_tick_size=0.01, + maker_fee_rate=Decimal("0.1"), + taker_fee_rate=Decimal("0.1"), + expiration_timestamp=1707800399, + settlement_timestamp=1707843599, + admin="admin", + quote_denom=list(basic_composer.binary_option_markets.values())[0].quote_token.symbol, + min_price_tick_size=Decimal("1"), + min_quantity_tick_size=Decimal("1"), + min_notional=Decimal("1"), ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_instant_binary_options_market_launch instead" + == "This method is deprecated. Use msg_instant_binary_options_market_launch_v2 instead" ) - def test_msg_create_binary_options_limit_order_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - + def test_msg_create_binary_options_market_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateBinaryOptionsLimitOrder( - market_id=market.id, + basic_composer.msg_create_binary_options_market_order( + market_id=list(basic_composer.binary_option_markets.keys())[0], sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - cid="cid", - is_buy=True, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), + order_type="BUY", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 + assert len(deprecation_warnings) == 3 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_create_binary_options_limit_order instead" + == "This method is deprecated. Use msg_create_binary_options_market_order_v2 instead" ) - def test_msg_create_binary_options_market_order_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - + def test_msg_cancel_binary_options_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateBinaryOptionsMarketOrder( - market_id=market.id, + basic_composer.msg_cancel_binary_options_order( + market_id=list(basic_composer.derivative_markets.keys())[0], sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - cid="cid", - is_buy=True, + subaccount_id="subaccount_id", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_create_binary_options_market_order instead" + == "This method is deprecated. Use msg_cancel_binary_options_order_v2 instead" ) - def test_msg_cancel_binary_options_order_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - + def test_msg_subaccount_transfer_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCancelBinaryOptionsOrder( - market_id=market.id, + basic_composer.msg_subaccount_transfer( sender="sender", - subaccount_id="subaccount id", - order_hash="order hash", - cid="cid", + source_subaccount_id="source_subaccount_id", + destination_subaccount_id="destination_subaccount_id", + amount=Decimal("1"), + denom="INJ", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_cancel_binary_options_order instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_subaccount_transfer_v2 instead" ) - def test_msg_subaccount_transfer_deprecation_warning(self, basic_composer): + def test_msg_deposit_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgSubaccountTransfer( + basic_composer.msg_deposit( sender="sender", - source_subaccount_id="source subaccount id", - destination_subaccount_id="destination subaccount id", - amount=1, + subaccount_id="source_subaccount_id", + amount=Decimal("1"), denom="INJ", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_subaccount_transfer instead" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_deposit_v2 instead" def test_msg_external_transfer_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgExternalTransfer( + basic_composer.msg_external_transfer( sender="sender", - source_subaccount_id="source subaccount id", - destination_subaccount_id="destination subaccount id", - amount=1, + source_subaccount_id="source_subaccount_id", + destination_subaccount_id="destination_subaccount_id", + amount=Decimal("1"), denom="INJ", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_external_transfer instead" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_external_transfer_v2 instead" - def test_msg_liquidate_position_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_msg_withdraw_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_withdraw( + sender="sender", + subaccount_id="subaccount_id", + amount=Decimal("1"), + denom="INJ", + ) + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_withdraw_v2 instead" + + def test_msg_create_insurance_fund_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgLiquidatePosition( + basic_composer.MsgCreateInsuranceFund( sender="sender", - subaccount_id="subaccount id", - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", + ticker="ticker", + quote_denom="INJ", + oracle_base="oracle_base", + oracle_quote="oracle_quote", + oracle_type=oracle_pb.OracleType.Band, + expiry=-1, + initial_deposit=1, ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_liquidate_position instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_create_insurance_fund instead" + ) - def test_msg_increase_position_margin_deprecation_warning(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] + def test_msg_send_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgIncreasePositionMargin( + basic_composer.MsgSend( + from_address="from_address", + to_address="to_address", + amount=1, + denom="INJ", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_send instead" + + def test_msg_send_to_eth_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.MsgSendToEth( + denom="INJ", sender="sender", - source_subaccount_id="source_subaccount id", - destination_subaccount_id="destination_subaccount id", - market_id=market_id, + eth_dest="eth_dest", amount=1, + bridge_fee=1, + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_send_to_eth instead" + + def test_msg_underwrite_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.MsgUnderwrite( + sender="sender", + market_id="market_id", + quote_denom="INJ", + amount=1, + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_underwrite instead" + + def test_msg_instant_spot_market_launch_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_instant_spot_market_launch( + sender="sender", + ticker="ticker", + base_denom=list(basic_composer.spot_markets.values())[0].base_token.symbol, + quote_denom=list(basic_composer.spot_markets.values())[0].quote_token.symbol, + min_price_tick_size=Decimal("1"), + min_quantity_tick_size=Decimal("1"), + min_notional=Decimal("1"), + base_decimals=6, + quote_decimals=6, ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_increase_position_margin instead" + == "This method is deprecated. Use msg_instant_spot_market_launch_v2 instead" ) - def test_msg_rewards_opt_out_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_msg_instant_perpetual_market_launch_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_instant_perpetual_market_launch( + sender="sender", + ticker="ticker", + quote_denom=list(basic_composer.spot_markets.values())[0].quote_token.symbol, + oracle_base="oracle_base", + oracle_quote="oracle_quote", + oracle_scale_factor=6, + oracle_type="Band", + maker_fee_rate=Decimal("0.1"), + taker_fee_rate=Decimal("0.1"), + initial_margin_ratio=Decimal("0.1"), + maintenance_margin_ratio=Decimal("0.1"), + min_price_tick_size=Decimal("1"), + min_quantity_tick_size=Decimal("1"), + min_notional=Decimal("1"), + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_instant_perpetual_market_launch_v2 instead" + ) + def test_msg_liquidate_position_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgRewardsOptOut( + basic_composer.msg_liquidate_position( sender="sender", + subaccount_id="subaccount_id", + market_id="market_id", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 - assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_rewards_opt_out instead" + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_liquidate_position_v2 instead" + ) - def test_msg_admin_update_binary_options_market_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] + def test_msg_instant_expiry_futures_market_launch_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_instant_expiry_futures_market_launch( + sender="sender", + ticker="ticker", + quote_denom=list(basic_composer.spot_markets.values())[0].quote_token.symbol, + oracle_base="oracle_base", + oracle_quote="oracle_quote", + oracle_scale_factor=6, + oracle_type="Band", + expiry=1707800399, + maker_fee_rate=Decimal("0.1"), + taker_fee_rate=Decimal("0.1"), + initial_margin_ratio=Decimal("0.1"), + maintenance_margin_ratio=Decimal("0.1"), + min_price_tick_size=Decimal("1"), + min_quantity_tick_size=Decimal("1"), + min_notional=Decimal("1"), + ) + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_instant_expiry_futures_market_launch_v2 instead" + ) + + def test_msg_create_spot_limit_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgAdminUpdateBinaryOptionsMarket( + basic_composer.msg_create_spot_limit_order( + market_id=list(basic_composer.spot_markets.keys())[0], sender="sender", - market_id=market.id, - status="Paused", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + order_type="BUY", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 2 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_create_spot_limit_order_v2 instead" + ) + + def test_msg_create_binary_options_limit_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_create_binary_options_limit_order( + market_id=list(basic_composer.binary_option_markets.keys())[0], + sender="sender", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("1"), + quantity=Decimal("1"), + margin=Decimal("1"), + order_type="BUY", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 3 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_create_binary_options_limit_order_v2 instead" + ) + + def test_msg_emergency_settle_market_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_emergency_settle_market( + sender="sender", + subaccount_id="subaccount_id", + market_id="market_id", ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_admin_update_binary_options_market instead" + == "This method is deprecated. Use msg_emergency_settle_market_v2 instead" ) - def test_msg_withdraw_delegator_reward_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_msg_increase_position_margin_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_increase_position_margin( + sender="sender", + source_subaccount_id="source_subaccount_id", + destination_subaccount_id="destination_subaccount_id", + market_id=list(basic_composer.derivative_markets.keys())[0], + amount=Decimal("1"), + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_increase_position_margin_v2 instead" + ) + + def test_msg_decrease_position_margin_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_decrease_position_margin( + sender="sender", + source_subaccount_id="source_subaccount_id", + destination_subaccount_id="destination_subaccount_id", + market_id=list(basic_composer.derivative_markets.keys())[0], + amount=Decimal("1"), + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_decrease_position_margin_v2 instead" + ) + + def test_msg_admin_update_binary_options_market_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_admin_update_binary_options_market( + sender="sender", + market_id=list(basic_composer.binary_option_markets.keys())[0], + status="Expired", + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_admin_update_binary_options_market_v2 instead" + ) + + def test_msg_update_spot_market_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_update_spot_market( + admin="admin", + market_id=list(basic_composer.spot_markets.keys())[0], + new_ticker="new_ticker", + new_min_price_tick_size=Decimal("1"), + new_min_quantity_tick_size=Decimal("2"), + new_min_notional=Decimal("3"), + ) + + deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] + assert len(deprecation_warnings) == 1 + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_update_spot_market_v2 instead" + ) + def test_msg_update_derivative_market_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgWithdrawDelegatorReward( - delegator_address="delegator address", - validator_address="validator address", + basic_composer.msg_update_derivative_market( + admin="admin", + market_id=list(basic_composer.derivative_markets.keys())[0], + new_ticker="new_ticker", + new_min_price_tick_size=Decimal("1"), + new_min_quantity_tick_size=Decimal("2"), + new_min_notional=Decimal("3"), + new_initial_margin_ratio=Decimal("0.1"), + new_maintenance_margin_ratio=Decimal("0.05"), ) deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_withdraw_delegator_reward instead" + == "This method is deprecated. Use msg_update_derivative_market_v2 instead" ) diff --git a/tests/test_orderhash.py b/tests/test_orderhash.py index dd6d2895..7e21c7f5 100644 --- a/tests/test_orderhash.py +++ b/tests/test_orderhash.py @@ -1,40 +1,15 @@ from decimal import Decimal -import pytest - from pyinjective import PrivateKey from pyinjective.composer import Composer from pyinjective.core.network import Network from pyinjective.orderhash import OrderHashManager -from tests.model_fixtures.markets_fixtures import ( # noqa: F401 - btc_usdt_perp_market, - first_match_bet_market, - inj_token, - inj_usdt_spot_market, - usdt_perp_token, - usdt_token, -) class TestOrderHashManager: - @pytest.fixture - def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( - network=Network.devnet().string(), - spot_markets={inj_usdt_spot_market.id: inj_usdt_spot_market}, - derivative_markets={btc_usdt_perp_market.id: btc_usdt_perp_market}, - binary_option_markets={first_match_bet_market.id: first_match_bet_market}, - tokens={ - inj_usdt_spot_market.base_token.symbol: inj_usdt_spot_market.base_token, - inj_usdt_spot_market.quote_token.symbol: inj_usdt_spot_market.quote_token, - btc_usdt_perp_market.quote_token.symbol: btc_usdt_perp_market.quote_token, - }, - ) - - return composer - - def test_spot_order_hash(self, requests_mock, basic_composer): + def test_spot_order_hash(self, requests_mock): network = Network.devnet() + composer = Composer(network=network.string()) priv_key = PrivateKey.from_mnemonic("test one few words") pub_key = priv_key.to_public_key() address = pub_key.to_address() @@ -45,11 +20,11 @@ def test_spot_order_hash(self, requests_mock, basic_composer): requests_mock.get(url, json={"nonce": 0}) order_hash_manager = OrderHashManager(address=address, network=network, subaccount_indexes=[0]) - spot_market_id = list(basic_composer.spot_markets.keys())[0] + spot_market_id = "0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0" fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - basic_composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -57,7 +32,7 @@ def test_spot_order_hash(self, requests_mock, basic_composer): quantity=Decimal("0.01"), order_type="BUY", ), - basic_composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -73,5 +48,5 @@ def test_spot_order_hash(self, requests_mock, basic_composer): assert len(order_hashes_response.spot) == 2 assert len(order_hashes_response.derivative) == 0 - assert order_hashes_response.spot[0] == "0x79f259a10d813f11c9582b94950b5a0922180c1b2785638d8aefa04e0c8ae4aa" - assert order_hashes_response.spot[1] == "0x96c2c4a5d38a20457e8f3319b9aac194ad03b2ce80d0acd718190487bf12e434" + assert order_hashes_response.spot[0] == "0x4f70723b33db271e6c56201e42c5911dd97a9f5345c7fcf12eb69c2689f94e78" + assert order_hashes_response.spot[1] == "0x2cc1acacf0e576ea41e9381725f4c78fc5c191f9df4e3e98402c09b8ad2c82e8"